![OpenWRT - 手动更改默认路由以通过 VPN](https://linux22.com/image/1616918/OpenWRT%20-%20%E6%89%8B%E5%8A%A8%E6%9B%B4%E6%94%B9%E9%BB%98%E8%AE%A4%E8%B7%AF%E7%94%B1%E4%BB%A5%E9%80%9A%E8%BF%87%20VPN.png)
这个问题难倒我了。
我已经在站点之间设置了 wireguard:流量按预期流动。我已经绑定了 LAN,OpenWRT 设备是互联网网关。
我希望能够使用第二个 OpenWRT 设备作为第一个设备的网关。
当我添加时,效果很好
list allowed_ips '0.0.0.0/0'
到 /etc/config/network 脚本下
config wireguard_wg0
部分,然后运行
/etc/init.d/firewall restart
但是:我试图通过 mwan3 脚本触发此功能 - 如果我重新启动网络 - 它会触发另一个 mwan3 重新插入事件 - 然后递归启动,事情就不会顺利结束。
所以 - 我尝试手动完成
ip route del default
ip route add default dev wg0 proto static scope link
我从工作配置中复制了路线,然后尝试手动应用它。
我得到的只是
#ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
ping: sendto: No error information
重新启动防火墙没有帮助。
如果我转储路由表和 iptables
ip route show table all
iptables-save
我得到了相同的配置(这已通过 WinMerge 验证)
但有一个区别——“自动”配置有效(通过配置和 /etc/init.d/network restart),而“手动”配置(通过 ip route...)无效。
我被难住了。有人知道我下一步该去哪里吗?
谢谢
答案1
好的——这是一个“逆”问题。
问题是 wireguard 不接受 0.0.0.0/0 目的地数据包。而且我找不到动态配置它以添加特定接口路由的方法。
所以如果0.0.0.0/0路由默认添加到wg0,那么默认不使用。
当默认流量不需要通过 wg0 接口流动时,默认路由将设置为定位设备 - 然后就可以正常工作了。当切换到备份接口(通过 wg)时,只需重新启用到 wg0 接口的默认路由,该接口已经接受“默认”流量。
瞧!成功了。
哦-并重新启动防火墙,这样转发的流量也会流动。