我可以让 Wireguard *** 对等方互相交谈吗?

Posted

技术标签:

【中文标题】我可以让 Wireguard *** 对等方互相交谈吗?【英文标题】:Can I make Wireguard *** peers to talk to each other? 【发布时间】:2020-08-21 16:59:07 【问题描述】:

我有一台运行 Wireguard 的服务器,我有多个客户端(对等方)连接到它并运行。我不太确定 *** 是如何工作的,但这是我目前的设置。

我的服务器的/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.2172.16.16.3。但这是设置的主要目的!

现在,我希望我的同龄人相互交谈,也就是说,我必须能够从我的其他同龄人172.16.16.3 ping 172.16.16.2,反之亦然,但这不起作用。它说网络无法访问。

我的想法是,我希望它像 LAN 服务器一样工作,其中一个服务器充当网关,多个对等方/客户端可以相互通信,也可以与服务器通信。

这可能吗?如果是,我错过了什么?

【问题讨论】:

【参考方案1】:

在整个晚上通过互联网搜索后,我找到了一些有用的链接,这些链接谈到了我面临的同样问题。

链接: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

阅读更多:https://docs.fedoraproject.org/en-US/Fedora/18/html/Security_Guide/sect-Security_Guide-Firewalls-FORWARD_and_NAT_Rules.html

完成此操作后,现在我所有的同伴都可以相互交谈,这就像一个 LAN 网络!

【讨论】:

是否有充分的理由默认禁用此功能? 为了防止在基于 Internet 的系统上进行点对点通信......但在私有系统上,这可以用作一项功能。【参考方案2】:

我遵循了 Sibidharan 建议的所有步骤,但还需要在服务器上添加一个 iptables 命令以在对等点之间转发wireguard 流量。

iptables -A FORWARD -i wg0 -o wg0 -j ACCEPT

然后我就可以通过 ssh 进行点对点连接了。

【讨论】:

【参考方案3】:

只需将客户端上的接口设置为 /24 前缀

【讨论】:

以上是关于我可以让 Wireguard *** 对等方互相交谈吗?的主要内容,如果未能解决你的问题,请参考以下文章

`AllowedIPs` 的 WireGuard [Peer] 配置可以是 `/0` CIDR IP 地址吗?

Wireguard 服务器连接到客户端

如何让wireguard解析谷歌计算引擎上的内部dns名称

如何让 Wireguard-Android make 文件在 Windows 上运行?

wireguard 客户端未连接到互联网

wireguard哪些软件可以共用