WireGuard 在 udp2raw 上存在问题

WireGuard 在 udp2raw 上存在问题

我的配置是电脑到 VPS,通过 WLAN 连接 WiFi(192.168.1.x

服务器上的 WireGuard 配置:

[Interface]
Address = 10.0.0.1/24
PrivateKey = key=+
ListenPort = 51120
#just iptables open ports..
PostUp = /etc/wireguard/up.sh
PostDown = /etc/wireguard/down.sh
[Peer]
PublicKey = key=+
AllowedIPs = 10.0.0.2/24

在客户端上:

[Interface]
Address = 10.0.0.2/24
PrivateKey = key=+
[Peer]
PublicKey = key=+
AllowedIPs = 0.0.0.0/0
Endpoint = 127.0.0.1:5666   
PersistentKeepalive = 25

情况1:仅在 Wireguard 之间 - 工作:

(端点 = vps-ip:51120 <--> Wireguard 无需 udp2raw 也能很好地工作)

案例 2:仅在 udp2raw 之间 - 已连接:

在服务器上

udp2raw -s -0.0.0.0:5111 -r 127.0.0.1:51120 -k "passpass" --raw-mode faketcp -a

在客户端:

udp2raw -c -l127.0.0.1:5666  -r vps-ip:5111  -k "passpass" --raw-mode faketcp -a

案例 3:所有与端点= 127.0.0.1:5666我失去连接

端点 = 127.0.0.1:5666 <--> 不起作用

WireGuard 不起作用udp2raw,没有握手。为什么会发生这种情况,为什么不起作用?


最后测试:经过测试Udp2raw、Udptunnel、Shadowsock问题依旧。将内核改为 5 后,我的结论是客户端 (WireGuard-隧道) 之间存在问题。

答案1

1.AllowedIPs = 0.0.0.0/0意味着一切都要经过 WireGuard

除了本地连接或主路由表中有明确路由的任何其他内容。因此,您需要在客户端上添加一条明确路由,告诉它如何到达服务器。

ip route在客户端上运行以列出其主路由表:

$ ip route
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.11 metric 100

找到默认路由,并记下其网关和接口(在上面的例子中,它们是192.168.1.1和)。然后使用相同的网关和接口eth0向服务器的 IP 地址添加新路由(例如,假设是):203.0.113.2

$ sudo ip route add 203.0.113.2 via 192.168.1.1 dev eth0

2. udp2raw 的 MTU 默认值太高

因此,您需要降低 WireGuard 接口上的 MTU;这1342是可能起作用的最大 MTU。将以下行添加到[Interface]WireGuard 配置部分(在服务器和客户端上):

MTU = 1342

相关内容