安装WireGuard
安装源代码并编译
- 克隆WireGuard的GitHub仓库:
git clone https://github.com/wireguard/wireguard.git cd wireguard
- 编译并安装:
make -j sudo make install
确保安装目录为
/usr/lib/wireguard。
加载内核模块
- 加载
wg内核模块:sudo modprobe wg sudo modprobe wg-quick
如果使用IP转发:
sudo modprobe ip-bridge sudo modprobe ip-bridge-utils
创建WireGuard接口
生成接口
sudo wg create wg
设置MTU和桥接
sudo wg set wg mtu 140 sudo wg set wg listen-port 518 sudo ip link set wg up sudo ip link add name wg type bridge
配置IP地址
分配IP地址
sudo wg-quick add wg 192.168.1.1/24
启动服务
- 启动服务:
sudo wg service start wg
或者根据系统(如Debian/Ubuntu):
sudo systemctl start wg@wg
配置NAT穿透
masquerade配置
- 在路由器或防火墙上设置masquerade:
iptables -t nat -A POSTROUTING -o eth -j MASQUERADE
- 在WireGuard节点上:
sudo iptables -A FORWARD -i wg -j ACCEPT sudo iptables -A FORWARD -o eth -m state --state RELATED,ESTABLISHED -j ACCEPT
SSDP代理(可选)
- 安装ssdp:
sudo apt install ssdp
- 启动ssdp proxy:
sudo ssdpd -D -i eth
配置路由
设置默认路由
- 查看已有路由:
ip route show
- 添加默认路由(192.168.1.1/24为内部网络):
sudo wg set wg defaultroute 192.168.1.1/24
配置DNS
- 查看当前DNS解析:
cat /etc/resolv.conf
- 添加DNS服务器(如Google DNS):
sudo tee /etc/resolv.conf << EOL nameserver 8.8.8.8 EOL
安全配置
生成密钥
sudo wg genkey all
更新密钥
- 在所有节点上生成密钥:
sudo wg genkey
- 更新远程节点:
sudo wg update peer <peer-ip> new-key
节点连接
手动添加节点
- 在远程节点上生成配置文件:
wg(8) <peer-ip>
- 复制并添加到本地节点:
sudo wg-quick add <peer-ip> <config-file>
自动发现
- 启用内网发现:
sudo wg set wg allow-ipv4-route
测试连接
检查连接性
- ping测试:
ping 192.168.1.2
- SSH测试:
ssh 192.168.1.2
日志查看
- 检查WireGuard日志:
sudo journalctl -u wg@wg.service
故障排除
内核模块加载问题
- 检查模块加载状态:
lsmod | grep wg
- 如果模块未加载:
sudo modprobe wg
NAT穿透问题
- 检查iptables规则:
sudo iptables -L -n
- 确保masquerade规则正确。
最终验证
确保所有节点连接正常,内部网络可以通过WireGuard访问外部网络,完成以上步骤后,您的WireGuard节点应该就能正常运行,提供安全、高效的网络连接,如有问题,可参考WireGuard官方文档或社区求助。









