Closed swzs2018 closed 2 months ago
我需要学习相关的知识,尤其是mwan是如何实现的,没法很快的解决这个问题。
而且我有一个问题,这mwan和透明代理真的能完美共存吗?😢
话说只有路由器流量没有被代理吗,局域网的流量可以?
我需要学习相关的知识,尤其是mwan是如何实现的,没法很快的解决这个问题。
🙏
这mwan和透明代理真的能完美共存吗?
按照之前的经验,它们应该是不会有严重冲突的。较早之前使用 passwall 系也可以与 mwan3 共存,但那时候可能使用的还是基于 iptables 而不 nftables 的防火墙,不确定是否与此相关。
实际上,这里将透明代理和 mwan3 一起使用也不是出于策略路由/负载均衡的需求,只是路由器上有两条 wan 连接,之前不使用这个 mwan 时候,好像优先级更低的入站流量不能原路返回来着 🤔 为了正确处理两个 wan ip 上的入站链接,所以才用了 mwan3(大概是流量进入时候给连接打个标,从哪个接口进入的就从哪里返回,否则流量都从跃点更低的接口出去了
话说只有路由器流量没有被代理吗,局域网的流量可以?
测试过局域网应该也是不行的。在卸载 mwan3 后,透明代理确实正常工作。
我看了MWAN3的代码,是通过iptables-nft/ip6tables-nft来实现在nftables的兼容的,因为没有多WAN口,我不知道它是否能在新版OpenWrt上工作。请问你那里在关闭了Mihomo之后,MWAN3可以正常工作吗?
再就是我搜索了PassWall/PassWall2/OpenClash这三个插件的仓库关于MWAN的Issue,结果很少,在nftables环境下的更是高达0条!在iptables环境下的,都是说关闭MWAN3或者清空它的规则来解决这个问题,我不确定这三个插件是在nftables下可以兼容MWAN3,还是没有人同时使用nftables和MWAN3?
请问你那里在关闭了Mihomo之后,MWAN3可以正常工作吗?
无论开不开 mihomo 或者类似插件,mwan3 都正常工作(指正常处理多wan ip入站)。 但只要 mwan3 存在,路由器内部代理和局域网透明代理都不工作。
还是没有人同时使用nftables和MWAN3?
现在我很难把网关直接替换为旧的构建去测试,但我找了旧的镜像在虚拟机里面测试一下,使用三个虚拟网卡,两个模拟外部 wan,一个模拟 lan,安装且开启 mwan3,使用 passwall tproxy 进行代理。mwan3 和透明代理可以共存。以下是一些环境信息
你是x86的硬件吗?我给你一个我修改过的你试试吧。mihomo.zip,不保证修复,但可以一试。
更新这些新包仍旧是不能工作,具体表现为面板连接页面看不到任何连接。模式使用 tproxy。还测试了 redir-host,和 fakeip 模式,对不能工作的结果无影响。
使用 nft list table inet mihomo
检查防火墙表,mihomo 表不存在。应用日志全正常,无错误。
root@OpenWrt:~# nft list tables
table inet fw4
table ip mangle
table ip6 mangle
root@OpenWrt:~# nft list table inet mihomo
Error: No such file or directory
list table inet mihomo
^^^^^^
运行下service mihomo restart
看看报错?我测试的时候是正常的,可能打包给你的不是最新的……
```
root@OpenWrt:~# service mihomo restart
Error: syntax error, options must be specified before commands
nft -f /etc/mihomo/nftables/hijack.nft -D FW_MARK=0x80 FW_MARK_MASK=0xFF -D TUN_DEVICE=tun -D MIHOMO_USER=mihomo -D TPROXY_PORT=7892 -D DNS_PORT=1053
^ ~~
Error: No such file or directory
add element inet mihomo dns_hijack_nfproto { ipv4 }
^^^^^^
Error: No such file or directory
add element inet mihomo proxy_nfproto { ipv4 }
^^^^^^
Error: No such file or directory
add element inet mihomo fake_ip { 198.18.0.1/16 }
^^^^^^
Error: No such file or directory
add element inet mihomo acl_dport { tcp . 1-65535 }
^^^^^^
Error: No such file or directory
add element inet mihomo acl_dport { udp . 1-65535 }
^^^^^^
Error: No such file or directory
add element inet mihomo wan_ip {
嗯,给你打包的不是最新,一会我重新打一个。
mihomo.zip,试试
🆒🆒 这次好像是好了
现在,面板连接页面可以正常看到流量,域名嗅探也可以正常工作。
在路由器内部 curl 可以正常请求,局域网透明代理也可正常工作,绕过中国 IP 看起来也没问题。
mwan3正不正常呢?
目前来看也是正常工作的,多 wan 入站没有问题。
又进行了一些额外的测试,现在在启动 mihomo 之后,如果不更改 mwan3 的配置,代理可以正常工作。
但如果修改了 mwan3 配置并应用(大概等同于 service mwan3 restart
?),代理就会失效,在手动重启 mihomo 之后,代理又恢复。
这应该是ip rule
的顺序导致问题,虽然可以直接手动指定一个较高的优先级,但这并不优雅……等我再想想如何处理
目前手动指定优先级为1024,应该不会有太大问题,Build好了你试试吧。
已经合并到main并发布了1.7.0,这个Issue就先关闭了,还有问题请Reopen。
自查步骤
DNS 重定向
选项确认
系统
OpenWrt
系统版本
OpenWrt 23.05.4 r24012-d8dd03c46f
插件版本
1.6.4
硬件架构
x86_64
BUG 描述
当安装 mwan3 时,路由器内部流量代理不可用。表现为
curl -v https://google.com
命令无输出直到超时。 此时核心正常工作,即curl https://google.com -v --proxy socks5://127.0.0.1:7890
正常请求并输出。当通过
opkg remove --force-removal-of-dependent-packages lua-app-mwan3 mwan3
命令卸载 mwan3 后,代理立刻恢复。预期行为
mwan3 会使用防火墙并在 mangle 表上创建一些规则以处理多个 WAN 时的策略路由,代理不应该与它产生冲突。
复现步骤
curl https://google.com -v
在路由器上测试,确认可用。opkg update && opkg install luci-app-mwan3
curl https://google.com -v
在路由器上测试,请求无响应直到超时。curl https://google.com -v --proxy socks5://127.0.0.1:7890
在路由器上测试,确认可用。opkg remove --force-removal-of-dependent-packages lua-app-mwan3 mwan3
插件日志
核心日志
配置文件
附加信息