WireGuard 完整指南:安裝、金鑰和進階配置

最後更新: 24/09/2025

  • 簡單的架構和現代加密:用於路由的每個對等金鑰和 AllowedIP。
  • 在 Linux 上快速安裝桌面和行動裝置的官方應用程式。
  • 效能優於 IPsec/OpenVPN,具有漫遊和低延遲。
Wireguard 指南

如果你正在尋找一個 VPN 快速、安全且易於部署, WireGuard 這是目前最好的產品。它採用簡約設計和現代加密技術,是家庭用戶、專業人士和企業環境的理想選擇,適用於電腦、行動裝置和路由器。

在本實用指南中,您將找到從基礎知識到 進階設定:Linux(Ubuntu/Debian/CentOS)上的安裝、金鑰、伺服器和客戶端檔案、IP 轉發、NAT/防火牆、Windows/macOS/Android/iOS 上的應用程序, 分裂隧道、效能、故障排除以及與 OPNsense、pfSense、QNAP、Mikrotik 或 Teltonika 等平台的兼容性。

什麼是 WireGuard 以及為什麼選擇它?

WireGuard 是一個開源 VPN 協定和軟體,旨在創建 透過 UDP 的 L3 加密隧道。它與 OpenVPN 或 IPsec 相比,憑藉其簡單性、效能和較低的延遲脫穎而出,並依賴現代演算法,例如 Curve25519、ChaCha20-Poly1305、BLAKE2、SipHash24 與 HKDF.

它的程式碼庫非常小(大約 數千行),這有助於審計、減少攻擊面並改善維護。它還整合到 Linux 核心中,允許 高傳輸速率 即使在普通硬體上也能實現敏捷響應。

 

它是多平台的:有官方應用程式 Windows、macOS、Linux、Android 和 iOS並支援面向路由器/防火牆的系統(如 OPNsense)。它也適用於 FreeBSD、OpenBSD、NAS 和虛擬化平台等環境。

Wireguard VPN

內部工作原理

 

WireGuard 在對等體之間建立加密隧道(同行) 由密鑰標識。每個設備都會產生一個金鑰對(私鑰/公鑰),並隻共享其 公鑰 與另一端;從那裡,所有流量都經過加密和驗證。

指示 允許的IP 定義傳出路由(哪些流量應該通過隧道)以及遠端對等體在成功解密資料包後將接受的有效來源清單。這種方法稱為 加密密鑰路由 並大大簡化交通政策。

WireGuard 非常出色, 漫遊- 如果用戶端 IP 變更(例如,從 Wi-Fi 切換到 4G/5G),則會話將以透明且快速的方式重新建立。它還支援 終止開關 如果 VPN 發生故障,則阻止隧道外的流量。

Linux 上的安裝:Ubuntu/Debian/CentOS

在 Ubuntu 上,WireGuard 可以在官方倉庫中找到。更新軟體包,然後安裝軟體即可取得模組和工具。 wg 和 wg-quick.

apt update && apt upgrade -y
apt install wireguard -y
modprobe wireguard

在 Debian 穩定版中,如果需要,您可以依賴不穩定的分支儲存庫,按照建議的方法並使用 生產關懷:

sudo sh -c 'echo deb https://deb.debian.org/debian/ unstable main > /etc/apt/sources.list.d/unstable.list'
sudo sh -c 'printf "Package: *\nPin: release a=unstable\nPin-Priority: 90\n" > /etc/apt/preferences.d/limit-unstable'
sudo apt update
sudo apt install wireguard

在 CentOS 8.3 中,流程類似:如有必要,請啟動 EPEL/ElRepo 儲存庫,然後安裝軟體包 WireGuard 以及相應的模組。

獨家內容 - 點擊這裡  如何避免垃圾電話

線衛

密鑰生成

每個對等體必須有自己的 私鑰/公鑰對. 應用umask來限制權限並為伺服器和用戶端產生金鑰。

umask 077
wg genkey | tee privatekey | wg pubkey > publickey

在每台設備上重複此操作。切勿共享 私鑰 並安全地保存兩者。如果您願意,可以建立不同名稱的文件,例如 私鑰伺服器 y 公用伺服器金鑰.

服務器配置

在以下位置建立主文件 /etc/wireguard/wg0.conf. 分配一個 VPN 子網路(不用於你的真實 LAN)、UDP 連接埠並新增一個區塊 [同行] 每個授權客戶。

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <clave_privada_servidor>

# Cliente 1
[Peer]
PublicKey = <clave_publica_cliente1>
AllowedIPs = 10.0.0.2/32

