前言

最近在闲鱼上淘了一个二手 macbook m1 air 16+512,想着把 windows 上的 singbox 搬过去。因为之前都是跑的纯内核,所以这时也打算用纯内核来跑。

遇到第一个问题,配置文件是 1.11 时候写的,但是很多带 provider 的 singbox 修改版,都没有历史版本,不打 tag,编译出来的都是最新版本,或者是有 1.11 Tag,Fork 了一下自己跑 Github action,但是编译出来的是原版。或者是原仓库之前 action 跑过的,很多产物都已经失效了无法下载。

后面只能尝试用 1.12 版本,找了一个仓库 lux5am/sing-box,这个看着是挺不错的,然后下载了个 1.12 版本,但是配置跑不起来,一直报错 loop on detour: direct

+0800 2026-01-21 20:07:33 INFO network: updated default interface en0, index 11
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set geosite-microsoft from URL: https://github.com/CHIZI-0618/v2ray-rules-dat/raw/refs/heads/release/singbox_rule_set/geosite-microsoft.srs
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set category-ads-all from URL: https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_rule_set/geosite-category-ads-all.srs
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set cn-domain from URL: https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_rule_set/geosite-cn.srs
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set category-games@cn from URL: https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-category-games@cn.srs
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set alibaba from URL: https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-alibaba.srs
+0800 2026-01-21 20:07:33 INFO outbound/direct: outbound connection to github.com:443
+0800 2026-01-21 20:07:33 DEBUG dns: lookup domain github.com
+0800 2026-01-21 20:07:33 INFO outbound/direct: outbound connection to raw.githubusercontent.com:443
+0800 2026-01-21 20:07:33 INFO outbound/direct: outbound connection to raw.githubusercontent.com:443
+0800 2026-01-21 20:07:33 DEBUG dns: lookup domain raw.githubusercontent.com
+0800 2026-01-21 20:07:33 DEBUG dns: lookup failed for github.com: loop on detour: direct

改了半天配置,又去参考了一下别人的,或者是换另外一个仓库的 1.12 修改版,最终都跑不起来,折腾了好久最终是放弃了。然后想着,如果后面又遇到这种问题,再加上 singbox 的配置语法经常变更,后面又得折腾一下,想了想还是换内核吧。

那也没啥好选了,只能是 mihomo 了。于是就弄了一下这玩意的开机自启。

配置开机自启

主要是参考:OKHK ✨ macOS 上 配置 Launchctl 运行 Clash Meta(Mihomo)内核服务
其实里面文件的路径应该是能变的,但是我为了复制方便,直接就用文章的了 。

核心文件准备

sudo mv mihomo-darwin-arm64-v1.19.19 /usr/local/bin/clash
sudo chown root clash
sudo chmod +x clash
mkdir -p /Users/app/.config/clash
mv config.yaml /Users/app/.config/clash
chmod 644 /Users/app/.config/clash/config.yaml

launchctl 配置文件

/usr/local/bin/start_clash_with_dns.sh:设置 dns + 启动核心

#!/bin/bash set -e

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" export HOME="/Users/app" timeout=120
elapsed=0
while [ $elapsed -lt $timeout ]; do if scutil --dns | grep -q "nameserver"; then
        networksetup -setdnsservers Wi-Fi 198.18.0.2
        echo "$(date) DNS:198.18.0.2" >> /Users/app/.config/clash/clash_dns.log
        break fi sleep 5
    elapsed=$((elapsed + 5))
done exec /usr/local/bin/clash -d /Users/app/.config/clash


/Library/LaunchDaemons/clash.plist:launchctl plist 配置文件

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>clash</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>/usr/local/bin/start_clash_with_dns.sh</string> </array> <key>RunAtLoad</key> <true/> <key>WorkingDirectory</key> <string>/Users/app/.config/clash</string> <key>StandardOutPath</key> <string>/Users/app/.config/clash/clash_stdout.log</string> <key>StandardErrorPath</key> <string>/Users/app/.config/clash/clash_stderr.log</string> </dict> </plist> 


授予权限:

sudo chown root /Library/LaunchDaemons/clash.plist
sudo chmod 644 /Library/LaunchDaemons/clash.plist
sudo chown root /usr/local/bin/start_clash_with_dns.sh
sudo chmod +x /usr/local/bin/start_clash_with_dns.sh

启动服务

第一次启动用下面的命令,如果是已经 load 过的,用下面的 alias 的 startclash。
反复 load 会出错或者是 unload 还没有 load 的也会出错,但是错误日志没有具体怎么写,这里提醒一下。

sudo launchctl load /Library/LaunchDaemons/clash.plist

一些常用命令

重启

sudo launchctl unload /Library/LaunchDaemons/clash.plist
sudo launchctl load /Library/LaunchDaemons/clash.plist

alias 用于方便手动控制:

alias stopclash='sudo launchctl stop clash && networksetup -setdnsservers Wi-Fi Empty && sudo launchctl list | grep clash' alias startclash='sudo launchctl start clash && networksetup -setdnsservers Wi-Fi 192.168.0.2 && sudo launchctl list | grep clash' 

uu 远程连接不上

tun 启动之后不知道为什么 uu 远程用不了,显示没有网络链接。
问了一下 AI,给了一些方法,现在虽然是解决,但我不知道具体是哪个命令解决的。
这里我都贴出来有遇到的老友可以试一试这一些方法,如果关闭 clash 之后没有网络,可以开关一下 wifi,这样就有网络了。

sudo route -n flush
sudo ifconfig en0 down
sudo ifconfig en0 up
sudo pkill -f "uu\|tun" sudo rm /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

sudo route -n flush 这个可以执行多次,时不时执行一下,比如关闭 uu 远程之后,打开了之后。
如果实在不行就把 uu 远程卸载了,重启电脑,再安装上,然后再试试。不行的话就再执行一下上面这些命令。
查看路由表: netstat -rn -f inet


📌 转载信息
转载时间:
2026/1/24 06:41:06

标签: Clash, 网络代理, sing-box, macOS, TUN

添加新评论