我有一个 IP 为 1.2.3.4 的在线服务器和位于不同位置的两台本地计算机。计算机 A 和计算机 B。
我已按照此处的说明设置 Wireguard:https://www.cyberciti.biz/faq/ubuntu-20-04-set-up-wireguard-vpn-server/
但是计算机 A 无法 ping 或连接到计算机 B。
我认为我需要,但是不知道如何在在线服务器上设置以在本地对等点之间进行通信。
怎么做?
本地对等体是 mac 和 ubuntu 桌面。
我的设置: 服务器:
[Interface]
Address = 192.168.6.1/24
ListenPort = 41194
PrivateKey = <key>
[Peer]
PublicKey = <key>
AllowedIPs = 192.168.6.2/32
PersistentKeepalive = 15
[Peer]
PublicKey = <key>
AllowedIPs = 192.168.6.3/32
PersistentKeepalive = 15
本地对等点 A:
[Interface]
PrivateKey = <key>
Address = 192.168.6.2/32
[Peer]
PublicKey = <key>
AllowedIPs = 192.168.6.1/32
Endpoint = 65.21.63.31:41194
PersistentKeepalive = 21
[Peer]
PublicKey = <key>
AllowedIPs = 192.168.6.3/32
PersistentKeepalive = 15
本地对等体 B:
[Interface]
PrivateKey = <key>
Address = 192.168.6.3/32
[Peer]
PublicKey = <key>
AllowedIPs = 192.168.6.1/32
Endpoint = 65.21.63.31:41194
PersistentKeepalive = 21
[Peer]
PublicKey = <key>
AllowedIPs = 192.168.6.2/32
PersistentKeepalive = 15
服务器可以与对等体 A 和对等体 B 通信,但是对等体 A 不能与对等体 B 通信。
答案1
您引用的教程似乎将您引向“中心辐射型”拓扑,其中对等点 A 和对等点 B 不直接相互连接 - 相反,它们的连接通过您的服务器路由。如果您想要这样做,则应从[Peer]
对等点 A 和对等点 B 的配置文件中删除第二个条目,并将AllowedIPs
其第一个[Peer]
条目的设置更改为:
AllowedIPs = 192.168.6.0/24
您还需要确保在服务器上启用数据包转发。有几种不同的方法可以做到这一点,但使用 WireGuard 最简单的方法就是将以下PreUp
命令添加到[Interface]
服务器配置文件的部分:
PreUp = sysctl -w net.ipv4.ip_forward=1
但是,如果您想要将对等点 A 直接连接到对等点 B(即“点对点”),则需要为其中一个对等点设置静态公共 IP 地址。如果是这种情况,您需要在对等点 A 和对等点 B 的配置文件中保留第二个条目;并在其中一个文件的第二个条目中添加设置,并在另一个文件的条目中[Peer]
添加设置。Endpoint
[Peer]
ListenPort
[Interface]
例如,如果对等点 A 可以通过 Internet(或某些内部网络)在 198.51.100.123 上供对等点 B 访问,并且对等点 B 的新连接可以通过 UDP 端口 51820 访问,则将对[Peer]
等点 B 的配置文件中的第二项更改为:
[Peer]
PublicKey = <key>
AllowedIPs = 192.168.6.2/32
Endpoint = 198.51.100.123:51820
PersistentKeepalive = 15
并将[Interface]
对等体 A 的配置中的条目更改为:
[Interface]
PrivateKey = <key>
Address = 192.168.6.2/32
ListenPort = 51820