CentOS7 部署 WireGuard Server
安装 WireGuard
# 需要EPEL
yum install wireguard-tools
生成密钥对
mkdir -p /etc/wireguard/
cd /etc/wireguard
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey | tee /etc/wireguard/server_public.key
创建WireGuard配置文件
/etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/30
MTU = 1280
SaveConfig = true
ListenPort = 51820
PrivateKey = private-key-of-your-server
[Peer]
PublicKey = public-key-of-your-client
AllowedIPs = 10.0.0.0/30, 10.0.1.0/24
- 调整合适的
MTU
值以获得最佳性能 AllowedIPs
除包含对端wg网卡的IP地址段外 对端本地网络的其他设备如果想经过对端的路由转发至Server 也需要将其IP地址段填入 若是经对端NAT后转发则不需要 换句话说 允许通过隧道的包的三层源地址必须包含在此
像这样保护文件:
chmod 600 /etc/wireguard/ -R
调整内核参数启用IP转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
在防火墙上配置IP伪装(NAT)和放开端口
firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --permanent --add-port=51820/udp
systemctl reload firewalld
启动 WireGuard
# 手动启动
wg-quick up /etc/wireguard/wg0.conf
# 手动停止
wg-quick down /etc/wireguard/wg0.conf
# 交给 systemd 管理 开机自启
systemctl start wg-quick@wg0.service
systemctl enable wg-quick@wg0.service
ifconfig
检查wg0
网卡是否存在route
检查路由表 若正确配置则AllowedIPs
中的所有网段会在启动时 自动创建路由表项 且Iface
为wg0