frp是宝塔面板内网穿透最稳定可控的方案,无需第三方域名、不受限速断连限制;通过宝塔插件一键安装服务端(7000/7500端口需放行),客户端配置须确保server_addr为公网IP、local_ip=127.0.0.1、remote_port未被拦截,并关闭宝塔“禁止外部访问”及放行8888端口。

frp 是目前在宝塔面板上实现内网穿透最稳定、可控性最强的方案。它不依赖第三方域名解析服务,也不受免费版限速/断连限制,只要服务端有公网 IP 和基础带宽,就能长期稳定运行。
用宝塔插件一键安装 frp 服务端
如果你的宝塔面板是 7.9.0+ 版本(2026 年主流版本),直接走插件路线最省事,避免手写配置出错:
- 进入「软件商店」→ 搜索「
frp」→ 找到官方或高评分第三方插件(如“FRP 内网穿透服务端”) - 点击安装,插件会自动下载对应架构的
frp二进制文件(x86_64或aarch64),并创建/www/wwwroot/frp/目录 - 安装完成后,插件通常会开放两个端口:
7000(客户端通信端口)和7500(Web 管理后台),记得去「安全」→「防火墙」里放行这两个端口 - 访问
http://你的公网IP:7500,用插件生成的账号密码登录,就能看到实时连接状态和代理列表
注意:插件默认使用 token 认证,frps.toml 中的 auth.token 值必须和客户端严格一致,大小写敏感。
frpc 客户端配置常见错误点
内网机器(装了宝塔的那台)跑的是 frpc,最容易出问题的地方不是语法,而是网络层连通性判断:
-
server_addr必须填公网服务器的真实 IP,不能填域名(除非你已配好本地/etc/hosts或 DNS) -
local_ip要设为127.0.0.1,不是内网 IP——因为宝塔面板默认只监听本地回环,0.0.0.0:8888是禁用的 -
remote_port选一个没被云厂商安全组拦截的端口(比如8080、9000),别硬用80或443,很多轻量服务器默认封这些端口 - 如果启动后日志卡在
login to server failed,优先检查服务端frps是否真在运行:systemctl status frps,再看ss -lntp | grep :7000是否有监听
映射宝塔面板时必须绕开的两个坑
即使 frpc 显示连接成功,打开 http://公网IP:remote_port 还是白屏或 502,大概率掉进了下面这两个坑:
- 宝塔面板本身没开启「允许远程访问」:进宝塔 → 「安全」→ 找到
8888端口规则 → 点击「放行」;再进「面板设置」→ 把「禁止外部访问面板」选项关掉 - 内网机器防火墙拦截了
127.0.0.1:8888的回环请求:CentOS 执行firewall-cmd --permanent --add-port=8888/tcp,Ubuntu 执行ufw allow 8888,然后重载规则 - 不要试图把
local_port改成其他值(比如80)来“绕过”宝塔限制——frpc只能转发它实际能连上的端口,而宝塔不会响应非8888的请求
为什么不用花生壳或 ZeroTier?
花生壳免费版强制二级域名、HTTPS 不可用、每小时可能断连一次,调试时反复刷新页面很容易误判是配置问题;ZeroTier 虽然组网干净,但它本质是虚拟局域网,要让外网用户访问,还得额外配端口转发或反向代理,反而增加一层复杂度。而 frp 的 tcp 类型直通模式,就是把公网 IP 的某个端口原样转给内网 127.0.0.1:8888,链路最短、故障点最少。
真正麻烦的从来不是配置本身,而是确认每一跳都畅通:服务端 frps 在跑 → 客户端能连上 7000 → 宝塔确实在监听 8888 → 防火墙没拦本地回环 → 外网浏览器没被运营商拦截非标端口。少验其中一环,就容易花两小时调一个其实早就通了的服务。


















