本教程是以命令行后台并自启动运行 mihomo,如果需要使用 GUI,本教程可忽略。
以 admin 用户作为例子,以 mihomo 目录作为工作目录例子,请以实际情况替换。
先下载 mihomo 对应的二进制文件,移动到对应的工作目录下,例如:/Users/admin/mihomo
。
然后使用以下命令修改 mihomo 二进制文件的权限,如果需要使用TUN,此步骤是必须的:
# mihomo 二进制文件的名称以 mihomo 为例
sudo chown root:admin ./mihomo
sudo chmod +sx ./mihomo
在/Library/LaunchAgents
下创建一个com.metacubex.mihomo.plist
服务文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--服务名称,一定不能重复, 否则无法被成功创建, 系统会告诉你已经有同名的服务-->
<key>Label</key>
<string>com.metacubex.mihomo</string>
<!--程序位置及其参数-->
<key>ProgramArguments</key>
<array>
<string>/Users/william/mihomo/mihomo</string>
<string>-d</string>
<string>/Users/william/mihomo</string>
<string>-f</string>
<string>/Users/william/mihomo/config.yaml</string>
</array>
<!--崩溃后自动重启-->
<key>KeepAlive</key>
<true/>
<!--加载时运行服务-->
<key>RunAtLoad</key>
<true/>
<!--错误日志输出路径-->
<key>StandardErrorPath</key>
<string>/Users/william/mihomo/stderr.log</string>
<!--正常日志输出目录-->
<key>StandardOutPath</key>
<string>/Users/william/mihomo/stdout.log</string>
<!--服务工作路径-->
<key>WorkingDirectory</key>
<string>/Users/william/mihomo</string>
</dict>
</plist>
保存后使用以下命令直接启动 mihomo 服务:
launchctl load -w /Library/LaunchAgents/com.metacubex.mihomo.plist
运行以上命令后,如果没有报错,mihomo 服务就会立即运行。
如果要停止 mihomo 服务,需要使用以下命令:
launchctl unload -w /Library/LaunchAgents/com.metacubex.mihomo.plist
执行后即可停止 mihomo 服务。
- 修改了 mihomo 二进制文件的权限之后,mihomo 下载的文件都会变成 root 用户,普通用户如果要修改、删除,需要使用 root 用户权限。mihomo 下载的文件一般有:网页控制台的源文件、geoip.dat、geoip.metadb、geosite.dat、country.mmdb、asn.dat 等等。
- launchd 运行服务之后如果出错,launchd 是不会在终端显示报错信息的,建议多次检查以上操作是否有遗漏疏忽地方。
- 在后期发现使用
~/Library/LaunchAgents
目录可能会有权限问题,可以移动到/Library/LaunchAgents
下。