先自我吐槽:知道旁路由这种用词不对,我平时也不这样说。 我的个人场合:主路由是 MT7621/7981 这种刷了 mtk sdk 驱动的 openwrt 固件,网络和 nat 性能很强,但因为双核 cpu 和 256 ram 的原因,跑 fq 透明代理压力大。手上还有个空闲的 n1 盒子,这个跑服务性能不错但网络性能太差劲。而且国内流量经过的话多一个设备风险也不小。
基于 lean 之前做的 mwan3 helper 改写了下插件,可以将国外流量和相应的 dns 请求转发至“旁路由”n1 (其实转发到 mac 开 tun 模式也行) 国内流量和 dns 请求还是保持直连,完全不经过“旁路由”
使用前新建一个接口协议静态 ip ,设备为 br-lan ,ip 地址随便设置个没用过的,网关 ip 设置为“旁路由”ip 。防火墙设置 到 lan 里面。然后原有的 lan 接口和新建接口都要设置网关跃点,新建的接口要设置高跃点。
相应源码和两个现成的 ipk 在仓库里,装之前记得卸载系统自带的 luci-app-mwan3helper(如果系统自带) https://github.com/padavanonly/luci-app-mwan3helper-chinaroute
更新了下,不用设置和创建接口,直接设置插件即可。如果设备在局域网里,ip填转发ip,设备写br-lan
1
tuzhis 2023-12-16 14:25:33 +08:00 via Android
开新坑了支持支持!我也是同类方案用了很久最稳定和适合,不过还是全脚本阶段。按照体验来说后续还需要添加 自动检测和断网回滚,多规则分流(海外/异地不同内网)
|
2
qwvy2g 2023-12-16 15:02:28 +08:00 via Android
不喜欢改动主路由配置的方式实现旁路由,但是看了一圈教程,也没人讲清楚是怎么搞的,oc 倒是可以用自动处理经过本机其他设备流量,可是 oc 本身规则不灵活改起来很费劲。mwan3 也尝试过,但是最后因 fw3 和 fw4 包的冲突放弃了。
|
3
zliu0562 OP @qwvy2g 并没有用到 mwan3 。这个只是个策略路由而已,那个标题的意思是 ipset 也可以给 mwan3 用。
不动主路由的话,流量就会全到“旁路由”,那“旁路由” 出问题直接国内都断了而且还有性能问题。 |
4
freechuzhuo 2023-12-16 15:19:51 +08:00 via Android
目前用了 clash 套娃,用白名单模式给指定设备。试试看楼主的方法
port: 7890 socks-port: 7891 allow-lan: true mode: rule log-level: info external-controller: :9090 proxies: - {name: socks5-pve12, server: 10.0.0.20, port: 7893, type: socks5} proxy-groups: - name: 🚀 选择节点 type: select proxies: - socks5-pve12 rules: - MATCH,🚀 选择节点 |
5
zliu0562 OP @freechuzhuo 用新的 apk ,不用创建接口了
|
6
850521109 2023-12-16 20:58:50 +08:00 1
因为要跟其他人一起用,我都是自己的设备手动设置网关和 DNS 指向旁路由
|
7
laincat 2023-12-16 21:36:39 +08:00
这名字是不是让人以为依赖。。。mwan3 啥的?
|
8
laincat 2023-12-16 21:38:12 +08:00
@freechuzhuo 之前我也是这样套娃玩过,不过用的 ssr 啥的套。
|
13
yyysuo 2023-12-17 02:50:10 +08:00 via iPhone
这不就复杂了么,你看一下 neroxps 大佬的方案,或者搜索一下 paopao gateway 的方案,这两个方案思路是一样的 。我遵循这种思路,在主跌幅上装 mosdns ,国内直接用公共 dns 返回 real ip 直连性能无损失,国外转发给旁路的 clash 返回 fakeip ,主路由根据 fake ip 段添加静态路由,再添加电报 ip 和奈飞 ip 的静态路由,就完了,相当稳定 。
https://fast.v2ex.com/t/947864 |
14
zliu0562 OP @yyysuo 你说的跟我不是一个东西吗?国内 ip 直连,国外 ip 静态路由转发到“旁路由”去,我就是改了个 ipk 一键开启这个啊
|
15
zliu0562 OP @yyysuo 你这个要装 mosdns 手动配置国内外的 dns 策略,我这个装个 ipk 填下“旁路由”的 ip 就行。究竟谁操作复杂?
|
16
mohumohu 2023-12-17 13:26:55 +08:00
@zliu0562 还是不一样的,各有优点,DNS 分流可以很方便地自定义分流和不分流的域名,并且下载 bt 连国外 IP 也不走旁路由,主路由能设置静态路由就可以,不用刷机。
|
17
zliu0562 OP @mohumohu 我这个有 gfwlist 模式,一样可以不用走国外。想自定义域名的话,去修改那个 gfwlist 文件夹就行。
|
18
mohumohu 2023-12-17 20:25:42 +08:00
粗略的分流的话依赖 gfwlist 是可以的,但如果想实现比较精确的需求就没那么方便了,比如想实现([所有境外域名默认走代理]+[BT 直连]-[部分境外域名不走代理]),这个依赖单一 gfwlist 就不好实现,甚至在”部分境外域名不走代理“的需求中,还可以细化自定义一下走国内解析结果还是国外解析结果、或者替换优化解析结果(比如 CF 优选);
DNS 分流的确需要更复杂的 DNS 策略,不过网上也很多一键脚本或者 docker 。主要是 DNS 并不需要搭建在主路由上,完全可以分离开,而主路由只需要添加数条甚至一条静态路由即可,对主路由来说改动比较少,更少的路由表或许性能消耗更少。相对主路由来说,拓扑和逻辑上是比较简单清晰一些,主路由也不一定需要是能刷机的,只要有基本的 DHCP 设置和静态路由设置功能即可。这样的拓扑另一个好处就是控制哪些客户端走代理的话只需要分配不同的 DNS 即可,这个可以通过 DHCP 或者 mosdns 的策略来实现。 当然,13 楼的简单是相对于主路由的修改和网络拓扑逻辑来说的,适合有动手能力折腾的人。如果一个插件就能满足大部分需求,点点点的操作也确实比较简单。 |
19
zliu0562 OP @mohumohu dns 服务器如果不在主路由上的话,那倒可以随便折腾 dns 策略。但我个人无法忍受主路由以外的设备出问题导致国内断网。
|
20
mohumohu 2023-12-17 20:34:34 +08:00
@zliu0562 这个很好解决的,比如我现在用的 velop 路由器他就是可以填多个 DNS 服务器,然后他自己就是个 DNS 代理,平时没故障的话,他一般都是用内网的结果。当内网的 DNS 挂了,他就会用其他的 DNS 结果了。其他路由器应该也有类似的功能,或者主路由是 openwrt 的话来实现这个也简单,用 mosdns 或者 smartdns 就可以了,甚至 dnsmasq 也可以,dnsmasq 有个按顺序查询的选项来着。
|
21
zliu0562 OP @mohumohu 如果想折腾 dns 分流的话,主路由是 openwrt 的话倒可以直接折腾了,不用开 dns 在其他服务器上。但一般的小米这种家用路由器,我自己测试 dns 是并发查询,查询结果是随机的。
|
22
mohumohu 2023-12-17 20:46:55 +08:00
@zliu0562 确实,小米这种路由器连静态路由设置都默认被阉割了,想折腾的话小米倒是多数可以刷机,或者直接买 ROS 或者企业路由器功能就比较齐全了。分开 DNS 在其他设备主要是为了减轻主路由器的负担,尽量提高主路由的性能。
|
23
Achophiark 2023-12-18 10:11:19 +08:00
主路由支持 dhcp option 3&6 也可以解决吧
|
24
versxk 342 天前
我测试过是可以分流,但分流去旁路由估计全解析为 IP 地址,旁路由 CLASH 除了 GOOgle 的 IP 认得以外,其它 IP 全不认识,如果要用 IP 来写 CLASH 规则有点麻烦,有解决方法吗
|
25
panybbib 339 天前
还支持 x64 软路由?
|
26
MeteorVIP 141 天前
在"软件包"里面安装"luci-app-mwan3helper",但界面和你截图不一样,
去 GitHub 链接下载"mwan3helper_mt7621.ipk"才对. 体验了一下,真不错.多谢分享 |