安装必要的软件包
确保服务器上安装了必要的软件包:
- Debian/Ubuntu:
sudo apt install wireguard iptables-persistent netfilter-persistent
- Fedora:
sudo dnf install wireguard wireguard-tools
- CentOS/RHEL:
sudo yum install wireguard wireguard-tools
设置IP转发和NAT
编辑/etc/sysctl.conf,添加以下设置:
sudo nano /etc/sysctl.conf
添加以下参数:
net.ipv4.ip_forward=1 net.ipv4.conf.l3_csl=1 net.ipv6.conf.l3_csl=1
然后应用这些更改:
sudo sysctl -p
配置服务器的防火墙
使用iptables-persistent工具配置防火墙:
sudo iptables-persistent save
然后编辑防火墙规则:
sudo iptables-persistent nat
添加NAT规则,允许服务器作为NAT:
sudo iptables -t nat -A POSTROUTING -o eth -j MASQUERADE
保存并应用防火墙规则:
sudo iptables-persistent save
创建WireGuard接口
使用ifupdown来创建接口:
sudo nano /etc/network/ifupdown.conf
添加以下配置:
interface wg
address 192.168.1.1/24
netmask 255.255.255.
up scripts "/etc/wg/update-peers.sh"
down scripts "/etc/wg/delete-peers.sh"
如果你使用的是networkd,则编辑相应的配置文件。
生成WireGuard密钥
在/etc/wg目录中生成密钥对:
sudo mkdir -p /etc/wg sudo ssh-keygen -f /etc/wg/private-key.pem
将私钥分配给客户端,客户端使用此私钥连接到服务器。
配置WireGuard服务器
安装并启动wg-quick:
sudo apt install wg-quick sudo wg-quick server /etc/wg/public-key.pem
启动WG-KMP接口
安装并启动WG-KMP:
sudo apt install wg-kmp sudo wg-kmp server wg
客户端配置
在客户端系统上安装WireGuard:
- Debian/Ubuntu:
sudo apt install wireguard
- Fedora:
sudo dnf install wireguard
- CentOS/RHEL:
sudo yum install wireguard
生成客户端配置文件:
sudo wg-quick peer /etc/wg/server-public-key.pem
或者手动配置接口:
sudo wg-quick add interface wg sudo wg-quick set wg address=192.168.1.2/24 sudo wg-quick set wg dns=8.8.8.8
测试连接
使用ping检查是否连接:
ping 192.168.1.1
额外配置(可选)
-
MTU调整:
sudo nano /etc/wg/wg.conf
添加:
Peer 192.168.1.1 mtu 128
-
默认网关:
sudo nano /etc/sysctl.conf
添加:
net.ipv4.ip_forward_default_csl=1
-
防火墙规则:
sudo iptables-persistent nat
添加MIP规则:
sudo iptables -t nat -A PREROUTING -i wg --dport 518 -j DNAT --target 192.168.1.1 --destination-type host
自动化部署(可选)
使用Ansible或Shell脚本自动化安装和配置。
常见问题
- 服务启动失败:检查服务日志,确保所有服务(如
wg-quick和wg-kmp)已正确启动。 - 权限问题:确保
/etc/wg目录权限正确,避免权限不足。 - 防火墙规则错误:使用
iptables-persistent检查并修复防火墙规则。
通过以上步骤,你应该能够成功配置并运行一个功能的WireGuard服务器,确保客户端能够安全地通过VPN连接。









