宝塔面板安装后显示内网IP不代表未获取公网IP,而是未检测到可路由公网出口;执行bt 14命令可实时探测当前识别的外网地址,若返回http://120.25.237.126:8888类地址说明链路通畅,若仍为内网地址则需排查云平台EIP配置、port.pl文件完整性、安全组及系统防火墙TCP 8888端口双放行。

宝塔面板安装后显示内网IP(如 http://192.168.1.100:8888),不代表它“没获取到公网IP”,而是它没检测到有效的、可路由的公网出口——这通常不是宝塔的问题,而是网络链路某处被拦住了。
执行 bt 14 查看当前识别结果
这是唯一能实时反映宝塔当前“看到”的外网地址的命令。它不读缓存,直接探测:/www/server/panel/data/port.pl 文件内容 + 安全组连通性 + 本地路由出口。
- 如果回显是
http://120.25.237.126:8888这类公网地址,说明链路通畅,问题可能出在浏览器访问方式或DNS上 - 如果回显仍是
http://192.168.x.x:8888或http://127.0.0.1:8888,说明宝塔根本没感知到公网IP,要往下排查 - 必须在服务器本地 SSH 中执行,远程调用无效
检查云平台是否真分配了公网IP
很多新手误以为买了ECS就自动有公网IP,其实阿里云/腾讯云默认不开通弹性公网IP(EIP),或者只给内网IP。
- 登录云控制台 → 找到对应实例 → 查看“公网IP”字段:为空或显示“无”,就是没配
- 若已绑定EIP,但
bt 14仍显示内网IP,执行curl ifconfig.me对比输出:两者不一致,说明EIP没生效或NAT规则异常 - 部分轻量应用服务器(如腾讯云Lighthouse)需单独开启“公网带宽”,不是绑定EIP就完事
确认 port.pl 文件未损坏或端口错配
这个文件记录了面板监听端口,一旦被手动改乱或残留旧配置,bt 14 就会读出错误端口(比如 :888 而非 :8888),甚至导致识别逻辑跳过公网探测。
- 运行
cat /www/server/panel/data/port.pl,确认内容仅为纯数字(如8888),不能带空格、字母、冒号或换行符 - 如果内容异常,直接删掉:
rm -f /www/server/panel/data/port.pl - 再执行
bt restart,面板会重建该文件并重新探测端口与出口 - 注意:不要用
bt reload,它不重建port.pl
安全组和系统防火墙必须双放行,且协议限定为TCP
只开安全组或只开系统防火墙,都不够。而且很多云平台默认只放 22、80、443,8888 得手动加,还必须指定协议为 TCP(UDP 不行)。
- 阿里云/腾讯云:安全组 → 入方向 → 新建规则 → 类型选“自定义TCP”,端口填
8888,源IP填0.0.0.0/0 - CentOS 7+:
firewall-cmd --permanent --add-port=8888/tcp+firewall-cmd --reload - Ubuntu:
ufw allow 8888/tcp,再确认ufw status显示Status: active - 别信“开了80端口就能通8888”——端口是独立的,每个都得单独放
真正卡住人的地方,往往不是“不知道要开什么”,而是开了安全组却忘了系统防火墙,或者开了防火墙却填错了协议类型;还有人改了面板端口但没同步更新 port.pl,导致 bt 14 读出一个根本不存在的端口,整个识别流程就静默失败了。


















