樱花FRP Linux系统安装官方说明

发布于 2020-11-14  501 次阅读


中文 英文 韩语 日语

Linux 系统使用 frpc

注意

本文档给出的命令中 $# 不需要输到终端里,它们只表示您执行这个命令需要的权限

如果您现在已经有 root 权限了,可以直接执行 $# 两种命令,反之您只能执行 $ 这种命令,要切换到 root 账户才能执行 # 开头的命令,否则可能出错

您可以直接从您输命令那个地方看到您现在是不是 root 权限:

使用 su 或者 sudo -s 即可切换到 root 账户. 如果提示输密码请自行解决,我不可能知道您的系统的密码

确认系统架构

下载 frpc 前,请先确认您的 Linux 系统的架构. 执行下面的命令,根据输出结果就可以确定系统架构

$ uname -a
架构输出结果
i386i386, i686
amd64x86_64
armarm, armv7l
arm64aarch64, armv8l
mipsmips
mips64mips64
不支持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 配置 frpc 服务

前置知识

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@*


一个追求爱搞的小逗逼