1

适用场景‌: 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  

沧浪水
97 声望12 粉丝