![Wireguard + 拆分隧道 + 两个对等点 -- 由于私钥,与第二个对等点的握手失败](https://linux22.com/image/768388/Wireguard%20%2B%20%E6%8B%86%E5%88%86%E9%9A%A7%E9%81%93%20%2B%20%E4%B8%A4%E4%B8%AA%E5%AF%B9%E7%AD%89%E7%82%B9%20--%20%E7%94%B1%E4%BA%8E%E7%A7%81%E9%92%A5%EF%BC%8C%E4%B8%8E%E7%AC%AC%E4%BA%8C%E4%B8%AA%E5%AF%B9%E7%AD%89%E7%82%B9%E7%9A%84%E6%8F%A1%E6%89%8B%E5%A4%B1%E8%B4%A5.png)
我已经设置两个 wireguard 对等服务器并且可以独立地成功连接到每一个。
但当我尝试同时连接两个对等点并分割隧道时,它确实无法与第二台服务器握手。我认为这是因为两个对等体的私钥不同,并且在多对等客户端中我只能输入一个服务器的私钥。
我不知道这两个同侪如何使用一个私钥一起工作?
我的主要目标是设置两个对等服务器并为特定范围的 IP 拆分隧道。
我在这里粘贴了两个服务器和对等配置以及多对等客户端。如能得到任何帮助,我将不胜感激。
Server 1:
[Interface]
Address = 10.7.0.1/24
PrivateKey = EKSCFdQiAgXsL4Wm40z63fdXL7q4PCgyB4XhNqkq+1A=
ListenPort = 51820
[Peer]
PublicKey = G5ZurqtqfiMCgkImUfA+R17r3IaYhAh/jWZpNtB/4iI=
PresharedKey = mekE11iavS70vbJ/mLunFxRDEzYwXuGX2wdCZw8FFyc=
AllowedIPs = 10.7.0.2/32
Server 2:
[Interface]
Address = 10.7.0.1/24
PrivateKey = +IapZjrB8UfiTdsJNUWIFntK00z2v6MTpeYqHVMMTmI=
ListenPort = 51820
[Peer]
PublicKey = l7YElLKnNWLUmohKpR+rQDORLmXm5geAivz9AzbbvkE=
PresharedKey = J+kdful8xJW1uMdVGfrDM+D2v/dyl/Y8SYp+0/rS/mM=
AllowedIPs = 10.7.0.2/32
- 请注意,我已尝试并设法在两台服务器上获取相同范围的 IP(10.7.0.2)。不知道是否有必要或是否会导致问题。
Peer 1 config:
[Interface]
Address = 10.7.0.2/24
DNS = 8.8.8.8, 8.8.4.4
PrivateKey = WMrHIjr71kv7Cl3zw9mx72d8uCTmLJPDk6K0j7FWjmg=
[Peer]
PublicKey = gu78igdrkMzlowf8988zYt58ciI0DTmz4QMzZ1QgfCs=
PresharedKey = mekE11iavS70vbJ/mLunFxRDEzYwXuGX2wdCZw8FFyc=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = SERVER_A:51820
PersistentKeepalive = 25
Peer 2 config:
[Interface]
Address = 10.7.0.2/24
DNS = 8.8.8.8, 8.8.4.4
PrivateKey = yNGP/MbTAjyADyTLuv19PwL5rCj6Q8j/hJGVz+Cafko=
[Peer]
PublicKey = HdYcIUebtkxiXWwcvaef8Z+/wrEqV7ArzL4Jbknus3A=
PresharedKey = J+kdful8xJW1uMdVGfrDM+D2v/dyl/Y8SYp+0/rS/mM=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = SERVER_2:51820
PersistentKeepalive = 25
最后,我尝试使用多点配置但失败了:客户端配置:
[Interface]
Address = 10.7.0.2/32
DNS = 8.8.8.8, 8.8.4.4
PrivateKey = yNGP/MbTAjyADyTLuv19PwL5rCj6Q8j/hJGVz+Cafko=
[Peer]
PublicKey = HdYcIUebtkxiXWwcvaef8Z+/wrEqV7ArzL4Jbknus3A=
PresharedKey = J+kdful8xJW1uMdVGfrDM+D2v/dyl/Y8SYp+0/rS/mM=
AllowedIPs = 8.0.0.0/8
Endpoint = SERVER_2:51820
PersistentKeepalive = 25
[Peer]
PublicKey = gu78igdrkMzlowf8988zYt58ciI0DTmz4QMzZ1QgfCs=
PresharedKey = mekE11iavS70vbJ/mLunFxRDEzYwXuGX2wdCZw8FFyc=
AllowedIPs = 45.0.0.0/8
Endpoint = SERVER_A:51820
PersistentKeepalive = 25
由于私钥问题,第二台服务器的 Wireguard 日志无法握手:
内核:[70290.070053] wireguard:wg0:来自 MY_IP:64230 的无效握手启动
内核:[70295.369403] wireguard:wg0:来自 MY_IP:64230 的握手启动无效
内核:[70300.569581] wireguard:wg0:来自 MY_IP:64230 的无效握手启动
有人能帮我解决如何使用两个对等体实现分割隧道并解决这个私钥问题吗?谢谢。
答案1
感谢wireguard的IRC频道#wireguard成员,问题终于解决了。
为了解决这个问题,两个服务器的[Peer]中的公钥必须相同。
在我的示例中,我必须在服务器 1 [Peer] PublicKey 字段中输入“l7YElLKnNWLUmohKpR+rQDORLmXm5geAivz9AzbbvkE=”。
这解决了问题。