首页/网络与部署/服务器能连上,网站却打不开:4 步排查 80/443 端口问题
网络与部署

服务器能连上,网站却打不开:4 步排查 80/443 端口问题

SSH能连、域名解析正常、Nginx也启动了,但网站打不开?本文从服务监听、监听地址、防火墙/安全组、Nginx代理四个维度,系统讲解端口排查方法。

发布时间:2026年3月31日 07:56阅读量:3

部署网站时,一个非常常见的现象是:

  • 服务器能 SSH 登录
  • 域名也解析到了服务器
  • Nginx 看起来也启动了
  • 但浏览器就是打不开网站

这类问题,十有八九不是代码问题,而是 端口、监听、防火墙、反向代理 这四层里有一层没打通。

一、先确认服务到底有没有在监听

先别急着看域名,先看本机服务是否真的起来了。

bash
ss -ltnp | grep -E '80|443|3000'

重点看三件事:

  • 有没有进程监听 80 / 443
  • Nginx 是否真的在监听
  • 后端服务是否真的在监听 3000 之类的业务端口

如果这里看不到监听,外面当然访问不到。

二、确认监听地址是不是写错了

这是最容易忽略的坑。

比如你的 Node.js 服务只监听了:

127.0.0.1:3000

那它只能本机访问。

如果你希望被容器、局域网、反向代理之外的其他方式访问,就要留意是否应该监听:

0.0.0.0:3000

一句话记住:

  • 127.0.0.1 = 只本机可访问
  • 0.0.0.0 = 所有网卡都可访问

很多"服务启动了但访问不到",根因就是监听地址不对。

三、确认防火墙和云安全组没拦截

本机服务正常,不代表公网就能进来。

你要检查两层。

1. 服务器本机防火墙

例如:

bash
ufw status

或者:

bash
firewall-cmd --list-ports

2. 云服务器安全组

如果你用的是云服务器,还要去控制台看:

  • 80 端口是否放行
  • 443 端口是否放行
  • 是否限制了来源 IP

很多人只配了 Nginx,忘了开安全组,结果网站永远打不开。

四、确认 Nginx 代理目标是不是活的

如果你是 Nginx 反向代理 Node.js,最关键的一步是:

bash
curl http://127.0.0.1:3000

如果这一步失败,说明不是 Nginx 问题,而是你后端服务根本没起来,或者端口写错了。

再检查 Nginx 配置:

nginx
location / {
  proxy_pass http://127.0.0.1:3000;
}

你要确保:

  • proxy_pass 端口对
  • 后端服务真实存在
  • 协议没写错
  • 配置改完后执行过 nginx -treload

例如:

bash
nginx -t
systemctl reload nginx

最后给你一套最实用的排查顺序

网站打不开时,按这个顺序查最快:

  1. 先看本机服务是否监听
  2. 再看监听地址是否正确
  3. 再看防火墙 / 安全组是否放行
  4. 最后看 Nginx 代理是否指向了正确端口

总结

网站打不开,别上来就怀疑代码。

很多部署问题,本质上就四个字:路没打通

你只要把这四层查清楚:

  • 服务监听
  • 监听地址
  • 防火墙 / 安全组
  • Nginx 代理

大多数网络与部署问题都能很快定位。

问题求助

没能解决你的问题?直接问我

如果你遇到任何技术问题无法解决,可以在这里提交求助。我会尽快查看并回复你。

支持作者

如果这篇文章帮到了你,可以支持我

扫码打赏,支持我持续更新原创排障文章。

打赏二维码