無法和網線那端的好友聯機?試試用ZeroTier遠程組網吧


3樓貓 發佈時間:2022-01-28 20:31:45 作者:HalcyonAzure Language

雖然現在各大遊戲廠商都開放了遊戲中網絡聯機的功能,也有許多廠家自己使用了渾身解數來讓我們儘可能的得到一個比較好的聯機體驗,但是在我們遊玩的時候或多或少總是能遇到那種要麼只提供“本地局域網聯機”,要麼延遲飄忽不定的“聯機體驗”。為了讓我們能有更加優秀的體驗,我們在這篇文章中將採用一個叫做ZeroTier的工具,通過簡單的幾步設置來達到和網線那端的好友共同處在一個“虛擬的局域網”下,來感受直連帶來的暢玩體驗!
事先聲明,和ZeroTier相同的也有諸如WireGuard、Tinc等各式各樣的組網工具,甚至有曾經一度風靡的hamachi可以作為聯機工具的選擇。本篇文章出於ZeroTier部署門檻低的特點而加以分享,後面也會提到它的缺點和不足。
好了,廢話少說,讓我們先直接開始和基友的互聯之旅!

作為網絡組建者的你

前往官網: ZeroTier – Global Area Networking ,界面是全英文的,但也不用怕,具體要用的內容都很簡單。

1. 帳號註冊和創建

點擊右上角的Sign Up進行一個帳號的註冊 & 登入。
就是這個Sign Up

就是這個Sign Up

2. 創建網絡

註冊,並登入完成以後就可以看見自己的賬戶界面了,這個時候再選擇Networks來創建自己將要部署的一個虛擬局域網。
打碼的是我已經在用的三個網絡(>▽<)

打碼的是我已經在用的三個網絡(>▽<)

3. 管理網絡

點擊了創建網絡以後,可以看見自己創建的網絡對應的“網絡ID”、“網絡註釋”和“網絡地址”,接下來我們只需要稍加配置就能完成部署了

4. 公開性設置

進來了以後,對於簡單的聯機,我們只需要知道最開頭Basis的內容並加以修改,這裡以我隨機創建的一個網絡為例子,翻譯之後大致內容如下:
—————————————————————————————————————————
如果這裡選擇的是PRIVATE,主機執行了加入網絡的申請之後,作為網絡創建者的你需要回到這個控制面板,在下滑的界面當中找到新加入的主機,並進行授權。大致授權的結果如下:
圖片有點大QAQ,點開來看吧

圖片有點大QAQ,點開來看吧

—————————————————————————————————————————
到此,整個網絡的簡單部署階段就完成了,接下來就是鏈接的主機需要的操作啦~

作為加入網絡的主機

1. 安裝客戶端

到ZeroTier的官網下載對應的客戶端並安裝: Download – ZeroTier (這裡以1.8.4的Window平臺作為示例,其他客戶端舉一反三自己推測步驟即可。
Windows上安裝ZeroTier之後不會直接顯示GUI界面,我們需要加入自己的網絡。通過快捷鍵Win+S進行搜索關鍵詞ZeroTier並啟動,可以找到對應的GUI界面控制檯。
搜索ZeroTier

搜索ZeroTier

打開GUI面板

打開GUI面板

2. 加入局域網

打開後在右下角可以開啟Panel面板,在面板當中輸入剛剛網頁內的“網頁ID”,就可以發送加入剛剛自己創建的局域網的申請了。
網絡控制界面

網絡控制界面

網絡創建者那邊驗證完畢以後,你就可以像使用家裡路由器一樣被劃分到一個對應的虛擬IP,並且用這個虛擬IP和好友進行聯機遊戲啦。在遊戲完畢以後點Disconnect就可以和已經鏈接的網絡相互斷開鏈接了。不斷開的話下次開電腦也會自動連上哦~

拓展補充

以上內容只是在最基本的範圍內創建一個自己的虛擬局域網來聯機,但是其中還有部分可能出現的問題,以及ZeroTier技術實現上的原理。如果按上文已經解決了問題的朋友可以有序離開了~

自問自答

  • 也許你會有這種疑問:這個ZeroTier明顯不是國內的服務商啊,如果是國外的服務,在使用的時候我的延遲不會特別大嗎?
  • 答案也很簡單,ZeroTier在實現機制上可以理解為:在他們服務所在地會提供一群叫做“Planet”的星球服務器,而我們每個人的主機都是作為“Leaves"依附在這個星球上的一片葉子。在我們依附上來的時候,只需要從“Planet”處獲取我們各自的依附過來的路線,就可以通過“Planet”牽線搭橋實現點對點鏈接(其中牽扯到很多計算機網絡相關知識,這裡只是用一個有明顯錯誤,但很好理解的比喻進行解釋*),這樣我們和好友之間既然是直連,延遲也就很低了。
  • 在使用了上面的方案以後,我和好友聯機延遲還是很大,使用ping來嘗試測試連接也無法連通,這是怎麼回事啊,有解決方案嗎?
  • 延遲很大:極有可能是因為作為“Leaves”的你們牽手失敗,不得不走位於國外的“Planet”進行中繼通信。如果要解決這個問題,可以在自己有公網服務器的情況下搭建一個Moon服務器進行解決,具體教程可以參考百度,或我的個人博客: ZeroTier下Moon服務器的搭建 - 青空域
  • 無法ping通:在有Windows防火牆的情況下,很可能出現無法ping通,或者能夠識別到好友遊戲,但無法加入遊戲的情況。對此可以在Windows防火牆中放行ZeroTier,或者臨時關閉防火牆來解決(後果自負😖️)
  • 我玩的遊戲是類似於《無主之地》的局域網聯機遊戲,這類遊戲往往不能通過輸入好友IP加入遊戲,但我也無法掃描到和我在同一個ZeroTier下的好友,這該怎麼辦呀?
  • 這個問題在ZeroTier官網的文檔中有提及,原文的解決方案如下:
On Windows, users trying to use LAN games, Bonjour/mDNS, or other broadcast or multicast protocols may have problems with those protocols announcing over ZeroTier networks. This is a known Windows issue, and a work-around is documented on Microsoft Technet. There is also a small open source utility called WinIPBroadcast available that assists by relaying broadcasts between interfaces. You can also try adjusting the Interface Priority in Windows. Try this first.
大意就是說如果需要在ZeroTier內廣播自己的局域網遊戲,在Windows平臺下會有一定的問題,解決這個問題有兩種方案:修改網絡優先級;安裝額外的小工具。我在這裡給出修改網絡接口優先級的辦法: 通過ZeroTier實現局域網自動掃描聯機 - 青空域 (同樣來自個人博客XD)。由於網絡優先級在每次斷開以後就會自動恢復,具有臨時性,所以個人比較推薦通過臨時修改接口來和好友在有需要的時候進行聯機,不需要的時候關閉就好啦~XD
在機核看了看貌似沒有類似內容的文章,就自己寫了一篇做總結。第一次寫,寫的不好的話還希望各位多多包涵 (′▽`〃)

© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com