搭建 wireguard 服务时遇到了这个问题,中心节点和从节点之间均能 ping 通,但是从节点之间无法 ping 通。花了挺长时间才找到解决办法,特此记录一下。
首先看看中心节点的配置,我的如下
1 |
|
两个 peer 也配置好之后,peer 之间无法 ping 通。
网上的说法是添加对应的 PostUp 的 iptables 脚本,这里添加了 iptables -I FORWARD -i wg0 -o wg0 -j ACCEPT
,但是实测没有效果。
后来在万能的 stackoverflow
上找到了解决方法:Can I make Wireguard VPN peers to talk to each other?
ping 不通的原因是中心节点的 ip_forward
功能没有开启。
要开启也很简单,输入 nano /etc/sysctl.conf
,把 net.ipv4.ip_forward = 0
修改为 net.ipv4.ip_forward = 1
,如果被注释了就取消注释。
然后输入 sysctl -p /etc/sysctl.conf
,回车。现在从节点之间就可以互相 ping 通了。