在之前的文章中提到, 我安裝了龍蝦在一支安卓九的OPPO手机里, 但因為手机未ROOT, 在安裝龍蝦的OS里, 無法執行路由指令.所以它只能bridge手机本身的WLAN0 的路由出去INTERNET, 出去是可以, 但別人怎麼存取你呢? 因為無法設定本機路由, 就只能想別的法子了..
這是我手机里的網路環境, 可以清楚看到OPENCLAW GATEWAY正在背景執行…手机取得IP: 192.168.68.81

如果你試圖在OS中下新增路由的命令, 你會發現會出現不被允許的警告.

接著看看本機路由表, 你會發現本機OS, 連default gateway 都看不到…

在往下說明的同時, 你可能需要具備網路基礎, 至少明白以下概念, 才有可能充份理解, VLAN TAGGING, SOURCE NAT, OPENVPN,
現在先看我的結果, 我在異地的一個測試環境如何連入我裝在家里手机的OPENCLAW 龍蝦環境呢?
以下截圖是我異地遠端的LINUX主機, 它主要做為龍蝦的節點使用, IP: 192.168.84.37, 做了到192.168.68.81 的traceroute, 可以看到經過4個節點, OPENVPN建在95.251與0.3之間, 0.3及68.81 在我家, 前兩個是異地遠端的gateway.

所以既無路由, 如何讓我手机可以讓遠端連線呢? 主要是透过source NAT來達成..
以下截圖是連入openclaw gateway 192.168.68.81的指令..

以下指令可以看到本地龍蝦節點服務已經啟動正常.

可以在龍蝦管理界面上看到節點已抓到, 在龍蝦的架構中, gateway是指揮中心, 你可以說它是大腦, 而節點就是AI的手和腳.可以做事的手腳.

以下是我家中網路架構的示意圖… 我家主要的三段網段, 192.168.0.0/24, 192.168.58.0/24, 192.168.68.0/24, SWITCH間與ROUTER間走VLAN TAGGING, 實際192.168.68.0/24 這段是透过一組四顆WIFI AP組成的MESHED WIFI NETWORK. 在1F的AP上, 在它的LAN PORT接入UNTAG VLAN ID: 68, 接入MIKROTIK ROUTEROS的192.168.68.254/192.168.0.3那顆, 而它與異地間有SITE-TO-SITE OPENVPN的TUNNEL. 必須在上面設定好SNAT, 才可使遠端透过它連入我在68網段的龍蝦手机.

以下是最關鍵的SNAT設定, 當然兩邊的路由要各自指定好, 這個應該不用再細說, 如果這個SNAT拿掉, 遠端立馬斷線..


就我的手机而言, 當節點連入時, 其實它看到的正是被SNAT後的來源IP: 192.168.68.254

希望這文章對有一樣的手机使用龍蝦時遇上的網路困難的人, 能有所幫助, 本來也不想透露家中網路環境, 但主要怕自己以後忘了, 年紀愈大愈容易遺忘, 乾脆趁此回重整ROUTEROS設定時一併把文件給做一下,..SNAT的SOURCE故意放很大的網段, 不想透露目前我OPENVPN TUNNEL上的實際網段, 這里實際是填入兩邊TUNNEL里走的網段.後期我會再修正成實際使用.