主题
FRP 端口穿透:本机 9000-9009 → 公网 8.153.84.140
目标
将宿主机(本机)的 TCP 端口段 9000-9009 通过 FRP 隧道映射到公网服务器 8.153.84.140 的同名端口,使得外网可以访问 8.153.84.140:9000 ~ 8.153.84.140:9009。
架构
外网用户 -> 8.153.84.140:9000-9009 -> frps (8.153.84.140:7000)
-> frpc (本机) -> 127.0.0.1:9000-9009延伸:同一套 frp 隧道的其它接入形态
frpc.toml 里的代理早已超出 9000-9009 段(Harbor、Rancher、Jenkins、Gitea、ComfyUI…)。 其中 Harvester HCI Dashboard 是最完整的一个范例——它同时用上了「后端指向 VIP」和「公网 Traefik 终止 TLS」两个技巧, 浏览器拿到的是 CN=ai-ear.cn 正式证书而不是集群自签证书:
| 项 | 值 |
|---|---|
| 代理名 | harvester-vip-9443:localIP=192.168.150.200(kube-vip VIP)、localPort=443 → remotePort=19048 |
| 公网入口 | https://ai-ear.cn:9443/(Traefik ep9443 终止 TLS;上游 https://127.0.0.1:19048 + insecureSkipVerify) |
| 文档与脚本 | worker/harvester-iso/deploy/public-access/(3 个可回滚脚本 + 10 层验证清单) |
运维导航页 doc-index.html(线上 https://ai-ear.cn/doc/)已收录全部入口卡片,含 Harvester HCI。
生成的凭据(已写入配置文件)
| 项目 | 值 |
|---|---|
| frp 服务端端口 | 7000 |
| frp 认证 Token | Vju0TaOYT1HQsybxylcxQWhBhfcpweWV |
| Dashboard 端口 | 7500 |
| Dashboard 用户 | admin |
| Dashboard 密码 | xxx |
如需修改凭据,请同时修改
frps.toml与frpc.toml,保持两者一致。
文件说明
| 文件 | 用途 | 部署位置 |
|---|---|---|
frps.toml | frp 服务端配置 | 8.153.84.140 的 /etc/frp/frps.toml |
frpc.toml | frp 客户端配置 | 本机 /etc/frp/frpc.toml |
install-frps.sh | 安装并启动 frps | 在 8.153.84.140 上执行 |
install-frpc.sh | 安装并启动 frpc | 在本机执行 |
部署步骤
1. 在公网服务器 8.153.84.140 上部署 frps
需要有 root 权限登录该服务器。如果已有 frp_0.69.1_linux_amd64.tar.gz 在 /tmp,直接执行:
bash
bash install-frps.sh否则指定 tarball 路径:
bash
bash install-frps.sh /path/to/frp_0.69.1_linux_amd64.tar.gz部署完成后检查:
bash
systemctl status frps
ss -tlnp | grep -E ':(7000|7500)'2. 在本机部署 frpc
bash
bash install-frpc.sh部署完成后检查:
bash
systemctl status frpc
journalctl -u frpc -f3. 验证映射
在任意可访问公网的主机上测试:
bash
for p in {9000..9009}; do
echo -n "Port $p: "
timeout 3 bash -c "</dev/tcp/8.153.84.140/$p" && echo "OK" || echo "FAIL"
done或针对具体服务测试:
bash
curl -v http://8.153.84.140:9000防火墙要求
- 公网服务器
8.153.84.140需要放行:- TCP
7000(frp 控制通道) - TCP
7500(可选,Dashboard) - TCP
9000-9009(映射的业务端口)
- TCP
- 本机需要能出网访问
8.153.84.140:7000。
本地服务监听检查
frpc 会把流量转发到 127.0.0.1:9000-9009,因此本机服务需要监听在 0.0.0.0 或 127.0.0.1:
bash
ss -tlnp | grep -E ':(900[0-9])\b'当前本机 9000 已有 Python 进程在监听(0.0.0.0:9000),其余端口需由业务自行启动。
停止/卸载
bash
# 服务端
systemctl stop frps
systemctl disable frps
rm -f /usr/local/bin/frps /etc/systemd/system/frps.service /etc/frp/frps.toml
# 客户端
systemctl stop frpc
systemctl disable frpc
rm -f /usr/local/bin/frpc /etc/systemd/system/frpc.service /etc/frp/frpc.toml