适用场景: Debian12 服务端 + Win11/Debian 客户端 (AI整理)
一、服务端配置(Debian12 | 公网IP: 11.22.33.44
)
1. 安装 & 生成密钥
sudo apt update && sudo apt install wireguard -y
sudo umask 077 && wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
cat /etc/wireguard/server_private.key
+DEyTpifj7wzUk/6yygghhNVcTKR0hDibfb7cq7dnGg=
cat /etc/wireguard/server_public.key
3oFnwC4/3iW9Ua4GbAAI31iEB0tYSc8SgH31qTWXJg4=
# 安全增强
wg genpsk > preshared.key
cat /etc/wireguard/preshared.key
kMhw3YatBdmI4BwYil1kDpwaivRbIH9gdumqnjE/wIY=
2. 配置文件 /etc/wireguard/wg0.conf
eth0
通过 ip route show default | awk '{print $5}'
获取
[Interface]
Address = 20.20.20.1/24
PrivateKey = +DEyTpifj7wzUk/6yygghhNVcTKR0hDibfb7cq7dnGg= # <服务端私钥>替换为 /etc/wireguard/server_private.key 内容
ListenPort = 51820
# 网络配置(替换 eth0 为实际公网网卡名)
# NAT 与防火墙规则
PostUp = sysctl -w net.ipv4.ip_forward=1
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -A FORWARD -i eth0 -o wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -s 20.20.20.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 20.20.20.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i eth0 -o wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
## <按需配置> 作为客户端的配置(连接其他 VPN 服务器)
[Peer]
PublicKey = <目标 VPN 服务器公钥>
Endpoint = 目标服务器IP:端口
AllowedIPs = 172.16.0.0/24 # 指定需访问的目标子网
PersistentKeepalive = 25
# 允许其他客户端连接
# 客户端 Peer 声明
[Peer] # magickbook 2019
PublicKey = N3Z0YWS7W/4uzr+eRR0r7NkOdSmvfAGiMtj42x4JpjQ= # 客户端client_public.key
PresharedKey = YML3sSF4pAUKZwWyZRI/aRs89ilQMl5zDKTkSHGO2EI= # <唯一 PSK>客户端与服务端共享的密钥 wg genpsk > preshared.key
AllowedIPs = 20.20.20.32/32 # 客户端专属 IP
# [Peer] # magickbookpro 16 2024
# PublicKey = M0tdKiybmStTiwFxuTKPAvL/H/vwDOUBJTiDKUztbiQ=
# PresharedKey =
# AllowedIPs = 20.20.20.31/32
[Peer] # PVE
PublicKey = TVJqVivMDL3JJ8BdbYUFPUlIitsGqR5edZQF4Xw7OQw=
PresharedKey = 4IX/eV3Hj5XouV1gXyo2sI1cEjCwjuDJZErH7OuWNGg=
AllowedIPs = 20.20.20.11/32
[Peer] # PVE.Debian
PublicKey = ZS1EXZ+c/BEu7hCUxtlZC2eu+CKZbz+EhOd7DenY2Sg=
PresharedKey = mtg4h4FJ0F3rGOk8MbMkiYi/b8/Bx/1SCAJQ4WFvWtU=
AllowedIPs = 20.20.20.10/32
此配置使用公网服务端为路由中心、简化配置,客户端如下,仅需配置 AllowedIPs = 20.20.20.0/24
。如果,要点对点连接,可在双方客户端增加指定的peer
,理论上连接后流量不需要走服务端、不占用远程主机流量。
3. 启动服务
wg-quick up wg0
systemctl enable wg-quick@wg0
二、客户端
1. 客户端安装
- Linux客户端
同服务端
- Windows11客户端
# 迅雷下载
https://download.wireguard.com/windows-client/wireguard-installer.exe
# 或
https://download.wireguard.com/windows-client/wireguard-amd64-0.5.3.msi
cd D:\Applications\WireGuard
wg genkey | tee client-private.key | wg pubkey > client-public.key
wg genpsk > preshared.key
2. 配置
- win11
新建隧道 → 编辑以下配置:
# 配置文件 D:\Applications\WireGuard\client.conf
[Interface]
PrivateKey = <客户端私钥> # 客户端自动生成 client-private.key
Address = 20.20.20.2/24
MTU = 1420
[Peer] # 服务端(唯一必需 Peer)
PublicKey = 3oFnwC4/3iW9Ua4GbAAI31iEB0tYSc8SgH31qTWXJg4= #服务端 server_public.key
PresharedKey = YML3sSF4pAUKZwWyZRI/aRs89ilQMl5zDKTkSHGO2EI= #<与服务端相同的 PSK>
Endpoint = 11.22.33.44:51820
AllowedIPs = 20.20.20.0/24 # 路由所有流量至服务端
PersistentKeepalive = 25
点击“连接”。
- linux
# 配置文件 /etc/wireguard/wg0.conf
[Interface]
PrivateKey = 6CYOGX8x60sQedSMveEH453HJPSV+k765xUQL0TtRFU= #<客户端私钥>替换为 client-private.key 内容
Address = 20.20.20.3/24
MTU = 1420
[Peer]
PublicKey = 3oFnwC4/3iW9Ua4GbAAI31iEB0tYSc8SgH31qTWXJg4= # <服务端公钥> 替换为服务端 /etc/wireguard/server_public.key 内容
Endpoint = 11.22.33.44:51820
AllowedIPs = 20.20.20.0/24 # 避免VPN冲突。如果没有其它VPN,可以设置为 0.0.0.0/0 完全转发
PersistentKeepalive = 25
启动连接 wg-quick up wg0
。
三、管理命令
操作 命令
# 查看服务端状态
wg show
wg show wg0
# 重启服务端
wg-quick down wg0 && wg-quick up wg0
# 停止Linux客户端连接
wg-quick down wg0
wg-quick down ~/wireguard/wg0.conf
四、网络拓扑
1. 网络模型
[Win11 Client] [Debian Client]
20.20.20.2/24 20.20.20.3/24
│ │
└───────────┬────────────┘
│
[公网服务器 11.22.33.44]
20.20.20.1/24
│
└─> 互联网出口 (eth0)
2. 多跳 VPN 链路
# 服务端 A 的配置
[Peer]
PublicKey = <B的公钥>
Endpoint = B的公网IP:端口
AllowedIPs = 172.16.0.0/24, 10.10.0.0/16 # 包含 B 和 C 的子网
# 服务端 B 的配置
[Peer]
PublicKey = <C的公钥>
Endpoint = C的公网IP:端口
AllowedIPs = 10.10.0.0/16
五、故障排查
✅ 检查路由表:
ip route list | grep 20.20.20.0/24
✅ 验证端口连通性:
# 客户端Linux
telnet 11.22.33.44 22
apt install nmap
nmap -sU -p 51820 11.22.33.44
# 服务端Linux
#检查监听
netstat -anu | grep 51820
#验证 UDP 连通性1
nc -vzu 11.22.33.44 51820
#验证 UDP 连通性2
apt install tcpdump
nmap -sU -p 51820 11.22.33.44
✅ 确认NAT规则:
sudo iptables -t nat -L POSTROUTING
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。