传入流量未通过 Easytether 网关转发到 Wireguard

传入流量未通过 Easytether 网关转发到 Wireguard

我不确定这是否是一个一般的路由问题,或者与 Wireguard 或 EasyTether 有关,但我认为它是一般路由。

我有一台 Raspberry Pi 4,可以使 Android 手机充当 NAT 路由器上的 WAN 端口。

Pi 运行易用Tether通过 USB 连接到手机。这是可行的。它提供了一个tun-easytether接口。192.168.117.0/31手机是192.168.117.1

我定义了一个网关,结果如下:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.117.1   0.0.0.0         UG    0      0        0 tun-easytether
192.168.115.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.117.0   0.0.0.0         255.255.255.254 U     0      0        0 tun-easytether
192.168.118.0   0.0.0.0         255.255.255.0   U     0      0        0 wg0

192.168.115.1eth0 是连接到路由器 WAN 的以太网端口。路由器 WAN 有一个静态 IP 192.168.115.2

效果很好。我可以用连接到路由器 LAN 端的笔记本电脑浏览网页。

现在我试着介绍一下 Wireguard。我在 Digital Ocean 的 droplet 和 Pi 上安装了 Wireguard。服务器位于192.168.118.1,Pi 位于192.168.118.2

我更改了默认路由并为 VPN 设置了一条路由,结果如下:

0.0.0.0         192.168.118.2   0.0.0.0         UG    0      0        0 wg0
68.x.x.x        192.168.117.1   255.255.255.255 UGH   0      0        0 tun-easytether
192.168.115.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.117.0   0.0.0.0         255.255.255.254 U     0      0        0 tun-easytether
192.168.118.0   0.0.0.0         255.255.255.0   U     0      0        0 wg0

68.xxx 是服务器的公共地址。这基本可行,因为我可以从 Pi 上的命令行 ping192.168.118.1和。跟踪路由显示它正在通过 Digital Ocean。一切看起来都很好,只是我无法再从路由器 LAN 端的笔记本电脑访问外部世界。跟踪路由停止在,即 Pi 上的 eth0。8.8.8.88.8.8.8192.168.115.1

Pi 似乎没有转发进入的流量192.168.115.1。我已多次恢复到原始的非 VPN 配置,以确保它仍然有效。在 Pi 上net.ipv4.ip_forward=1设置。sysctl.conf

我感觉我已经接近目标了,但还是缺少了一些东西。我可以提供 Wireguard 设置等,但这似乎不相关,因为它似乎可以正常工作。

谢谢你的帮助。

编辑:经过进一步挖掘,我认为这不是 Wireguard 的问题,我可能错了。它看起来像是https://serverfault.com/questions/1014577/howto-configure-wireguard-on-linux-router-to-route-all-traffic-from-lan-to-remot

答案1

解决了!这就是在 eth0 和 wg0 之间转发流量所需要的。

iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT
iptables -A FORWARD -i wg0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE

好像不需要网关设置。这是我的路由表。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.115.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.117.0   0.0.0.0         255.255.255.254 U     0      0        0 tun-easytether
68.x.x.x        192.168.117.1   255.255.255.255 UGH   0      0        0 tun-easytether

我删除了之前关于将 eth0 与 wg0 放在同一网络上的答案。那是一种黑客行为。

相关内容