
環境
- Ubuntu 18.04.3 LTS
- ZeroTier 1.4.6(最新穩定包)
- Wine 4.17(最新開發包)
我正在嘗試在我的系統上託管 Red Alert 3 LAN 會話(使用 wine),並且希望使用 Zerotier,因為我採用了 CGNAT 設定。
Zerotier 可以完美地與相同(zerotier)網路上的其他系統連接。但我無法查看網路大廳中的其他玩家。使用wireshark,我發現RA3正常工作所需的udp資料包僅在LAN介面上傳輸,而根本沒有轉送到zerotier網路介面。
我的下一次嘗試是使用一個工具來強制 wine 使用 Zerotier 介面。
- C 語言的小型綁定程序,可以使用 LD_PRELOAD 加載
- 使用腳本建立命名空間並將介面綁定到它
-
這些以相同順序失敗的原因:
因為不支援udp
- 這最初是有效的。但它並不穩定,也不一致。有時,其他玩家會在大廳看到我,但我看不到他們。而其他時候則恰恰相反。另外,我必須以 root 身份運行它,這在使用 wine 時不是一件好事。所以這個選項沒有幫助,但它幫助我理解了一些事情。
- 它能夠綁定到該接口,但不幸的是我無法使用相同的 IP(它在同一子網上生成另一個 IP)並且我沒有像使用選項 #2 時那樣獲得輸出。我甚至嘗試從 UI 將 IP 位址新增至 Zerotier 網路介面
my.zerotier.com
。這沒有幫助。
除此之外,我嘗試了很多 iptables 配置,但這沒有幫助。我也透過 sysctl 啟用了 ipv4 轉送。我仍然認為這個問題可以透過 iptables 解決。這是我迄今為止的最新嘗試(以 bash 腳本的形式)