防火墙与端口
云服务器的端口要经过两层:
- 控制台防火墙 / 安全组(云平台侧)
- 系统防火墙(服务器内部,如
ufw、firewalld)
只开一层,外面还是进不来。这是「网站打不开」最常见的原因。
常见端口
| 端口 | 用途 | 建议 |
|---|---|---|
| 22 | SSH(Linux) | 建议限制来源 IP,或改端口 |
| 3389 | 远程桌面(Windows) | 尽量不要对全网开放 |
| 80 | HTTP | 建站需要 |
| 443 | HTTPS | 建站需要 |
| 3306 | MySQL | 不要对公网开放 |
| 6379 | Redis | 不要对公网开放 |
| 8888 / 888 | 面板类 | 限制来源 IP |
数据库和缓存只给本机或内网用。真要远程连,走 SSH 隧道,不要把端口直接暴露。
第一步:确认服务在监听
bash
ss -lntp | grep -E ':80|:443|:22'如果没有输出,说明服务没起来,先解决服务问题,防火墙放行也没用。
第二步:控制台放行
进入控制台 → 找到该服务器 → 防火墙 / 安全组 → 添加规则:
- 协议:TCP
- 端口:80(或 80,443)
- 来源:
0.0.0.0/0(对全网开放)或你的固定 IP
改完立即生效,不需要重启服务器。
第三步:系统防火墙放行
Ubuntu / Debian(ufw)
bash
ufw status
ufw allow 80/tcp
ufw allow 443/tcpCentOS / Alma / Rocky(firewalld)
bash
firewall-cmd --list-all
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload第四步:从外部验证
在你自己的电脑上执行(不是服务器上):
bash
# Linux / macOS
nc -vz 你的IP 80
curl -I http://你的IP
# Windows
Test-NetConnection 你的IP -Port 80succeeded/ 返回 HTTP 头 → 通了;timed out→ 大概率是防火墙或安全组;refused→ 端口没被监听,回到第一步。
网站能访问 IP,但域名不行
说明端口是通的,问题在 DNS 或 Web 服务配置:
ping 你的域名看解析到哪个 IP;- 确认 Nginx/Apache 里配置了该域名;
- 检查
server_name、证书和 80/443 的监听。
DNS 排查见 DNS 解析。
HTTPS 打不开但 HTTP 正常
- 443 没放行;
- 证书没配或过期;
- Nginx 没监听 443。
bash
nginx -t
ss -lntp | grep :443一个容易忽略的点
有些面板或一键脚本会自己改系统防火墙。如果你装完面板后突然连不上,先看 ufw status / firewall-cmd --list-all,再看面板自己的安全设置。