Skip to content

Running a Relay Server zh Hant

SpaceSquare edited this page Aug 9, 2026 · 1 revision

English | 繁體中文

架設中繼伺服器

預設情況下,建立虛擬網路只有在與加入者同一個區域網路,或主機自行完成連接埠轉發時才能穩定運作——因為 App 分享出去的主機位址一律是主機自己的區域網路位址。中繼伺服器能解決這個問題:主機與每個加入者都只需要對外連線到中繼伺服器,因此只要中繼伺服器本身可被連到,建立與加入虛擬網路就能跨網際網路運作,主機與加入者都不需要做連接埠轉發。

你不需要自己架設中繼伺服器才能使用別人架好的——這篇是給想自己架一台的人看的,不論是給自己的群組用,還是提供給其他人用。

兩種架設方式

方式 位置 適合情境
在 App 內架設 側邊欄的中繼伺服器頁面 快速、不需另外安裝——如果執行 App 的這台機器本身就夠可被連到(或你願意轉發一個連接埠給它),這樣就很方便
獨立的 relay 工具 從終端機執行的獨立執行檔 一台完全不執行桌面版 App、專門長期在線的機器(常見選擇是便宜的 VPS)

兩者底層是完全相同的中繼伺服器——依照你要架在哪裡來選擇即可。

方式 A——在 App 內架設

  1. 打開側邊欄的中繼伺服器頁面。
  2. 輸入連接埠(或保留預設值),點擊開始架設
  3. 頁面會顯示已綁定的連接埠,以及目前正在使用此中繼的網路名稱清單(即時更新)。
  4. 把這台機器可被連到的位址——自己的 IP 或主機名稱,加上上方顯示的連接埠——提供給該使用它的人(包含你自己,設定方式見下方)。

停止架設(停止按鈕,或直接關閉 App)會讓目前透過它連線的所有人斷線。

方式 B——獨立的 relay 工具

適合完全不執行桌面版 App、專門架設中繼的機器:

relay --port 9420

它會印出正在監聽的連接埠,並持續執行直到被停止(Ctrl+C)。沒有設定檔,沒有圖形介面——就只是一個監聽程序。

使用中繼伺服器(不論哪一種)

當有一台中繼伺服器可被連到後,把你自己的 App 指向它:

  1. 打開設定 → 連線
  2. 在**中繼伺服器(選填)**欄位輸入中繼伺服器的位址——例如 relay.example.com:9420203.0.113.10:9420
  3. 留空即可回到預設的直接連線/區域網路行為。

設定了中繼伺服器位址後,虛擬網路面板中每一次的建立加入都會自動透過它連線——不需要針對個別網路另外設定。

中繼伺服器本身仍需要可被連到

架設中繼伺服器並不會消除「中繼伺服器本身」需要可被連到這件事。如果它是架在家用網路上,該連接埠仍然需要在該路由器上做轉發。使用有公開 IP 的小型雲端主機可以完全避開這個問題,因為所有對內連接埠預設就是可被連到的。

中繼伺服器能看到什麼、看不到什麼

中繼伺服器只負責配對兩條連線並轉發原始位元組——它完全不知道自己在傳輸的是 App 的信令還是遊戲流量,也無法在傳輸過程中讀取網路名稱或密碼(那些是端對端驗證的,不是由中繼伺服器驗證),連線結束後也不會留下任何紀錄。它是一個會合點,不是中間人攻擊者。

已知限制

中繼伺服器解決的是建立/加入網路時的可連線性問題。之後建立的點對點連線仍會先嘗試直接連線(透過 STUN)——這對大多數家用路由器都能成功。如果雙方都在嚴格(「對稱型」)NAT 之後,這個直接連線仍可能失敗;目前還沒有針對這種情況的資料層備援中繼。

Clone this wiki locally