最近有个想法,想在局域网搞个‘旁路由’。想爬墙方便点,同时不影响主要网络结构。但是觉得手动修改网关、dns 等觉得太麻烦了,决定在主路由上面搞一个固定爬墙网关 的 wifi ,爬墙 wifi 和普通 wifi 共存。
试验了一下,没有成功。想问问大哥们这个思路对不对?还是这个思路无法实现?也想知道是哪里错了,知道如何调试。
接下来说一下细节配置。整体思路和 https://forum.openwrt.org/t/using-another-lan-device-in-a-different-subnet-as-gateway/152351 类似但是不完全一致。
配置目标:
- 想要爬墙的时候,就可以链接爬墙 wifi ,同时不影响局域网访问任何东西
- 想要精细爬墙的时候,可是使用普通家庭 wifi
- 爬墙服务坏掉了,只影响爬墙 wifi 。完全不需要任何修改,主链路继续上网
初始状态:
- 主路由是 redmi ax6000 ; openwrt 原生系统;版本 23.05 (基本上啥都没装)
- 光猫桥接,主路由 pppoe 拨号
- lan 网段是 192.168.100.1/24
- 有一个爬墙的 linux 地址是 192.168.100.22 ,部署了一个 xary 透明代理 ;手动修改网关测试没问题
- 192.168.100.11 有一个 nas
新增爬墙 wifi 的改动 v1
- 新建一个 static address 的 interface 名叫 proxy 。配置 ip 为 192.168.200.1/24 ;设置 dhcp ;关闭 v6 ;加入防火墙 lan ;同时配置 gateway 为 192.168.100.22
- 新建 一个 wireless network ( wifi )名叫 guest ,选定 network 为上一步中配置的 proxy
在我天真的以为,这样就 ok 的时候,连上 guest wifi 发现完全没有爬墙功能,使用 命令 tracert 查了一下,发现路由如下
C:\Users\bbbbbb>tracert www.bilibili.com
通过最多 30 个跃点跟踪
到 a.w.bilicdn1.com [117.23.60.14] 的路由:
1 1 ms 1 ms 3 ms OpenWrt.ax6kdns [192.168.200.1]
2 2 ms 1 ms 2 ms 100.69.128.1
。。。。。
可以上网,但是没有经过指定的 gateway 。
经过一番搜索,找到了 Using another LAN device in a different subnet as gateway 然后参考配置了一下
改动 v2
- 新增 ipv4 rules ipv4 规则,设置 proxy interface 的流量走 table 100
- 设置 静态 ipv4 路由,其中 interface 为 lan ; target 为 0.0.0.0/0 即全流量; gateway 为 192.168.100.22 即 代理网关; 同时设置为 table 100
- 回滚 proxy interface 中 gateway 配置 为空
配置生效过后,可以在 Routing 看到所有配置
但是测试发生了这样的事情
C:\Users\bbbbbb>tracert www.bilibili.com
通过最多 30 个跃点跟踪
到 a.w.bilicdn1.com [111.225.214.25] 的路由:
1 <1 毫秒 <1 毫秒 <1 毫秒 OpenWrt.ax6kdns [192.168.200.1]
2 2 ms 4 ms 5 ms 192.168.100.22
3 1 ms 1 ms 1 ms OpenWrt.ax6kdns [192.168.200.1]
4 * * * 请求超时。
5 * * * 请求超时。
6 * ^C
后来想了很久,感觉是不是缺少一个 nat ?和 openwrt 论坛里面的人配置对比一下,我没有新建防火墙,我只是复用了之前的 lan 防火墙;没配置防火墙之间的 forwarding ,也没配置 masquerade
- 我自己想了半天,还是很迷惑,希望能有大哥指指路(跪谢)说明下到底是为什么
- 在配置过程中,反复查看
/etc/config/networkrouter -nip routeip rule发现 ip rule 和 openwrt 中的配置并不一致,很困惑 - 大哥们有没有其他更简单的做法,指指路。