您也可以使用另一個子網,例如 192.168.2.0/24並與多個同伴一起成長。為了快速部署,通常使用 wg-quick 使用 wgN.conf 檔案。

客戶端配置

在客戶端建立一個文件,例如 wg0-客戶端.conf,其中包含其私鑰、隧道位址、可選 DNS 以及伺服器的對等方及其公共端點和連接埠。

[Interface]
PrivateKey = <clave_privada_cliente>
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = <clave_publica_servidor>
Endpoint = <ip_publica_servidor>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

如果你把 允許的 IP = 0.0.0.0/0 所有流量都將通過 VPN;如果您只想訪問特定的伺服器網絡,請將其限制在必要的子網內,這樣可以減少 潛伏期 和消費。

伺服器上的 IP 轉送和 NAT

啟用轉發,以便用戶端可以透過伺服器存取網際網路。使用 的sysctl.

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding=1' >> /etc/sysctl.conf
sysctl -p

使用 iptables 為 VPN 子網路設定 NAT,設定 WAN 介面(例如, eth0):

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

使其持久化 使用適當的軟體包並保存規則以便在系統重新啟動時應用。

apt install -y iptables-persistent netfilter-persistent
netfilter-persistent save

啟動和驗證

啟動介面並啟用服務隨系統啟動。此步驟將建立虛擬介面並新增 路線 必要的。

systemctl start wg-quick@wg0
systemctl enable wg-quick@wg0
wg

wg 您將看到對等點、金鑰、傳輸和上次握手時間。如果您的防火牆策略限制較多,請允許透過該介面進入。 wg0 以及服務的 UDP 連接埠:

iptables -I INPUT 1 -i wg0 -j ACCEPT

官方應用程式:Windows、macOS、Android 和 iOS

在桌面上,您可以匯入 .conf 文件。在行動裝置上,該應用程式允許您從 QR碼 包含配置;對於非技術客戶來說非常方便。

如果您的目標是公開自架服務,例如 Plex/雷達/聲納 透過您的 VPN,只需在 WireGuard 子網路中分配 IP 並調整 AllowedIPs,以便用戶端可以存取該網路;如果所有存取權都是透過 隧道.

優缺點

WireGuard 非常快速且簡單,但根據具體用例,請務必考慮其局限性和特性。以下是一些最均衡的概述 相應.

獨家內容 - 點擊這裡  如果您的手機上有追蹤軟體,您會在手機上看到這些細微的跡象。
優點 缺點
清晰簡短的配置,非常適合自動化 不包含本機流量混淆
即使在 移動 在某些傳統環境中,進階選項較少
現代密碼學和小程式碼使其變得簡單 審計 隱私:IP/公鑰關聯可能很敏感,取決於政策
客戶端提供無縫漫遊和終止開關 第三方相容性並不總是同質的

 

分割隧道:只引導必要的內容

拆分隧道允許您僅透過 VPN 發送所需的流量。使用 允許的IP 您可以決定是否對一個或多個子網路進行完全重定向或選擇性重定向。

# Redirección completa de Internet
[Peer]
AllowedIPs = 0.0.0.0/0
# Solo acceder a recursos de la LAN 192.168.1.0/24 por la VPN
[Peer]
AllowedIPs = 192.168.1.0/24

有反向分割隧道等變體,透過 網址 或透過應用程式(透過特定的擴充功能/客戶端),儘管 WireGuard 中的本機基礎是透過 IP 和前綴進行控制。

相容性和生態系統

WireGuard 是為 Linux 核心而生的,但如今它 跨平台OPNsense 原生整合了它;pfSense 因審計而暫時停止,隨後根據版本作為可選包提供。

在 QNAP 等 NAS 上,您可以透過 QVPN 或虛擬機器安裝它,利用 10GbE NIC 來 高速MikroTik 路由器板自 RouterOS 7.x 起就已納入 WireGuard 支援;在其早期版本中,它處於測試階段,不建議用於生產,但它確實允許設備甚至最終客戶端之間的 P2P 隧道。

像 Teltonika 這樣的製造商有一個軟體包可以將 WireGuard 添加到他們的路由器中;如果您需要設備,可以在 shop.davantel.com 並遵循製造商的安裝指南 額外的費用。

性能和延遲

由於其簡約的設計和高效的演算法選擇,WireGuard 實現了非常高的速度和 低延遲,通常優於 L2TP/IPsec 和 OpenVPN。在使用強大硬體的本地測試中,實際速率通常是替代方案的兩倍,非常適合 串流、遊戲或 VoIP.

企業實施及遠距辦公

