wonfen:服务模式下内核以 root 运行,普通 lsof 看不到它的监听端口

在 macOS 升级到 v2.5.5 并执行「修复服务」后内核未运行、7897 端口无监听的问题(#8029)中,wonfen 说明:服务模式下内核以 root 身份运行,普通用户执行的 lsof -nP -iTCP:7897 -sTCP:LISTEN 看不到 root 进程的监听端口,因此没有输出并不能说明 7897 没有在监听。他要求补充 sudo lsof 的输出、verge-mihomo / clash-verge-service 进程、curl 直连 7897 的结果、服务目录(仅 root 可读)下的内核日志与应用日志,以及是否开启 TUN、订阅是否使用 proxy-providers / rule-providers、内核选的是 Mihomo 还是 Mihomo Alpha。他还表示已改进:服务运行的内核意外停止时,应用会在窗口中提示原因,macOS 上也会关闭仍指向失效端口的系统代理。

作者原文

感谢反馈。服务模式下内核以 root 身份运行,普通用户运行的 lsof 看不到 root 进程的监听端口,所以 lsof -nP -iTCP:7897 -sTCP:LISTEN 没有输出并不能说明 7897 没有监听。麻烦在问题出现时补充以下信息:

  1. 端口与进程(需要管理员密码):
sudo lsof -nP -iTCP:7897 -sTCP:LISTEN
ps -axo pid,user,comm | grep -E "verge-mihomo|clash-verge-service"
curl -sv -x http://127.0.0.1:7897 --max-time 10 https://www.gstatic.com/generate_204 -o /dev/null
  1. 内核日志(在服务目录下,仅 root 可读),贴出最新日志的末尾部分:
sudo ls -la "/Library/Application Support/clash-verge-service/users/"*/logs
sudo tail -n 200 "/Library/Application Support/clash-verge-service/users/"*/logs/service_latest.log
  1. 应用日志:~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev/logs/ 下出现问题时段的最新日志
  2. 是否开启了 TUN;订阅是否使用 proxy-providers / rule-providers;内核选择的是 Mihomo 还是 Mihomo Alpha

另外,已改进:服务运行的内核意外停止时,应用会在窗口中提示原因,macOS 上也会关闭仍指向失效端口的系统代理。