linux开放或关闭端口需先确认防火墙服务(firewalld/ufw/iptables),再按对应命令操作:firewalld用--add-port/--remove-port加--reload;ufw用allow/delete;还需检查服务监听、云安全组及selinux。

Linux 开放或关闭端口,核心是管理防火墙规则。默认情况下,大多数发行版使用 firewalld(如 CentOS 8/9、Fedora)或 ufw(如 Ubuntu),部分老系统或精简环境可能直接用 iptables。操作前请确认当前使用的防火墙服务,避免命令无效或冲突。
确认正在运行的防火墙服务
执行以下命令查看启用并运行中的防火墙:
- sudo systemctl status firewalld —— 查 firewalld 状态
- sudo systemctl status ufw —— 查 ufw 状态
- sudo iptables -L -n —— 直接查 iptables 规则(无服务管理)
若 firewalld 和 ufw 同时启用,可能产生冲突,建议只保留一个。通常 Ubuntu 默认用 ufw,CentOS/RHEL 默认用 firewalld。
用 firewalld 开放或关闭端口
firewalld 使用区域(zone)管理规则,默认常用 zone 是 public。操作需重载配置生效:
- 开放 TCP 端口(例如 8080):sudo firewall-cmd --permanent --add-port=8080/tcp
- 开放 UDP 端口(例如 53):sudo firewall-cmd --permanent --add-port=53/udp
- 关闭已开放的端口:sudo firewall-cmd --permanent --remove-port=8080/tcp
- 重新加载使规则生效:sudo firewall-cmd --reload
- 查看当前开放的端口:sudo firewall-cmd --list-ports
用 ufw 开放或关闭端口
ufw 命令更简洁,适合桌面或轻量服务器:
- 确保 ufw 已启用:sudo ufw enable(首次启用会自动启动服务)
- 开放 TCP 端口:sudo ufw allow 8080 或指定协议 sudo ufw allow 8080/tcp
- 开放 UDP 端口:sudo ufw allow 53/udp
- 删除某条规则(按编号或按规则内容):sudo ufw delete allow 8080 或先运行 sudo ufw status numbered 查编号再删
- 查看当前规则:sudo ufw status verbose
临时测试:不用防火墙也能验证端口通断
防火墙只是控制进出流量的一环。即使端口在防火墙中开放,还需确保:
- 对应服务已启动并监听该端口(如 sudo ss -tlnp | grep :8080)
- 没有云平台安全组或物理防火墙拦截(如阿里云、AWS 控制台需单独放行)
- 本地 SELinux(RHEL/CentOS)未阻止(可临时设为 permissive 测试:sudo setenforce 0)
验证端口是否真正可达,可在本机用 telnet 127.0.0.1 8080 或远程用 nc -zv your-server-ip 8080 测试连接。










