第九十五期 WireGuard配置

发布于 2025-09-20  259 次阅读


WireGuard配置

(1)安装wireguard
#安装wireguard软件
sudo apt install wireguard resolvconf -y

#开启IP转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

(2)增加权限
cd /etc/wireguard/
chmod 0777 /etc/wireguard

#调整目录默认权限
umask 077

(3)密钥生成
# SERVER
#生成私钥
wg genkey > server.key

#通过私钥生成公钥
wg pubkey < server.key > server.key.pub

# CLIENT
#生成私钥
wg genkey > client1.key

#通过私钥生成公钥
wg pubkey < client1.key > client1.key.pub
server.key是服务端的私钥,需要填写在服务端配置文件的[Interface]一栏中
server.key.pub 是服务端的公钥,需要填写在客户端配置文件的[Peer]一栏中
client1.key 是客户端的私钥,需要填写在客户端配置文件的[Interface]一栏中
client1.key.pub 是客户端的公钥,需要填写在服务端配置文件的[Peer]一栏中
简而言之:是谁的私钥就放在谁那边,公钥用作请求他对应的机器

(4)配置文件
1. 服务端(存放于/etc/wireguard/wg0.conf)
[Interface]
PrivateKey = $(cat server.key) # 本机的 PrivateKey 内容
Address = 10.0.8.1 #本机虚拟局域网IP

# 路由表 与 NAT转发
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens18 -j MASQUERADE

ListenPort = 50814 # WireGuard监听端口
DNS = 8.8.8.8
MTU = 1420

[Peer]
PublicKey = $(cat client1.key.pub) # 客户端的 PublicKey 内容
AllowedIPs = 10.0.8.10/32
解释:
I. PostUp与PostDown分别表示当wireguard服务启动和关闭时(即VPN连接与断开),执行的命令
II. iptables中的-A和 -D分别表示追加和删除,即追加 / 删除 FORWARD链路中(专门用于路由转发,wg0网卡进,ens18网卡出;-j ACCEPT表示接受该行为);
III. iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
-t nat 表示在NAT表里操作(源 NAT、目的 NAT网络地址转换)
-A POSTROUTING 表示数据包在离开本机时执行(即:用于出站流量)
-o ens18 指定出口网卡
-j MASQUERADE 把数据包的IP伪装成ens18出口网卡(即网关)的IP
IV. [Peer]中AllowedIPs
表示:哪个虚拟 IP 段归这个 Peer(客户端)所有
2. 客户端
[Interface]
PrivateKey = $(cat client1.key) #client1的私钥
Address = 10.0.8.10 #此处为peer规定的客户端IP
MTU = 1500

[Peer]
PublicKey = $(cat server.key.pub) #此处为server的公钥
AllowedIPs = 10.0.8.0/24 #此处为允许的服务器IP
Endpoint = your_server_ip:50814 #服务器对端IP+端口
解释:
[Peer]中AllowedIPs表示:哪些目标地址的流量要走 VPN 【如果要访问服务端内网(例如校园网),可增加服务端ens18网卡的网关地址(如192.168.2.0/24)】

(5)补充内容
I. 客户端命令
#启动wg0
wg-quick up wg0

#关闭wg0
wg-quick down wg0

# 服务器开机自启
systemctl enable wg-quick@wg0
II. 客户端下载地址 https://www.wireguard.com/install/


Skyler & Harry 's Notes