Skip to content

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-9443localIP=192.168.150.200(kube-vip VIP)、localPort=443remotePort=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 认证 TokenVju0TaOYT1HQsybxylcxQWhBhfcpweWV
Dashboard 端口7500
Dashboard 用户admin
Dashboard 密码xxx

如需修改凭据,请同时修改 frps.tomlfrpc.toml,保持两者一致。

文件说明

文件用途部署位置
frps.tomlfrp 服务端配置8.153.84.140/etc/frp/frps.toml
frpc.tomlfrp 客户端配置本机 /etc/frp/frpc.toml
install-frps.sh安装并启动 frps8.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 -f

3. 验证映射

在任意可访问公网的主机上测试:

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(映射的业务端口)
  • 本机需要能出网访问 8.153.84.140:7000

本地服务监听检查

frpc 会把流量转发到 127.0.0.1:9000-9009,因此本机服务需要监听在 0.0.0.0127.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