mac 有办法裸 mihomo 内核使用 TUN 模式吗

81 天前
 lymanbernadette6
```
tun:
enable: false
stack: gvisor
dns-hijack:
- any:53
- tcp://any:53
auto-route: true
auto-redirect: true
auto-detect-interface: true
```
使用./mihomo -f xx.yml 启动。在 WebUI 上开启 TUN 模式,就断网了。
一堆的报错无法连接 DNS
2155 次点击
所在节点    macOS
20 条回复
yuanxiaosong
81 天前
第一步: https://wiki.metacubex.one/config/inbound/tun/

第二步: https://github.com/MetaCubeX/mihomo/issues?q=macos+tun+dns

第三部:以上两步解决不了,换个软件
lymanbernadette6
81 天前
补充一下, 配置在 win 和 Linux 下是没问题的。
Mac 我看到 issue 中有位大佬提到需要手动指定网卡的 DNS 192.18.0.2 不过尝试并没有效果。
lymanbernadette6
81 天前
@lymanbernadette6 #2 继续补充一下, 是用 sudo 启动的,因为 Mac 下普通用户无法启动 Tun 网卡。
lymanbernadette6
81 天前
@yuanxiaosong #1 您要不自己尝试一下再说看 issue 看文档?

issue 跟这些关键词有关的提到的方式都尝试过(而且大家似乎很少直接用内核在 Mac 下用 Tun , 其中有一个用了的,说是 DNS 需要手动指向 192.18.0.2 , 这种方式已经尝试过 不然也不会发帖子了
jianzhao123
81 天前
歪路子,Mac 搞个虚拟机装个 mihomo 试试行不行
xyz8899
81 天前
为什么要裸跑,Mihomo Party 不香吗
ostrichb
81 天前
我就是使用裸核心 TUN 全平臺(除 OpenWRT )不使用 GUI 的。我沒遇到這個問題,TUN 和 DNS 相關的部分你可以參考下:
tun:
enable: true
macOS-auto-route: true
stack: gvisor
dns-hijack:
- any:53
auto-route: true

dns:
enable: true
listen: 0.0.0.0:53
default-nameserver:
- 223.5.5.5
enhanced-mode: fake-ip # or fake-ip
fake-ip-range: 198.18.0.0/16
nameserver:
- https://public.dns.iij.jp/dns-query
- 207.68.222.222
- 207.68.220.220
- 101.101.101.101
- 101.102.103.104

nameserver-policy:
"geosite:microsoft": ['223.5.5.5', '223.6.6.6', '119.29.29.29']
"geosite:cn": ['223.5.5.5', '223.6.6.6', '119.29.29.29']
"www.baidu.com": ['223.5.5.5', '223.6.6.6', '119.29.29.29']
"geosite:icloud": ['223.5.5.5', '223.6.6.6', '119.29.29.29']
"geosite:itunes": ['223.5.5.5', '223.6.6.6', '119.29.29.29']

之前有劫持不了 DNS 的問題,可以去網路設定那裡手動設定一個 DNS Server ,劫持就正常了
ostrichb
81 天前
@ostrichb 註:我的 TUN 模式一般保持常開不會關閉
anto17
81 天前
mac 上 netstat -rn -f inet 命令看下你的路由表(不会看可以问 gpt 帮助理解),有可能是路由表错乱了。把你的网卡禁用后重新开启,会重建默认路由表。然后再开启 tun 模式
lymanbernadette6
81 天前
@ostrichb #7 感谢回复, 目前看我的配置缺少了一个 macOS-auto-route: true 不过刚看了一下官方的配置文件里似乎没有这个字段: https://github.com/MetaCubeX/mihomo/blob/Meta/docs/config.yaml

> 之前有劫持不了 DNS 的問題,可以去網路設定那裡手動設定一個 DNS Server
这个是似乎不是个例: https://github.com/MetaCubeX/mihomo/issues/895#issuecomment-1855902064
内核在 Mac 下 TUN 不会修改 DNS 指向。

我在 Windows 下使用一模一样的配置,一切正常,不需要其他任何配置。
lymanbernadette6
81 天前
@anto17 #9 是的 大佬说的没错,的确是路由表错乱,通过多次'sudo route -n flush' 刷新路由表后能恢复。 不过开启 TUN 依然会出现相同的问题。
lymanbernadette6
81 天前
@jianzhao123 #5 这肯定是不行的,Tun 模式原理是启动一个虚拟网卡接管主机流量。
lymanbernadette6
81 天前
@xyz8899 #6 香,不过这里探讨的是跑裸内核本身的问题。
ostrichb
81 天前
@lymanbernadette6 這個字段是我不知道那裡抄的,從之前的 ClashPremium 一路用到 meta 再到現在的 mihomo ,可能是之中某一個時間加進去的(反正能用就不要動他嘛 owo )
anto17
81 天前
@lymanbernadette6 #11 不要用 alpha 试试
lymanbernadette6
79 天前
@anto17 #15 牛逼! 大佬雀氏牛逼, 不是配置问题,是 alpha 的问题。 换 release 的二进制就好了。
okampfer
75 天前
@ostrichb #7
请问一下,按照这个配置启动 mihomo 之后会自动修改路由表是吗?然后关闭的时候(crtl + c)路由表会被重置是吗?
ostrichb
75 天前
@okampfer 應該是的
BottleKing
53 天前
我在 linux 遇到和你相似的问题。
具体表现为 proxy 规则的域名全部解析成 ip ,然后 ip 全部 match 然后直连了。而且 webUI 链接那里只显示 ip 不显示域名。
我是关闭了 auto-redirect 之后就正常了。我觉得可能是我内核没开转发或者这个选项是给路由用的
lymanbernadette6
51 天前
@BottleKing #19 不确定, 我在发帖时换成正式版后没问题了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1089318

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX