Skip to content

防火墙与端口 ​

云服务器的端口要经过两层:

  1. 控制台防火墙 / 安全组(云平台侧)
  2. 系统防火墙(服务器内部,如 ufw、firewalld)

只开一层,外面还是进不来。这是「网站打不开」最常见的原因。

常见端口 ​

端口用途建议
22SSH(Linux)建议限制来源 IP,或改端口
3389远程桌面(Windows)尽量不要对全网开放
80HTTP建站需要
443HTTPS建站需要
3306MySQL不要对公网开放
6379Redis不要对公网开放
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/tcp

CentOS / 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 80
  • succeeded / 返回 HTTP 头 → 通了;
  • timed out → 大概率是防火墙或安全组;
  • refused → 端口没被监听,回到第一步。

网站能访问 IP,但域名不行 ​

说明端口是通的,问题在 DNS 或 Web 服务配置:

  1. ping 你的域名 看解析到哪个 IP;
  2. 确认 Nginx/Apache 里配置了该域名;
  3. 检查 server_name、证书和 80/443 的监听。

DNS 排查见 DNS 解析。

HTTPS 打不开但 HTTP 正常 ​

  • 443 没放行;
  • 证书没配或过期;
  • Nginx 没监听 443。
bash
nginx -t
ss -lntp | grep :443

一个容易忽略的点 ​

有些面板或一键脚本会自己改系统防火墙。如果你装完面板后突然连不上,先看 ufw status / firewall-cmd --list-all,再看面板自己的安全设置。

魔力猫 · 让云触手可及