ChmlFrp 客户端部署文档
1. 环境与前置条件
- 操作系统:Debian GNU/Linux 12 (bookworm)
- CPU 架构:ARM 32 位 (
armv7l) 或 64 位 (aarch64) - 软件包:
ChmlFrp-0.51.2_251023_linux_arm.tar.gz - 权限:已通过 SSH 登录,具有
sudo权限
2. 文件上传与解压
2.1 上传文件到 NAS
任选一种方式:
- WinSCP:协议选 SFTP,主机填 NAS IP,端口 22,拖拽上传。
- SCP 命令(Windows 命令提示符):
Shell
scp -P 22 C:\本地路径\ChmlFrp-*.tar.gz 用户名@NAS_IP:/home/用户名/ - SMB 共享:在 Windows 运行
\\NAS_IP,复制粘贴到共享文件夹,再通过 SSH 移动到目标目录。
2.2 解压压缩包
tar -xzvf ChmlFrp-0.51.2_251023_linux_arm.tar.gz
解压后文件包含 frpc(主程序)、frpc.ini(配置文件模板)等。
2.3 添加执行权限
chmod +x frpc
3. 临时后台运行(使用 nohup)
此方式使程序在 SSH 断开后继续运行,但 重启后不会自动启动。适合短期测试。
nohup ./frpc -u 你的用户ID -p 你的隧道ID > frpc.log 2>&1 &
-u和-p参数请替换为实际值。- 日志输出到当前目录的
frpc.log文件。
查看实时日志:
tail -f frpc.log
按 Ctrl+C 退出日志查看。
4. 配置为 Systemd 服务(开机自启 + 崩溃自动重启)
将程序托管给系统服务管理器,实现 开机自启 和 异常退出后自动重启。
4.1 创建服务文件
服务文件位于 /etc/systemd/system/frpc.service,需使用 sudo 权限创建。
sudo nano /etc/systemd/system/frpc.service
输入内容后按 Ctrl+O 保存,Ctrl+X 退出。
sudo vim /etc/systemd/system/frpc.service
按 i 进入插入模式,输入内容。完成后按 Esc,输入 :wq 保存退出。
4.2 服务文件内容
[Unit]
Description=ChmlFrp Client
After=network.target
[Service]
Type=simple
ExecStart=/home/用户名/frpc -u 你的用户ID -p 你的隧道ID
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
/home/用户名/ 替换为 frpc 文件的实际绝对路径。可使用 pwd 查看当前路径,并用 ls -l 确认文件位置。
4.3 重载系统服务配置
sudo systemctl daemon-reload
4.4 设置开机自启并立即启动
sudo systemctl enable frpc.service
sudo systemctl start frpc.service
4.5 查看服务运行状态
sudo systemctl status frpc.service
正常状态应显示 Active: active (running)。
5. 服务管理与日志查看
| 操作 | 命令 |
|---|---|
| 查看服务状态 | sudo systemctl status frpc.service |
| 手动启动服务 | sudo systemctl start frpc.service |
| 手动停止服务 | sudo systemctl stop frpc.service |
| 手动重启服务 | sudo systemctl restart frpc.service |
| 查看实时日志(滚动) | sudo journalctl -u frpc.service -f |
| 查看最近 100 行日志 | sudo journalctl -u frpc.service -n 100 --no-pager |
| 查看全部日志(分页) | sudo journalctl -u frpc.service |
按 Ctrl+C 可退出 -f 模式的日志跟踪。
5.1 进程管理(非 Systemd 方式)
若使用 nohup 临时运行,可通过以下方式管理进程。
查找进程 ID:
ps aux | grep frpc | grep -v grep
输出第二列即为 PID。
终止进程:
kill PID
或按名称杀死:
pkill -f "frpc -u"
5.2 移除开机自启并删除服务
若不再需要开机自启,按顺序执行:
sudo systemctl stop frpc.service
sudo systemctl disable frpc.service
sudo rm /etc/systemd/system/frpc.service
sudo systemctl daemon-reload
6. 常见错误及解决方法
6.1 服务启动失败:status=203/EXEC
Active: activating (auto-restart) (Result: exit-code)
code=exited, status=203/EXEC
可能原因:
ExecStart=路径错误或文件不存在。- 文件没有可执行权限。
- 程序依赖库缺失。
排查步骤:
-
确认文件存在且路径正确:
Shellls -l /home/用户名/frpc -
添加执行权限:
Shellchmod +x /home/用户名/frpc -
检查程序依赖:
Shellldd /home/用户名/frpc若显示
not found,安装对应库(如libfuse2):Shellsudo apt update && sudo apt install libfuse2 -
尝试直接运行看具体错误:
Shell/home/用户名/frpc -u xxx -p xxx
6.2 服务运行但日志显示 connection refused
frpc 已成功连接远程服务器,但无法连接到内网的目标服务(如 192.168.110.42:8090)。
检查项:
- 内网服务是否已启动。
- 目标 IP 和端口是否正确。
- 若服务就在本机,建议目标地址改为
127.0.0.1:端口。
6.3 修改服务文件后不生效
执行重载和重启:
sudo systemctl daemon-reload
sudo systemctl restart frpc.service
6.4 忘记使用 sudo 打开服务文件导致无法保存
退出后重新用 sudo vim 或 sudo nano 打开。
附录:vim 编辑器常用操作(针对无 nano 环境)
| 操作 | 按键 / 命令 |
|---|---|
| 打开文件 | sudo vim 文件路径 |
| 进入插入模式(开始编辑) | 按 i |
| 退出插入模式 | 按 Esc |
| 保存并退出 | :wq |
| 不保存强制退出 | :q! |
| 删除当前行 | 按 dd |
| 撤销上一步 | 按 u |
| 查找关键词 | /关键词(按 n 下一个) |
| 替换整个文件内容 | :%s/旧/新/g |
安全提醒
- 命令行中的
-u和-p参数会被所有用户通过ps aux看到,建议改用配置文件frpc.ini存放认证信息,并将ExecStart改为ExecStart=/路径/frpc -c /路径/frpc.ini。 - 服务文件中的路径和参数应使用绝对路径,避免使用
~等相对符号。 - 定期检查日志文件大小,可配置日志轮转(logrotate)。
本文档覆盖了从零开始部署 ChmlFrp 客户端的全部流程。
若遇到未列出的问题,可通过 journalctl -u frpc.service -n 50 查看详细日志进一步排查。