自己Mac上部署了一些服务,希望在家里或公网可以直接访问,使用frpc可以实现内网穿透。
本文主要介绍在Mac上如何像Linux一样实现 frpc 的自动启动。
我的 https://xxlab.tech/archives/macos-xi-tong-pei-zhi-frpc-ke-hu-duan-bing-shi-xian-kai-ji-zi-qi-dong
下载并配置 frpc
这里将 frpc 程序及配置放在目录 /app/frpc/
下,大家可以根据个人习惯放在其他目录,
修改 /app/frpc/frpc.ini
,具体参考官方文档。
创建 Plist
简单了解什么是Plist
https://discussions.apple.com/thread/1869002
PLIST 文件是一个特殊的文本文件,其中包含属性列表格式的数据。macOS、iOS 和 iPadOS 应用程序使用该文件以具有XML结构的键值格式存储设置和其他数据。例如,每个 iPhone 应用程序都至少包含一个名为Info.plist的 PLIST 文件,其中包含应用程序的基本配置信息。
- 如果需要 root,并且是需要用户登陆后才能运行,把 plist 放在 /Library/LaunchAgents/
- 如果需要 root,并且不需要用户登陆后都能运行,把 plist 放在 /Library/LaunchDaemons/
因为我们需要开机启动,所以
sudo vim /Library/LaunchDaemons/frpc.plist
内容如下,注意,这里需要改成你的 frpc 程序及配置所在目录
<?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>frpc</string><key>ProgramArguments</key><array><string>/app/frpc/frpc</string><string>-c</string><string>/app/frpc/frpc.ini</string></array><key>KeepAlive</key><true/><key>RunAtLoad</key><true/>
</dict>
</plist>
使用 launchd 将 frpc 设置为守护进程
什么是 launchd: https://support.apple.com/zh-cn/guide/terminal/apdc6c1077b-5d5d-4d35-9c19-60f2397b2369/mac
执行如下命令,将 frpc 设置为守护进程
sudo launchctl load -w /Library/LaunchDaemons/frpc.plist
这样,frpc 就成功设置开机启动了,可以重启电脑进行验证。
取消开机启动
执行下面命令
sudo launchctl unload -w /Library/LaunchDaemons/frpc.plist