我有一个运行Wireguard的服务器,并且我有多个客户端(对等点)连接到它并在运行。我不太确定VPN是如何工作的,但这是我当前的设置。
我的服务器的/etc/wireguard/wg0.conf如下所示。
[Interface]
Address = 172.16.16.1/24
SaveConfig = true
ListenPort = 8999
PrivateKey = XXX
[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.2/32
[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.3/32我的客户端wg0.conf上的配置如下所示。
[Interface]
PrivateKey = XXX
Address = 172.16.16.x/32
[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.0/24
PersistentKeepalive = 30一切正常后,我可以从IP地址为172.16.16.2的客户机ping服务器172.16.16.1。我可以从我的另一个客户端使用172.16.16.3执行相同的操作,我可以ping服务器172.16.16.1。
有趣的是,在我的服务器上,我能够ping通所有的同级!也就是说,在172.16.16.1中,我可以ping通172.16.16.2和172.16.16.3。但这就是设置的主要目的!
现在,我希望我的对等点能够相互通信,也就是说,我必须能够从我的另一个对等点172.16.16.3 ping 172.16.16.2,反之亦然,但这不起作用。它说网络无法到达。
我的想法是,我希望它像LAN服务器一样工作,其中一个服务器充当网关,多个对等/客户端可以相互通信,也可以与服务器通信。
这个是可能的吗?如果是,我遗漏了什么?
发布于 2020-05-07 01:35:34
经过整个晚上的互联网搜索,我找到了一些有用的链接,它们谈到了我所面临的相同问题。
链接:https://lists.zx2c4.com/pipermail/wireguard/2018-August/003250.html
也就是说,我们必须在服务器中启用ip转发,使其像边缘路由器一样工作。
默认情况下,linux内核中的IPv4策略禁用对IP转发的支持。这会阻止运行linux服务器的计算机充当专用边缘路由器。要启用IP转发,请使用以下命令:
[root@myServer ~ ] # sysctl -w net.ipv4.ip_forward=1此配置更改仅对当前会话有效;它在重新启动或网络服务重新启动后不会持续。要永久设置IP转发,请编辑/etc/sysctl.conf文件,如下所示:找到以下行:
net.ipv4.ip_forward = 0按如下所示进行编辑:
net.ipv4.ip_forward = 1使用以下命令启用对sysctl.conf文件的更改:
[root@myServer ~ ] # sysctl -p /etc/sysctl.conf完成此操作后,现在我的所有同级都可以相互通信了,这就像LAN网络一样!
发布于 2020-09-18 22:32:12
我遵循了Sibidharan建议的所有步骤,但还需要在服务器上添加一个iptables命令,以便将wireguard流量从一个点转发到另一个点。
iptables -A FORWARD -i wg0 -o wg0 -j ACCEPT然后,我能够通过ssh从一个点连接到另一个点。
发布于 2020-12-25 16:51:36
只需将客户端上的接口设置为前缀/24
https://stackoverflow.com/questions/61640145
复制相似问题