Nginx

通過 VPS 連接到wireguard peer

  • January 6, 2022

我目前的 Wireguard 設置有一個連接到不同本地網路上的兩個設備的 VPS。每個家庭網路設備都使用 Wireguard 連接到 VPS,但未配置為接受彼此的連接(它們尚未在彼此的配置文件中添加為對等點)。

我想使用類似於反向代理伺服器的 VPS,以便家庭設備 1 可以連接到 VPS 並將其流量路由到家庭設備 2,而無需配置兩個家庭設備之間的直接連接(本質上是輪輻模型)。有沒有辦法以這種方式路由流量?

目前家庭網路設備配置文件:

[Interface]
Address = 10.0.0.2/8
SaveConfig = true
ListenPort = 53910
FwMark = 0xca6c
PrivateKey = <privkey>

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.0.0.1/32
Endpoint = <IP address>

伺服器配置文件:

[Interface]
Address = 10.0.0.1/8
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;
ListenPort = 51820
PrivateKey = <privkey>

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.0.0.2/32
Endpoint = <IP of home network device 1>

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.0.0.3/32
Endpoint = <IP of home network device 2>

在這些目前規則下,如果我嘗試從設備 1 對設備 2 執行 ping 操作,我會收到此錯誤消息(這似乎表明對等方彼此了解,但配置不正確?)

user@device1:~/wireguard$ ping 10.0.0.3
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
From 10.0.0.2 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Required key not available

謝謝!

更新您客戶端的 WireGuardAllowedIPs設置,以包括您希望每個客戶端通過其與 VPS 的 WireGuard 連接訪問的其他設備的 IP 地址。例如,像這樣允許設備 1 使用 WireGuard 僅連接到設備 2:

[Interface]
Address = 10.0.0.2/8
...

[Peer]
PublicKey = <VPS pubkey>
AllowedIPs = 10.0.0.3/32
...

或者像這樣允許設備 1 通過 WireGuard 連接到設備 2 以及 VPS 本身:

[Interface]
Address = 10.0.0.2/8
...

[Peer]
PublicKey = <VPS pubkey>
AllowedIPs = 10.0.0.1/32, 10.0.0.3/32
...

或者像這樣允許設備 1 使用 WireGuard 連接來連接到10.0.0.0/8塊中的任何主機:

[Interface]
Address = 10.0.0.2/8
...

[Peer]
PublicKey = <VPS pubkey>
AllowedIPs = 10.0.0.0/8
...

有關完整範例,請參閱此WireGuard hub-and-spoke 指南

引用自:https://serverfault.com/questions/1089092