回复于:Linux上部署Frps与Mac上Frpc的配置方案详细记录

VFX大学 VFX Pipeline | 数字创意工作流 Linux上部署Frps与Mac上Frpc的配置方案详细记录 回复于:Linux上部署Frps与Mac上Frpc的配置方案详细记录

#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