回复于:Linux上部署Frps与Mac上Frpc的配置方案详细记录
› VFX大学 › VFX Pipeline | 数字创意工作流 › Linux上部署Frps与Mac上Frpc的配置方案详细记录 › 回复于:Linux上部署Frps与Mac上Frpc的配置方案详细记录
2023-12-15 - 13:51 #127159

追光
参与者
在Mac中部署frpc客户端并设置开机启动/进程守护
1、下载Mac系统版本客户端:frp_0.53.0_darwin_arm64.tar.gz,如果是M芯片的选择darwin arm版,intel芯片的选择:darwin_amd64:
2、解压文件后得到四个文件,我们仅留下:frpc、frpc.toml俩个文件。
3、配置frpc.toml,连接客户端并且分配远程与本地的端口映射:
serverAddr = "写入上文服务端的公网ip" serverPort = 1443 # 如果指定了“oidc”,将使用 OIDC 设置颁发 OIDC(开放 ID 连接)令牌。默认情况下,此值为“令牌”。auth.method = “token” auth.method = "token" # 身份验证令牌 auth.token = “密码自行设置” auth.token = "123456" #开放本地ssh22端口,对应远程的122端口 #[[proxies]] name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 122 # frpc.toml [[proxies]] name = "xyz" type = "tcp" localIP = "127.0.0.1" localPort = 443 remotePort = 1443 #服务端与此域名通讯的端口 customDomains = ["xyz.newvfx.com"] #定义本地服务的域名1 transport.useEncryption = true #启用加密传输 transport.useCompression = true #启用压缩传输 # 目前支持 v1 和 v2 两个版本的 proxy protocol 协议。 #transport.proxyProtocolVersion = "v2" # frpc.toml [[proxies]] name = "xyz2" type = "tcp" localIP = "127.0.0.1" localPort = 443 remotePort = 2443 #服务端与此域名通讯的端口 customDomains = ["xyz2.newvfx.com"] #定义本地服务的域名2 transport.useEncryption = true #启用加密传输 transport.useCompression = true #启用压缩传输 #transport.proxyProtocolVersion = "v2"
3、配置好文件后,启动本地客户端进行连接测试,在Terminal(终端)中进入目录,并执行启动命令:
#进入客户端所在目录,可贫喜好自行修改 cd /Applications/frp #执行启动命令 ./frpc -c ./frpc.toml #执行启动命令后不输出信息,可关闭Terminal nohup ./frpc -c frpc.toml >/dev/null 2>&1 &
上方两条可以通过shortcuts,或者新建为一个frpc.command的脚本。
#!/bin/bash clear cd /Applications/frp ./frpc -c frpc.toml
4、设置开机Mac开机启动与进程守护
Mac OS各目录决定了其启动的先后和拥有的权限:
~/Library/LaunchAgents # 以当前设置的用户登录后启动。 /Library/LaunchAgents # 系统组件所有用户登录后都以当前用户启动 /Library/LaunchDaemons # 系统启动时以root用户启动,无需登陆。
4、1写入到用户启动项目,开机后输出密码登陆用户后启动:
echo '<?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>com.jisongbin.frp</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/frp/frpc</string>
<string>-c</string>
<string>/Applications/frp/frpc.toml</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>' > ~/Library/LaunchAgents/com.jisongbin.frp.plist
4、2、写入到系统启动项目:开机后即启动,不需要输入用户输入密码
sudo sh -c 'echo "<?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>com.jisongbin.frp</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/frp/frpc</string>
<string>-c</string>
<string>/Applications/frp/frpc.toml</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>" > /Library/LaunchDaemons/com.jisongbin.frp.plist'
检查服务进程是否启动:
ps -e |grep frpc
小提示:如果进入开机自动启动后,kill掉进程会自动重新读取frpc.atoml,可以使用命令关掉进程,让其自动启动
killall frpc