linux开放80端口

 人参与 | 时间:2026-10-17 07:10:03

linux开放80端口

刚装好的开口Ubuntu Server,Nginx配好了,放端域名解析也指向了服务器IP,开口浏览器一敲回车——连接被拒绝。放端这事儿我碰过不下十回,开口每次都是放端同一个原因:防火墙压根没放行80端口。

别急着改配置,开口先确认服务真的放端在跑。ss -tlnp | grep :80,开口这条命令能让你看到谁在监听80。放端如果输出空荡荡的开口,那问题不在防火墙,放端是开口Nginx没起来。systemctl status nginx看一眼,放端多半是开口配置文件写错了。

确认服务活着,那就轮到防火墙。Ubuntu默认装的是ufw,Debian可能连ufw都没有。先查状态:sudo ufw status。如果是inactive,恭喜你,防火墙压根没开,那问题八成出在云服务商的安全组上——阿里云、腾讯云、AWS都在控制台里有独立于系统防火墙的规则,那个忘了放行,系统里怎么折腾都没用。

ufw是active状态的话,直接放行:sudo ufw allow 80/tcp。它会返回一条Rule added,完事。再跑一遍status,能看到80/tcp出现在列表里。这时候再刷新浏览器,应该能出页面了。

CentOS或者Rocky Linux这类用firewalld的,命令不太一样。sudo firewall-cmd --permanent --add-port=80/tcp,然后sudo firewall-cmd --reload重载配置。注意那个--permanent参数,不加的话重启防火墙规则就丢了。我当年第一次配CentOS就栽在这上面——当时明明放行了,重启后网站又打不开,排查半天才发现是忘了加permanent。

还有个容易忽略的坑:SELinux。这玩意儿在CentOS上是默认enforcing的,它会拦掉Nginx对非标准端口的访问。如果你用的是80端口,一般没问题,但万一你改了端口,比如8080,那就得sudo semanage port -a -t http_port_t -p tcp 8080。80的话倒不用操心这个。

最后说个野路子。如果你只是想临时测一下,不管防火墙规则,直接sudo ufw disable把防火墙整个关了也行,但生产环境千万别这么干。我见过有人图省事关掉防火墙跑了一个月,后来被扫描器盯上,数据库被人拖走了——那滋味不好受。

对了,改完防火墙规则后,记得从另一台机器上测,别在自己本机测。本机能访问不代表外网能通——你测试的流量可能根本没走防火墙那张网卡。用手机流量访问一下最靠谱。

80端口放行就这么点事。先看服务,再看防火墙,最后确认云安全组,三步走完基本能通。要是还不行,tcpdump抓包看看数据包到没到服务器,那就得往更深了挖。

顶: 3踩: 4427