1.2 面板打不开:端口、防火墙、安全组
先给一个判断
面板打不开,先分清是“服务没起来”还是“门没开”。 服务没起来找 1pctl status;门没开就要一道一道查:本地端口监听 → 主机防火墙 → 云安全组。三道门,少开一道都打不开。
现象分类:你属于哪一种
| 浏览器表现 | 大概率原因 | 第一条命令 |
|---|---|---|
| 拒绝连接(ERR_CONNECTION_REFUSED) | 端口没监听,或服务没起来 | ss -ltnp |
| 一直转圈然后超时 | 防火墙或安全组没放行 | telnet IP 端口 |
| 能打开但提示入口不存在 | 安全入口不对(见 1.3 节) | 1pctl user-info |
| 只有自己能打开,别人打不开 | 监听地址只听了 127.0.0.1 | ss -ltnp |
关键区分:拒绝连接 = 服务层问题;超时 = 网络层问题。这两个错的离谱了,改半天也白搭。
排查:按顺序走,别跳步
第一步:服务起来了吗
1pctl status
如果服务没起来,先看系统日志找原因:
# 1Panel 的系统服务状态
systemctl status 1panel.service
# 看最近的报错
journalctl -u 1panel.service --no-pager -n 50
服务起不来常见原因:端口被占用、配置文件被改坏、磁盘满了。
第二步:端口在监听吗
# 假设面板端口是 8090
ss -ltnp | grep 8090
正常的输出应该包含 0.0.0.0:8090(监听所有地址)。如果看到的是 127.0.0.1:8090,说明只听了本地,外面永远连不上。
本地验证一下:
curl -I http://127.0.0.1:8090
本地能通、外面不通,就是网络层的问题,继续往下查。
第三步:主机防火墙放行了吗
1Panel 能管理 Firewalld、UFW 和 iptables 三种防火墙。先确认你用的是哪种:
| 系统 | 防火墙 | 检查命令 |
|---|---|---|
| RedHat / CentOS | Firewalld | firewall-cmd --list-ports |
| Ubuntu / Debian | UFW | ufw status |
| 其他 | iptables | iptables -L -n |
Firewalld 放行面板端口:
# 放行面板端口(把 8090 换成你的端口)
firewall-cmd --zone=public --add-port=8090/tcp --permanent
firewall-cmd --reload
# 确认规则在不在
firewall-cmd --list-ports
UFW 放行面板端口:
ufw allow 8090/tcp
ufw status
血泪提醒:如果你是远程连的服务器,开防火墙之前一定要先放行 SSH 端口,否则防火墙一开,你自己就锁在外面了。官方防火墙文档里专门强调了这一点。
# Firewalld 先放行 SSH
firewall-cmd --zone=public --add-port=22/tcp --permanent
# UFW 先放行 SSH
ufw allow 22/tcp
一个官方 FAQ 记录的坑:Fedora 37 上装完面板,防火墙规则加了但不生效。原因是 Fedora 37 的默认区域不是 public。改回来就好:
firewall-cmd --set-default-zone=public
firewall-cmd --reload
第四步:云安全组放行了吗
这是最容易漏的一道门,也是面板管不了的一道门。
云服务器(阿里云、腾讯云、华为云等)在系统之外还有一层安全组。你在服务器里把防火墙改出花来,安全组没放行,外面照样访问不了。
去云控制台 → 安全组 → 入方向规则 → 添加规则:
| 协议 | 端口 | 说明 |
|---|---|---|
| TCP | 8090(你的面板端口) | 面板访问 |
| TCP | 80, 443 | 网站 |
| TCP | 22 | SSH(别关) |
验证安全组是否生效,可以用外部机器直接测:
# 在别的机器上执行
curl -I http://你的服务器IP:8090
修改面板端口
如果端口冲突或者想换一个,有两种改法:
命令行(推荐,立即生效):
1pctl update port 9999
面板里改:面板设置 → 安全 → 面板端口。
改端口的三条纪律:第一,先确认新端口没被占用(
ss -ltnp | grep 9999);第二,先把新端口加进防火墙和安全组,再改;第三,改完别忘了 SSH 端口别动。顺序反了,你就会把自己锁在面板外面。
监听地址问题:只有自己能访问
如果 ss -ltnp 显示监听在 127.0.0.1,外部访问不了。可以用 1pctl 切换监听 IP:
# 监听 IPv4
1pctl listen-ip ipv4
# 监听 IPv6
1pctl listen-ip ipv6
面板里也有:面板设置 → 安全 → 监听地址。修改监听地址属于高风险操作,改之前确认 SSH 是通的,这是你最后的退路。
判断到底卡在哪一层:一张决策表
如果你懒得一道一道查,按这个顺序做,哪一步不通就是哪一层的问题:
| 步骤 | 命令 | 通的表现 | 不通说明 |
|---|---|---|---|
| 1. 服务 | 1pctl status |
显示运行中 | 面板服务本身的问题 |
| 2. 本地端口 | curl -I http://127.0.0.1:8090 |
返回 HTTP 状态码 | 端口没监听或被占用 |
| 3. 本机防火墙 | firewall-cmd --list-ports / ufw status |
能看到 8090 | 规则没加或没 reload |
| 4. 云安全组 | 外部机器 curl -I http://IP:8090 |
返回状态码 | 安全组没放行 |
先内后外:先确认本机(第 1、2 步),再查本机防火墙(第 3 步),最后查云端(第 4 步)。跳步容易得出错误结论——比如本机端口都没监听,你去改半天安全组,纯属白忙。
用面板管理防火墙规则
确认服务器的防火墙类型后,也可以直接在 1Panel 里管:系统 → 防火墙。页面提供端口规则、端口转发、IP 规则和 iptables 高级控制。
- 端口规则:协议(TCP/UDP/TCP+UDP)、端口、来源(所有 IP 或指定 IP)、策略(允许/拒绝);
- 端口转发:把访问源端口的流量转到
目标 IP:目标端口,本机转发目标填127.0.0.1; - IP 规则:指定 IP 的放行或屏蔽。
注意:面板能管的是主机防火墙,云安全组永远要去云控制台。另外,如果防火墙类型是 iptables,才能用“iptables 高级控制”页面;Firewalld 或 UFW 环境下这个页面会提示不支持。
一个完整的复现与修复
现象:腾讯云服务器,装完 1Panel,本地 curl 127.0.0.1:8090 正常,家里电脑浏览器打不开,一直转圈。
排查:
# 1. 服务正常
1pctl status
# 2. 端口监听正常,监听在 0.0.0.0
ss -ltnp | grep 8090
# 3. 防火墙——服务器上根本没开 firewalld
systemctl status firewalld
结论:防火墙没问题,卡在云安全组。
修复:登录腾讯云控制台 → 安全组 → 入站规则添加 TCP:8090 放行。立刻访问成功。
如果反复检查都没问题,还是打不开,先做一件事:
# 重启面板服务
1pctl restart
很多玄学问题,重启能解决一半。剩下的另一半,去 日志审计 → 系统日志 里看报错原文。
本节要点
- 打不开先分清“拒绝连接”(服务层)还是“超时”(网络层);
- 四步排查:
1pctl status→ss -ltnp→ 主机防火墙 → 云安全组; - 改防火墙前先放行 SSH 端口,别把自己锁外面;
- Fedora 37 防火墙规则不生效,把默认区域改成 public;
- 改面板端口的顺序:先放行新端口,再改;
- 云安全组是面板管不了的一层,最容易被漏掉。
更完整的防火墙操作说明见 1Panel 官方文档:防火墙。
下一节:面板能打开了,但密码忘了、安全入口忘了、或者被授权 IP 限制挡住了——这些都属于“登不进”,解决办法和“打不开”完全不同。
