注意
本文档给出的命令中 $ 和 # 不需要输到终端里,它们只表示您执行这个命令需要的权限
如果您现在已经有 root 权限了,可以直接执行 $ 和 # 两种命令,反之您只能执行 $ 这种命令,要切换到 root 账户才能执行 # 开头的命令,否则可能出错
您可以直接从您输命令那个地方看到您现在是不是 root 权限:

使用 su 或者 sudo -s 即可切换到 root 账户. 如果提示输密码请自行解决,我不可能知道您的系统的密码
确认系统架构
下载 frpc 前,请先确认您的 Linux 系统的架构. 执行下面的命令,根据输出结果就可以确定系统架构
$ uname -a
| 架构 | 输出结果 |
|---|---|
| i386 | i386, i686 |
| amd64 | x86_64 |
| arm | arm, armv7l |
| arm64 | aarch64, armv8l |
| mips | mips |
| mips64 | mips64 |
| 不支持 | alpha, arc, blackfin, c6x, cris, frv, h8300, hexagon, ia64, m32r, m68k, metag, microblaze, mn10300, nios2, openrisc, parisc, parisc64, ppc, ppcle, ppc64, ppc64le, s390, s390x, score, sh, sh64, sparc, sparc64, tile, unicore32, xtensa |
如果您看到了不在上面列表中的输出,请访问 百度 进行搜索
安装 frpc
登录管理面板,在侧边栏点击 “软件下载” :

本教程中使用的演示内核为 x86_64 架构,对应文件名为 frpc_linux_arm64
实际操作时需要根据您的架构文件名会有所不同,请自行修改命令中的文件名
找到 frpc 的各种下载地址和您的架构标志,复制右边蓝色的下载地址

使用下面的命令进入 /usr/local/bin 目录并下载文件
$ cd /usr/local/bin
# curl -Lo frpc 您刚才复制的下载地址

然后使用下面的命令设置正确的权限并检查输出
# chmod 755 frpc
# ls -ls frpc

如果您看到和图里一样的输出,frpc 就安装完成并可以正常使用了。您可以执行下面的命令来再次确认
$ frpc -v
使用 frpc
请查看 用户手册 中的 普通用户 一节学习 frpc 的基本使用方法
通过本文档中介绍的方法安装后,您应该可以在任何目录直接输入 frpc <参数> 运行 frpc ,不需要 输入完整路径
配置开机自启/后台运行
如果您想让 frpc 在开机时自启或在后台运行,就需要将 frpc 注册为系统服务
首先,您要搞清楚您的 Linux 系统使用的 初始化系统 是什么,本文档提供三种常见初始化系统的配置指南:
- Systemd
- Upstart
- SysV-Init
执行下面的命令然后查看输出,找到您的初始化系统
# if [[ `/sbin/init --version` =~ upstart ]]; then echo Upstart; elif [[ `systemctl` =~ -\.mount ]]; then echo Systemd; elif [[ -f /etc/init.d/cron && ! -h /etc/init.d/cron ]]; then echo SysV-Init; else echo Unknown; fi

参考下面的教程配置服务:
- Systemd 配置指南
- 另外两个还在写
前置知识
Systemd 是 Linux 系统的一种初始化系统实现,它管理的各种服务叫做 Unit,每个服务对应一个 Unit 配置文件
在本教程中,frpc 会被注册为一个服务,我们让 Systemd 来自动管理 frpc,借此实现开机自启和后台运行
Systemd 的服务有两种状态:
运行中/已停止/错误启用/禁用
如果 启用 了服务,开机的时候服务就会自启,反之就不会
编写配置文件
Systemd 的 Unit 配置文件 通常位于这些目录中:
- /lib/systemd/system
- /etc/systemd/system
本教程将选用第一个目录来放置 frpc 的 Unit 配置文件,并且 frpc 启用后报错退出时每分钟会自动重启一次
执行下面的命令,您应该会看到图中的提示
# vi /lib/systemd/system/frpc@.service

按一下 i 键,左下角应该会出现 -- INSERT -- 或者 -- 插入 -- 字样

然后复制并粘贴下面提供的服务文件内容,请注意 不要 多复制或少复制任何东西,确保粘贴后的内容和图中一模一样
[Unit]
Description=SakuraFrp Service
After=network.target
[Service]
Type=idle
User=nobody
Restart=on-failure
RestartSec=60s
ExecStart=/usr/local/bin/frpc -f %i
[Install]
WantedBy=multi-user.target
粘贴完成后按一下 ESC,左下角的 -- INSERT -- 会消失,此时输入 :wq 并按回车退出

执行下面的命令重载 Systemd,这样服务就配置完成了
# systemctl daemon-reload
请记住后续操作中用到的 Unit 名称 是 frpc@<启动参数>,例如 frpc@wdnmdtoken666666:12345
下面本教程将介绍一些 Systemd 的基本操作
启动/停止隧道
启动/停止隧道非常简单,使用下面的命令即可,start 是启动,stop 是停止
# systemctl <start|stop> <Unit名称>
举个例子
# systemctl start frpc@wdnmdtoken666666:12345
查看隧道状态
您可以通过下面的命令查看服务状态
# systemctl status <Unit名称>
举个例子,要查看上面开启的隧道状态可以使用
# systemctl status frpc@wdnmdtoken666666:12345
绝对不要 开启重复的隧道,这会造成出现各种不可预计的 Bug
执行多次 systemctl start 是 安全 的
配置好 Systemd 后,不要 再用 frpc -f <启动参数> 的形式开启隧道
如果您忘记了之前开启过哪些隧道,使用下面的命令可以列出当前运行中的隧道
# systemctl list-units frpc@*

配置开机自启
装好服务后,实现开机自启非常简单,回顾一下前置知识
- 我们只要
启用服务就可以实现开机自启 - 如果不想开机自启了,
禁用服务即可
使用下面的命令启用/禁用服务,enable 是启用,disable 是禁用,操作完成后再用 status 检查一下状态
# systemctl <enable|disable> <Unit名称>
# systemctl status <Unit名称>
如果一切正常,您会看到我图中的两个红色标注的内容
没看到第一个创建符号链接的提示也是正常的,只要下面的状态显示为 enabled 就行

如果您忘记了之前设置过的自启隧道,可以使用下面的命令列出
和上面是类似的,只是多了个 --all 确保停止了的服务也能被列出
# systemctl list-units --all frpc@*











叨叨几句... NOTHING