安装WireGuard
使用包管理器安装WireGuard:
sudo apt-get install wireguard
生成服务器的私钥和公钥
在服务器上执行以下命令:
sudo wg genkey sudo wg pubkey
这将生成一个私钥文件(在/etc/wireguard/目录下)和一个公钥文件。
创建服务器的WireGuard接口
使用wg命令创建一个新的接口,并设置其参数:
sudo wg create-interface \ interface_name=server \ private-key=/etc/wireguard/server私钥文件名 \ public-key=/etc/wireguard/server公钥文件名 \ address=192.168.1.1/24 \ port=518
配置客户端
在客户端上生成配置文件:
sudo wg genkey sudo wg pubkey > /etc/wireguard/client.pubkey
然后将服务器的公钥添加到客户端的配置文件中:
sudo cp /etc/wireguard/server公钥文件名 /etc/wireguard/client.pubkey
使用wg-quick命令连接到服务器:
sudo wg-quick connect 服务器的地址:服务器的端口
或者手动配置并连接:
sudo wg connect 服务器的地址:服务器的端口
设置DNS
使用resolvectl添加服务器的DNS地址:
sudo resolvectl neighbor 服务器的IP地址:53 服务器的DNS服务器地址
配置防火墙规则
确保防火墙允许VPN流量:
sudo nft -f <防火墙配置文件>
允许来自服务器的所有流量:
sudo nft -A main allow ip src 192.168.1./24 jump to:wg sudo nft -A main allow ip dst 192.168.1./24 jump to:wg
允许本地应用访问外部:
sudo nft -A main allow port 80 443 out
测试连接
尝试从客户端访问服务器内部网络:
ping 192.168.1.1
检查防火墙规则是否正确应用:
sudo nft list rules
验证
检查WireGuard接口状态:
sudo wg show
如果接口处于ATTACK状态,可能需要重新生成密钥并重启服务:
sudo wg update sudo systemctl restart wg-quick@server
故障排除
- 防火墙问题:使用
nft检查规则是否正确应用。 - 路由问题:在客户端或服务器上添加路由规则。
- DNS问题:确保DNS服务器可达,尝试
nslookup或dig。
最终验证
确保客户端能够访问服务器内部网络,防火墙规则正确生效,DNS配置无误。
完成以上步骤后,您的WireGuard VPN节点应该已经配置完毕,可以正常使用,如有问题,可参考WireGuard的官方文档或社区求助。









