Linux 服务器如何放行端口
在 Linux 服务器上部署网站、面板、数据库或其他服务时,经常需要放行端口。比如网站常用 80、443,SSH 常用 22,宝塔面板常用 8888,某些程序可能使用自定义端口。
如果端口没有放行,即使程序已经启动,外部也无法访问。
一、先确认服务是否监听端口
放行端口前,建议先确认程序是否真的在监听该端口。
例如查看 8080 端口:
ss -tunlp | grep 8080
如果看到类似:
LISTEN 0 128 0.0.0.0:8080
说明服务已经监听 8080 端口。
如果没有输出,说明程序可能没有启动,或者监听的不是这个端口。
二、使用 ufw 放行端口
Ubuntu、Debian 上常见 ufw 防火墙。
查看 ufw 状态:
ufw status
放行 TCP 端口:
ufw allow 8080/tcp
放行 UDP 端口:
ufw allow 8080/udp
重新加载:
ufw reload
查看规则:
ufw status numbered
如果要删除规则,可以根据编号删除:
ufw delete 编号
三、使用 firewalld 放行端口
CentOS、Rocky Linux、AlmaLinux 常见 firewalld。
查看防火墙状态:
systemctl status firewalld
放行 TCP 端口:
firewall-cmd --permanent --add-port=8080/tcp
重新加载配置:
firewall-cmd --reload
查看已放行端口:
firewall-cmd --list-ports
删除端口规则:
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload
四、使用 iptables 放行端口
部分老系统或精简系统可能使用 iptables。
放行 TCP 端口:
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
查看规则:
iptables -L -n --line-numbers
注意:iptables 规则默认可能重启后失效,需要额外保存规则。
Debian / Ubuntu 可以安装:
apt install iptables-persistent -y
netfilter-persistent save
CentOS 可以使用:
service iptables save
五、云服务器还要放行安全组
很多新手只修改了系统防火墙,但仍然无法访问端口,这是因为云服务器还有一层安全组。
常见云厂商都需要在控制台放行端口:
阿里云:安全组
腾讯云:防火墙/安全组
华为云:安全组
AWS:Security Group
需要添加入站规则:
协议:TCP
端口:8080
来源:0.0.0.0/0 或指定 IP
如果是 SSH、数据库、后台面板等敏感端口,不建议开放给所有 IP,最好限制为自己的固定 IP。
六、如何测试端口是否开放
本地电脑可以测试:
telnet 服务器IP 8080
或:
nc -vz 服务器IP 8080
也可以用浏览器访问:
http://服务器IP:8080
如果是 HTTPS 服务:
https://服务器IP:8080
七、常见端口参考
22:SSH
80:HTTP
443:HTTPS
3306:MySQL
5432:PostgreSQL
6379:Redis
8888:宝塔面板
8080:常见 Web 应用
8443:常见 HTTPS 面板或服务
数据库、Redis、后台管理端口不建议直接暴露公网。
八、常见问题
1. 端口放行了还是访问不了
可能原因:
程序没有启动
程序只监听 127.0.0.1
云安全组没有放行
系统防火墙没有放行
服务端口写错
运营商或机房屏蔽端口
2. 服务只监听 127.0.0.1
如果看到:
127.0.0.1:8080
说明只能本机访问,外部访问不到。需要把程序监听地址改成:
0.0.0.0
或服务器内网/公网 IP。
总结
Linux 服务器放行端口一般要检查三层:
程序是否监听端口
系统防火墙是否放行
云服务器安全组是否放行
只有这三层都没问题,外部才能正常访问该端口。








暂无评论内容