-
Notifications
You must be signed in to change notification settings - Fork 0
Running a Relay Server zh Hant
English | 繁體中文
預設情況下,建立虛擬網路只有在與加入者同一個區域網路,或主機自行完成連接埠轉發時才能穩定運作——因為 App 分享出去的主機位址一律是主機自己的區域網路位址。中繼伺服器能解決這個問題:主機與每個加入者都只需要對外連線到中繼伺服器,因此只要中繼伺服器本身可被連到,建立與加入虛擬網路就能跨網際網路運作,主機與加入者都不需要做連接埠轉發。
你不需要自己架設中繼伺服器才能使用別人架好的——這篇是給想自己架一台的人看的,不論是給自己的群組用,還是提供給其他人用。
| 方式 | 位置 | 適合情境 |
|---|---|---|
| 在 App 內架設 | 側邊欄的中繼伺服器頁面 | 快速、不需另外安裝——如果執行 App 的這台機器本身就夠可被連到(或你願意轉發一個連接埠給它),這樣就很方便 |
獨立的 relay 工具 |
從終端機執行的獨立執行檔 | 一台完全不執行桌面版 App、專門長期在線的機器(常見選擇是便宜的 VPS) |
兩者底層是完全相同的中繼伺服器——依照你要架在哪裡來選擇即可。
- 打開側邊欄的中繼伺服器頁面。
- 輸入連接埠(或保留預設值),點擊開始架設。
- 頁面會顯示已綁定的連接埠,以及目前正在使用此中繼的網路名稱清單(即時更新)。
- 把這台機器可被連到的位址——自己的 IP 或主機名稱,加上上方顯示的連接埠——提供給該使用它的人(包含你自己,設定方式見下方)。
停止架設(停止按鈕,或直接關閉 App)會讓目前透過它連線的所有人斷線。
適合完全不執行桌面版 App、專門架設中繼的機器:
relay --port 9420
它會印出正在監聽的連接埠,並持續執行直到被停止(Ctrl+C)。沒有設定檔,沒有圖形介面——就只是一個監聽程序。
當有一台中繼伺服器可被連到後,把你自己的 App 指向它:
- 打開設定 → 連線。
- 在**中繼伺服器(選填)**欄位輸入中繼伺服器的位址——例如
relay.example.com:9420或203.0.113.10:9420。 - 留空即可回到預設的直接連線/區域網路行為。
設定了中繼伺服器位址後,虛擬網路面板中每一次的建立與加入都會自動透過它連線——不需要針對個別網路另外設定。
架設中繼伺服器並不會消除「中繼伺服器本身」需要可被連到這件事。如果它是架在家用網路上,該連接埠仍然需要在該路由器上做轉發。使用有公開 IP 的小型雲端主機可以完全避開這個問題,因為所有對內連接埠預設就是可被連到的。
中繼伺服器只負責配對兩條連線並轉發原始位元組——它完全不知道自己在傳輸的是 App 的信令還是遊戲流量,也無法在傳輸過程中讀取網路名稱或密碼(那些是端對端驗證的,不是由中繼伺服器驗證),連線結束後也不會留下任何紀錄。它是一個會合點,不是中間人攻擊者。
中繼伺服器解決的是建立/加入網路時的可連線性問題。之後建立的點對點連線仍會先嘗試直接連線(透過 STUN)——這對大多數家用路由器都能成功。如果雙方都在嚴格(「對稱型」)NAT 之後,這個直接連線仍可能失敗;目前還沒有針對這種情況的資料層備援中繼。
Player Club Private VPN
English
繁體中文