開啟 3 天免費試用
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。


WireGuard 伺服器設定不能只憑近期握手驗收。本教學在 Ubuntu 24.04 LTS 建立 IPv4 互聯網閘道,以另一部 Ubuntu 24.04 LTS 客戶端分別核對轉送、DNS、拒絕、撤銷、重新啟動及還原。只使用自己擁有或獲授權管理的專用主機;指令供讀者操作,並非作者部署記錄。
關鍵要點
- peer 連線不等於互聯網轉送或 DNS 已正常。
- 保留獨立管理連線及可還原的防火牆基線。
- 示例只涵蓋 IPv4,另一條有效 IPv6 路徑須另行處理。
- 撤銷須移除執行中的 peer 及持久設定。
- 有限工作及還原檢查通過後才開啟自動啟動。
先以自建規劃指南決定主機、憑證、更新及停用由誰負責。只需一個明確設定代理的應用程式時,VLESS/REALITY 部署教學是另一條路線,不是本教學前提。全隧道與應用程式代理比較說明流量涵蓋選擇。
若只需日常公開存取而不想管理 peer,AethoVPN 提供支援終端路線。Windows 使用官方 .exe,透過電郵驗證碼繼續,在 App 選擇實際可用位置後連線。以 出口 IP 核對工具核對這次請求的可見出口,再重做原本瀏覽或上載工作。
租主機前先比較 VPS 與 VPN 責任。Standard 支援一部流動裝置;Pro 支援兩部桌面及兩部流動裝置;Premium 支援八部裝置,不分裝置類型。
此方法不替你建立主機,也不承諾兼容本文 WireGuard 設定。新用戶只有一次三日 Pro 試用,刪除帳戶後重新註冊不會重設。試用託管日常出口。
選擇有可達公開 IPv4 端點的專用 Ubuntu 24.04 LTS 伺服器及另一部授權 Ubuntu 客戶端。NAT 後的主機還需要獲授權上游 UDP 映射,單靠私人位址不足。預留 UDP 51820、隧道網段 10.77.0.0/24、伺服器 10.77.0.1 及客戶端 10.77.0.2;與既有網絡重疊便須更換。WireGuard peer 機制交代兩端關係。[1]
改動前記錄 ip address、ip route、ip rule、ip -6 address、ip -6 route、resolvectl status、sysctl net.ipv4.ip_forward 及相關防火牆設定,私下保存。透過獨立供應商控制台或還原路徑建立一條新管理連線;已開啟的終端並不足夠。原設定備份不要放進公開儲存庫。
此防火牆示例使用 iptables,前提是沒有競爭的 UFW、firewalld 或獨立 nftables 管理器。檢視 sudo iptables-save 並確認政策擁有者。已有其他管理器負責時,停止套用示例,透過該管理器實現相同的小範圍政策,切勿清空規則表。
以 ip -4 route get 1.1.1.1 記錄真實出站介面;這只顯示路由選擇,不發出探測。EGRESS_IF 是待替換標記,並非介面名稱。
使用沒有可用 IPv6 預設路徑的受控客戶端。基線顯示有效路徑時,停止這個 IPv4 練習,另外設計 IPv6 路由及失敗政策。不要為了結果好看而關閉共用主機 IPv6。本教學亦沒有斷線保護:停止隧道會恢復普通路由。
圖中分開隧道、伺服器轉送/NAT 與公開目的地。隧道失效時管理仍須可用;圖只解釋路徑,並非量測流量證據。
兩端均從 Ubuntu 已設定的可信套件來源安裝。項目的 Ubuntu 安裝方法使用 apt。[2]
sudo apt update
sudo apt install wireguard iptables
sudo install -d -m 700 /etc/wireguard
sudo -i
cd /etc/wireguard
umask 077
wg genkey > wg-exit.private
wg pubkey < wg-exit.private > wg-exit.public
exit
每端獨立產生密鑰,私鑰留在自己的主機,只交換對應公鑰。[1]檔案由 root 擁有且權限私密;不發布可用設定、QR code、截圖或密鑰值。下文名稱是替換標記,不是真實秘密。加到伺服器之前,先記錄公鑰對應哪部裝置。
透過私密編輯器建立伺服器 /etc/wireguard/wg-exit.conf,替換密鑰及 EGRESS_IF。規則附有識別註解,只服務這一部客戶端;wg-quick 在介面生命週期執行這些 hook。[3]
[Interface]
Address = 10.77.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -I INPUT 1 -p udp --dport 51820 -m comment --comment wg-exit-lab -j ACCEPT
PostUp = iptables -I FORWARD 1 -i %i -o EGRESS_IF -s 10.77.0.2/32 -m comment --comment wg-exit-lab -j ACCEPT
PostUp = iptables -I FORWARD 1 -i EGRESS_IF -o %i -d 10.77.0.2/32 -m conntrack --ctstate ESTABLISHED,RELATED -m comment --comment wg-exit-lab -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -s 10.77.0.2/32 -o EGRESS_IF -m comment --comment wg-exit-lab -j MASQUERADE
PreDown = iptables -D INPUT -p udp --dport 51820 -m comment --comment wg-exit-lab -j ACCEPT
PreDown = iptables -D FORWARD -i %i -o EGRESS_IF -s 10.77.0.2/32 -m comment --comment wg-exit-lab -j ACCEPT
PreDown = iptables -D FORWARD -i EGRESS_IF -o %i -d 10.77.0.2/32 -m conntrack --ctstate ESTABLISHED,RELATED -m comment --comment wg-exit-lab -j ACCEPT
PreDown = iptables -t nat -D POSTROUTING -s 10.77.0.2/32 -o EGRESS_IF -m comment --comment wg-exit-lab -j MASQUERADE
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.77.0.2/32
在供應商安全群組容許同一 UDP 連接埠,同時保留管理存取。客戶端公開來源穩定時,應限制 INPUT 及安全群組的來源;採用 -s CLIENT_PUBLIC_IPV4/32 時,新增及刪除規則都要包含同一條件。雲端安全群組與主機防火牆是不同層。
轉送規則容許此客戶端前往經 EGRESS_IF 可達的目的地。若主機有私人路由,可能包括內部服務:使用沒有敏感內部目的地的專用主機,或先加入經審查的目的地政策。認證不等於目的地 ACL。
NAT 提供公開回程,並不授權其他 peer。Ubuntu 預設出口文件要求轉送及地址轉換。[4]
sudo chmod 600 /etc/wireguard/wg-exit.conf
sudo chown root:root /etc/wireguard/wg-exit.conf
記錄轉送原值,確認路徑未被使用,再建立專用 /etc/sysctl.d/70-wg-exit.conf,內容為 net.ipv4.ip_forward=1。只套用該檔案:
sudo sysctl -p /etc/sysctl.d/70-wg-exit.conf
sudo wg-quick up wg-exit
sudo wg show wg-exit
啟動 hook 中途失敗時,重試前先檢查介面及規則;以完全匹配的刪除指令移除遺留條目。重複插入會產生重複規則。不要加入 SaveConfig=true:手冊指出它會在關閉時以執行中狀態覆寫設定檔。[3]
建立客戶端私密 /etc/wireguard/wg-exit.conf:
[Interface]
Address = 10.77.0.2/32
PrivateKey = CLIENT_PRIVATE_KEY
PostUp = resolvectl dns %i AUTHORIZED_DNS_IPV4
PostUp = resolvectl domain %i ~.
PreDown = resolvectl revert %i
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_PUBLIC_IPV4:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
替換公開端點,選可達且獲授權使用的 DNS。設為 root 擁有、模式 600,再執行 sudo wg-quick up wg-exit。
AllowedIPs 同時涉及路由及 peer 位址;伺服器 /32 與客戶端預設路由的角色不同。更改前閱讀AllowedIPs 指南。預設路由下 wg-quick 使用政策路由,要檢查 ip rule 與相關路由表,不能只看 main 表。[3]
Ubuntu systemd-resolved 可用 resolvectl 設定介面 DNS 及 ~. 路由域名。[5]此例不加入 DNS=,因為 wg-quick 會交給 resolvconf。使用 hook 前確認客戶端解析器確實採用 systemd-resolved。
程式自己的加密 DNS 要另行核對。Keepalive 對部分 NAT 映射有用,不是速度提升;不需要便省略。[1]
使用下表驗收,私下記錄實際觀察、版本及時間。表中是預期現象,並非作者測試結果。
| 檢查 | 方法 | 預期現象 | 失敗處理 |
|---|---|---|---|
| 介面與 peer | 兩端執行 sudo wg show wg-exit 及 ip -4 address show dev wg-exit[6] | 公鑰配對正確;伺服器 10.77.0.1/24、客戶端 10.77.0.2/32 | 改路由前先修正歸屬 |
| 認證 | 發出授權工作請求,查看握手 | 請求後出現近期握手 | 查 UDP 可達性及密鑰 |
| 資料及出口 | 重做授權公開工作,比較計數及出口 | 計數增加,見到預期伺服器出口 | 查轉送、NAT、回程 |
| DNS | resolvectl status wg-exit;resolvectl query TASK_HOST | 預期解析器/介面及有效答案 | 修解析範圍,另查程式 DNS |
| IPv6 範圍 | 重查基線位址及路由 | 無另一有效 IPv6 路徑 | 停止 IPv4 驗收 |
| 未登記 peer | 未列入伺服器的一次性客戶端密鑰 | 無認證握手或工作轉送 | 停止暴露,查有效 peer 清單 |
| 撤銷 | 移除執行中及持久 peer,再試流量 | 裝置不能認證或繼續隧道資料 | 找重建 peer 的來源 |
撤銷時使用該裝置的真實公鑰:
sudo wg set wg-exit peer CLIENT_PUBLIC_KEY remove
再刪除伺服器設定檔的 peer 區塊。不要用整份執行中設定覆蓋 hook。從被撤銷客戶端重試,核對伺服器有效 peer 清單;後續授權測試改用替換憑證。只刪客戶端設定不會撤銷伺服器權限。
重新加入一個授權一次性 peer 並通過檢查後,在兩部專用主機啟用開機服務:
sudo systemctl enable wg-quick@wg-exit.service
只重新啟動獲授權的主機。核對 systemctl status wg-quick@wg-exit.service、wg show、轉送值、精確防火牆條目、解析範圍及新工作請求。容器重啟不能替代整機生命週期驗收。未能重啟時,這一項仍未驗證。
沒有握手先查密鑰、端點、監聽或 UDP 過濾。有握手卻無工作回應,再查客戶端路由、伺服器轉送、NAT 及回程政策。IP 請求正常但名稱失敗,檢查 DNS。
依已連線但不能上網清單,一次改一層並重做同一工作。其他 VPN 正常不能定位此故障。
保持軟件受支援,每部可獨立撤銷的裝置有獨立 peer;相關改動後重做拒絕及還原檢查。也記錄供應商網絡變更。不明白活躍規則、失去獨立管理或需要改共用正式政策時,應停止。
客戶端執行 sudo wg-quick down wg-exit,若啟用過開機服務亦要停用。伺服器若由活躍 unit 管理,使用 sudo systemctl disable --now wg-quick@wg-exit.service;手動啟動介面則用 sudo wg-quick down wg-exit。先確認真實狀態:停用非活躍 unit 不會移除手動介面。hook 失敗後檢查遺留規則,只移除此測試的精確條目,亦移除自己建立的雲端規則。
刪除專用 sysctl 檔案,沒有其他服務依賴轉送時才回復記錄的原值。協調設定漂移,不整份還原舊防火牆備份。回讀路由、解析器、規則及新管理連線,重做原日常工作。安全停用不用的密鑰及所屬檔案;主機、位址、磁碟及快照費用另在供應商處清理。
此互聯網出口工作需要獲授權的可達端點。NAT 後主機要有合適上游映射;私人網絡存取則是另一種拓撲。
加密 peer 關係可正常,但轉送、NAT、回程或 DNS 仍可失敗。重做授權公開工作,逐層核對結果。
查看介面解析狀態,查詢工作主機名稱,再核對真實應用程式解析行為。程式自設加密 DNS 時需要獨立證據。
不涵蓋。這是沒有有效替代 IPv6 路徑的受控客戶端上的 IPv4 示例;有效 IPv6 預設路由須另行設計。
從執行中的 WireGuard 及持久伺服器檔案移除該 peer,再重試流量。只刪客戶端設定仍保留伺服器授權。
服務、有效 peer、轉送、精確規則、解析範圍及新的工作請求都要核對。服務運作本身不證明閘道可用。
只需支援裝置的公開存取而毋須伺服器控制時,可考慮這路線。核對裝置條款及真實工作,不假定協議兼容。
適用範圍:按 Ubuntu 24.04 LTS 官方資料編寫,未進行作者完整端到端實測。此 IPv4 閘道示例沒有 IPv6 或斷線保護驗收。使用自有或授權主機,遵守適用法律與服務政策。
來源:
Sources checked 2026 年 10 月 9 日。
相關文章:
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。