將流量從網路介面轉送至 Zerotier 接口

將流量從網路介面轉送至 Zerotier 接口

環境

  • 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 介面。

  1. C 語言的小型綁定程序,可以使用 LD_PRELOAD 加載
  2. 使用腳本建立命名空間並將介面綁定到它
  3. 使用火獄

    這些以相同順序失敗的原因:

  4. 因為不支援udp

  5. 這最初是有效的。但它並不穩定,也不一致。有時,其他玩家會在大廳看到我,但我看不到他們。而其他時候則恰恰相反。另外,我必須以 root 身份運行它,這在使用 wine 時不是一件好事。所以這個選項沒有幫助,但它幫助我理解了一些事情。
  6. 它能夠綁定到該接口,但不幸的是我無法使用相同的 IP(它在同一子網上生成另一個 IP)並且我沒有像使用選項 #2 時那樣獲得輸出。我甚至嘗試從 UI 將 IP 位址新增至 Zerotier 網路介面my.zerotier.com。這沒有幫助。

除此之外,我嘗試了很多 iptables 配置,但這沒有幫助。我也透過 sysctl 啟用了 ipv4 轉送。我仍然認為這個問題可以透過 iptables 解決。是我迄今為止的最新嘗試(以 bash 腳本的形式)

相關內容