安装WireGuard
sudo apt update && sudo apt install wireguard # Ubuntu/Debiansudo dnf install wireguard-tools # Fedora/CentOS
生成密钥对
umask 077 wg genkey | sudo tee /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
创建配置文件(/etc/wireguard/wg0.conf)HPC服务器集群安装部署就找荣合技术
[Interface]Address = 10.8.0.1/24 # 服务端虚拟IPListenPort = 51820 # 监听端口PrivateKey = <服务端私钥> # 从private.key粘贴PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE[Peer]PublicKey = <客户端公钥> # 后续从客户端获取AllowedIPs = 10.8.0.2/32 # 仅允许该客户端IP
注意:eth0需替换为实际网卡名(通过ip addr查看)
。
启用内核转发与防火墙
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.confsudo sysctl -psudo ufw allow 51820/udp # 开放端口
启动服务
sudo systemctl enable --now wg-quick@wg0sudo wg show # 验证状态
生成客户端密钥对
wg genkey | tee client_private.key | wg pubkey > client_public.key
创建配置文件(如client.conf)
[Interface]PrivateKey = <客户端私钥> # 从client_private.key粘贴Address = 10.8.0.2/24 # 客户端虚拟IPDNS = 8.8.8.8 # 可选DNS设置[Peer]PublicKey = <服务端公钥> # 从服务端public.key获取Endpoint = 1.2.3.4:51820 # 服务端公网IP和端口AllowedIPs = 0.0.0.0/0 # 所有流量走VPN(或指定子网如10.8.0.0/24)PersistentKeepalive = 25 # NAT穿透保活
启动客户端联系电话:4001819668
Linux:sudo wg-quick up ./client.conf
Windows/Mac:通过官方GUI导入配置文件
。
AllowedIPs
服务端:精确到单个IP(如10.8.0.2/32),避免路由冲突。
客户端:设为0.0.0.0/0全局流量路由,或10.8.0.0/24仅访问VPN内网
。
NAT与防火墙
确保服务端启用IP转发(net.ipv4.ip_forward=1)。
若客户端位于NAT后,需配置PersistentKeepalive维持连接
。
多客户端扩展
每新增一个客户端,在服务端添加对应的[Peer]段,并分配*IP(如10.8.0.3/32)
。
连接状态检查
sudo wg show # 查看握手时间和流量ping 10.8.0.1 # 测试连通性
日志排查
journalctl -u wg-quick@wg0 -f # 查看实时日志sudo ss -uapn | grep 51820 # 确认端口监听
密钥管理
私钥权限设为600,禁止上传至版本控制。
防火墙规则
限制SSH仅允许VPN IP访问(如10.8.0.0/24)
。
定期更新
sudo apt upgrade wireguard-tools # 保持*新版本
通过以上步骤,可快速搭建安全的WireGuard VPN网络。
如何为WireGuard配置IPv6支持?如何通过脚本自动化WireGuard的客户端配置生成?
如何为WireGuard配置IPv6支持?微信号:RH23CN