在企業中,WireGuard 適用於在辦公室之間建立隧道、遠端員工存取以及 CPD 和雲 (例如,用於備份)。其簡潔的語法使版本控制和自動化變得簡單。

它使用中間解決方案與 LDAP/AD 等目錄集成,並可與 IDS/IPS 或 NAC 平台共存。一個常用的選項是 數據包圍欄 (開源),它允許您在授予存取權限和控制 BYOD 之前驗證裝置的狀態。

線衛

Windows/macOS:注意事項與提示

官方 Windows 應用程式通常運作正常,但在某些版本的 Windows 10 中,使用時會出現問題 允許的 IP = 0.0.0.0/0 由於路由衝突。作為臨時替代方案,一些使用者選擇基於 WireGuard 的用戶端(例如 TunSafe)或將 AllowedIPs 限制在特定子網路內。

Debian 快速入門指南及範例金鑰

為伺服器和客戶端產生金鑰 /etc/wireguard/ 並建立 wg0 介面。確保 VPN IP 與本機網路或用戶端上的任何其他 IP 不符。

cd /etc/wireguard/
wg genkey | tee claveprivadaservidor | wg pubkey > clavepublicaservidor
wg genkey | tee claveprivadacliente1 | wg pubkey > clavepublicacliente1

wg0.conf 伺服器,子網路 192.168.2.0/24,連接埠 51820。如果要自動化,請啟用 PostUp/PostDown NAT 在啟動/關閉介面時使用 iptables。

[Interface]
Address = 192.168.2.1/24
PrivateKey = <clave_privada_servidor>
ListenPort = 51820
#PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <clave_publica_cliente1>
AllowedIPs = 0.0.0.0/0

客戶端位址為 192.168.2.2,指向伺服器的公共端點,並附有 活著 如果有中間 NAT,則為可選。

[Interface]
PrivateKey = <clave_privada_cliente1>
Address = 192.168.2.2/32

[Peer]
PublicKey = <clave_publica_servidor>
AllowedIPs = 0.0.0.0/0
Endpoint = <ip_publica_servidor>:51820
#PersistentKeepalive = 25

拉起介面並觀察 MTU、路由標記和 福馬克 以及路由策略規則。使用以下命令查看 wg‑quick 輸出和狀態: wg秀.

獨家內容 - 點擊這裡  Ramnit:了解此威脅是什麼以及如何將其從Windows中刪除

Mikrotik:RouterOS 7.x 之間的隧道

MikroTik 自 RouterOS 7.x 起支援 WireGuard。在每個路由器上建立一個 WireGuard 接口,應用它,它將自動產生。 按鍵. 將 IP 指派給 Ether2 作為 WAN,並將 wireguard1 作為隧道介面。

透過在客戶端交叉伺服器的公鑰來配置對等體,反之亦然,定義允許的位址/允許的IP位址(例如 0.0.0.0/0 (如果您希望允許任何來源/目標通過隧道)並設定遠端端點及其連接埠。 ping 遠端隧道 IP 將確認 握手.

如果您將手機或電腦連接到 Mikrotik 隧道,請微調允許的網絡,以免打開超過必要的網絡;WireGuard 會根據您的網絡;WireGuard 會根據您的 加密密鑰路由,因此配對出發地和目的地非常重要。

使用的密碼學

WireGuard 採用了一套現代化的: Noise 作為框架,Curve25519 用於 ECDH,ChaCha20 用於使用 Poly1305 進行認證的對稱加密,BLAKE2 用於哈希,SipHash24 用於哈希表,HKDF 用於推導 按鍵如果某個演算法被棄用,則可以對協定進行版本控制以無縫遷移。

行動裝置的利與弊

在智慧型手機上使用它可以讓您安全地瀏覽 公共 Wi-Fi隱藏來自 ISP 的流量,並連接到家庭網路以存取 NAS、家庭自動化或遊戲。在 iOS/Android 上,切換網路不會中斷隧道,從而提升了體驗。

缺點是,與直接輸出相比,速度會有所損失,延遲也會更大,而且你依賴伺服器始終處於 DISPONIBLE。然而,與 IPsec/OpenVPN 相比,懲罰通常較低。

WireGuard 集簡單易用、速度快、安全性高於一身,學習曲線平緩:安裝、產生金鑰、定義 AllowedIP,即可開始使用。它還添加了 IP 轉發功能、完善的 NAT 功能、帶有二維碼的官方應用,並且與 OPNsense、Mikrotik 或 Teltonika 等生態系統兼容。 現代VPN 適用於幾乎任何場景,從保護公共網路到連接總部以及輕鬆存取您的家庭服務。