docs: add frpc client deployment guide (8 sections)

- Download frpc binary (architecture table)
- Download frpc.ini from web UI
- Install config + systemd unit
- Hot-reload after proxy changes
- Multi-instance scenario
- Troubleshooting table (6 common issues)
This commit is contained in:
Your Name
2026-08-10 14:24:20 +08:00
parent 71214524f4
commit fabcdf2b10
+150
View File
@@ -156,12 +156,162 @@ sudo systemctl enable --now frpc@laptop-jdoe
``` ```
改代理后: 改代理后:
```bash ```bash
# 在 frpc 主机执行 # 在 frpc 主机执行
sudo frpc reload -c /etc/frpc/laptop-jdoe.ini sudo frpc reload -c /etc/frpc/laptop-jdoe.ini
# 或者 frpc reload -c /etc/frpc.ini(按你保存的路径) # 或者 frpc reload -c /etc/frpc.ini(按你保存的路径)
``` ```
## 客户端(frpc)部署教程
### 1. 下载 frpc 二进制
frpc 和 frps 来自同一个 frp 发行包。在 frpc 主机上执行:
```bash
# 查看架构
uname -m
# x86_64 → amd64
# aarch64 → arm64
# armv7l → arm
# 下载(以 amd64 为例,版本与服务器 frps 保持一致:0.70.1
cd /tmp
curl -fSL -o frp.tar.gz \
https://github.com/fatedier/frp/releases/download/v0.70.1/frp_0.70.1_linux_amd64.tar.gz
tar xzf frp.tar.gz
sudo cp frp_0.70.1_linux_amd64/frpc /usr/local/bin/
sudo chmod +x /usr/local/bin/frpc
frpc --version
# 应输出 0.70.1
```
其他架构替换 `amd64``arm64``arm` 等。
### 2. 从 Web 管理界面下载 frpc.ini
1. 登录 http://frps-manager-host:5390
2. 进入「客户端」页面 → 找到你的客户端 → 点「frpc.ini」按钮下载
3. 如果需要额外添加代理规则:在 Web 端「代理」页添加 → 再次下载 frpc.ini
### 3. 安装配置文件
```bash
sudo mkdir -p /etc/frpc
sudo cp ~/Downloads/frpc-laptop-jdoe.ini /etc/frpc/laptop-jdoe.ini
sudo chmod 600 /etc/frpc/laptop-jdoe.ini
```
配置文件包含:
- `server_addr` / `server_port` — frps 服务器地址
- `token` — 共享认证 token(由管理员提供,不要外泄)
- `admin_addr` / `admin_port` — 本地管理 API(用于 `frpc reload`
-`[[proxies]]` 段 — 代理规则
> 如果不想用 systemd,也可以直接运行测试:
> ```bash
> frpc -c /etc/frpc/laptop-jdoe.ini
> # 看到 "login to server success" 表示连接成功
> # Ctrl+C 停止
> ```
### 4. 安装 systemd 服务
```bash
# 从 frps-manager 仓库获取模板 unit 文件
# (或者手动创建,内容见下方)
sudo curl -fsSL -o /etc/systemd/system/frpc@.service \
https://raw.githubusercontent.com/AI-Agent/frps-manager/master/runtime/frpc@.service
sudo systemctl daemon-reload
# 启用并启动(%i 对应 /etc/frpc/ 下的文件名,不含 .ini
sudo systemctl enable --now frpc@laptop-jdoe
```
或者手动创建 `/etc/systemd/system/frpc@.service`
```ini
[Unit]
Description=frpc — fatedier/frp client (%i)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frpc -c /etc/frpc/%i.ini
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
```
### 5. 验证连接
```bash
# 查看服务状态
sudo systemctl status frpc@laptop-jdoe
# 看到以下关键日志表示成功:
# login to server success, get run id [xxxxx]
# proxy added: [ssh web]
# start proxy success
# 查看实时日志
sudo journalctl -u frpc@laptop-jdoe -f
```
回到 frps-manager Web 仪表盘 → 客户端列表里应显示「在线」状态,代理列表里对应代理应为绿色「在线」。
### 6. 修改代理后热重载
在 Web 端添加/修改/删除代理规则后:
1. 回到「客户端」页 → 重新下载最新的 `frpc.ini`
2. 在 frpc 主机上替换配置文件并 reload:
```bash
sudo cp ~/Downloads/frpc-laptop-jdoe.ini /etc/frpc/laptop-jdoe.ini
sudo frpc reload -c /etc/frpc/laptop-jdoe.ini
# 看到 "reload success" 表示生效
# 无需重启 frpc 进程,已有的连接不受影响
```
> frpc.ini 中的 `admin_addr` / `admin_port` 段就是为 reload 准备的。
> 如果你的 frpc 主机上运行了多个 frpc 实例,每个实例的 `admin_port` 必须不同。
### 7. 多实例场景
同一台主机跑多个 frpc 客户端(例如多个用户共享一台服务器):
```bash
# 用户 A 的配置
sudo cp frpc-alice.ini /etc/frpc/alice.ini
# 用户 B 的配置(注意 admin_port 不同)
sudo cp frpc-bob.ini /etc/frpc/bob.ini
sudo systemctl enable --now frpc@alice
sudo systemctl enable --now frpc@bob
# 分别 reload
sudo frpc reload -c /etc/frpc/alice.ini
sudo frpc reload -c /etc/frpc/bob.ini
```
### 8. 故障排查
| 现象 | 原因 | 解决 |
|------|------|------|
| `token in login doesn't match` | token 错误或过期 | 重新从 Web 下载 frpc.ini |
| `type [http] not supported when vhost http port is not set` | frps 未配 vhost 端口 | 联系管理员设置 `FRPS_VHOST_HTTP_PORT` |
| `listen tcp :7400: bind: address already in use` | admin 端口冲突 | 改 frpc.ini 里的 `admin_port` |
| `connection refused` | frps 未启动或防火墙 | 检查 `telnet frps-host 7000` |
| Web 显示「离线」但 frpc 在跑 | frps dashboard 未同步 | 检查 frps dashboard (`:7500`) 是否可达 |
| `reload success` 但代理没生效 | frpc.ini 里没写对应 proxy 段 | 重新从 Web 下载最新 frpc.ini |
## 配置(环境变量) ## 配置(环境变量)
| 变量 | 默认值 | 说明 | | 变量 | 默认值 | 说明 |