情况是这样的,最近入手了一个 4 口工控机,配置了 ubuntu 系统,使用 kea-dhcp 以及 iptables 进行 SNAT 转发来组成局域网. 然后软路由上安装了 mihomo 并配置了 tun 模式后进行爬墙,这样就家里就不用每台设备都进行配置单独的 mihomo 了.
固定的设备还行没多大问题,但是手里有一台 mba,偶尔要带出去,所以也需要配置上 mihomo,软路由和 mba 上的 mihomo 配置是一样的.
但是这样有一样的问题,如果 mba 启动了 mihomo 并且连上了软路由的网络,这样 mba 的网络就无法访问了,看了日志类似形成了回环的感觉,但是又没法确认. 如果 mba 没启动 mihomo,连软路由的网络,也是可以单独使用的. 也就是说两个只能启动一个. 有没大哥可以指导一下
mihomo 的 tun 配置大概是这样的.
sniffer:
enable: true
force-dns-mapping: true
parse-pure-ip: true
override-destination: false
sniff:
HTTP:
ports: [80, 8080-8880]
override-destination: true
TLS:
ports: [443, 8443]
QUIC:
ports: [443, 8443]
tun:
enable: true
stack: system # or gvisor
dns-hijack:
- any:53
auto-redir: true # manage nftable REDIRECT
auto-route: true # auto set global route
auto-redirect: true
strict-route: true
auto-detect-interface: true # conflict with interface-name
1
dbak 204 天前
你软路由 mihomo 开启了 tun ,auto-redir 、auto-route 、auto-redirect 都是 true ,就不用 iptables 做 nat 了吧。
官方文档: auto-redirect 仅支持 Linux ,自动配置 iptables/nftables 以重定向 TCP 连接,需要 auto-route 已启用 在 Android 中: 仅转发本地 IPv4 连接。要通过热点或中继共享您的 VPN 连接,请使用 VPNHotspot 。 在 Linux 中: 带有 auto-route 的 auto-redirect 现在可以在路由器上按预期工作,无需干预。 |
2
kolok OP |
3
dbak 204 天前
@kolok 我家里手机和电脑开启 mihomo 走我的 mihomo 软路由是没问题的 你可以看一下你 mba 的的 mihomo 日志 把 log-level: debug 看看有什么报错之类的
|
4
kolok OP @dbak
既然老哥可以,大大肯定了这个方案是没问题的,再我多次尝试下, 软路由配置 ``` tun: stack: system ``` mac 配置 ``` tun: stack: gvisor ``` 这样就可以,但是什么原理不清楚 |
5
kolok OP 如果软路由配置
tun: stack: system mac 也是配置 tun: stack: system 就不行 |
6
dbak 204 天前 via Android
@kolok 问了下 deepseek∶
Linux:默认使用 system 堆栈(直接依赖内核原生网络能力)。 macOS:默认使用 gvisor 或 mixed 堆栈(因 macOS 原生网络栈限制,需通过用户态实现增强兼容性)。 |
![]() |
7
SenLief 204 天前 via iPhone
system 兼容性一般,gvisor 兼容性好一些。
|
8
zhenjiachen 203 天前
刚好上周才搭建过网关,用的 mihomo ,如果你开了 tun 局域网不能访问可以是你网关的机器路由没配置好,然后要开启 auto-route 。但是我建议不要用软件自带的 tun ,用 nftables 来做透明网关,因为我还需要从外网访问内网,开启 tun 外网进不来,只能用 nftables 。我是参照这个人的写法来做的,你可以看看
https://www.arloor.com/posts/clash-tpproxy/ |