目录标题
一、防火墙工具操作端口1. UFW(Ubuntu/Debian默认工具)2. Firewalld(CentOS/RHEL/Fedora默认工具)3. iptables(通用传统工具)
二、网络诊断与端口检测1. 查看端口监听状态2. 测试端口连通性3. 查看端口占用进程
三、快速参考表四、常见问题五、注意事项
以下是Linux系统中针对端口操作的常用命令总结,涵盖端口开放、关闭、检测等场景,适用于防火墙管理及网络诊断:
一、防火墙工具操作端口
1. UFW(Ubuntu/Debian默认工具)
# 开放TCP 80端口
sudo ufw allow 80/tcp
# 开放UDP 53端口
sudo ufw allow 53/udp
# 关闭端口
sudo ufw deny 22/tcp
# 允许特定IP访问某端口
sudo ufw allow from 192.168.1.100 to any port 22
# 删除规则
sudo ufw delete allow 80/tcp
# 查看所有端口规则
sudo ufw status numbered
2. Firewalld(CentOS/RHEL/Fedora默认工具)
# 开放TCP 80端口(永久生效)
sudo firewall-cmd --permanent --add-port=80/tcp
# 开放UDP端口
sudo firewall-cmd --permanent --add-port=53/udp
# 关闭端口
sudo firewall-cmd --permanent --remove-port=22/tcp
# 允许IP段访问某端口
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 port port=80 protocol=tcp accept'
# 重载配置生效
sudo firewall-cmd --reload
# 查看所有开放端口
sudo firewall-cmd --list-ports
3. iptables(通用传统工具)
# 允许TCP 80端口入站
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许UDP 53端口
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
# 拒绝特定端口
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
# 保存规则(Debian/Ubuntu)
sudo iptables-save > /etc/iptables/rules.v4
# 查看当前规则
sudo iptables -L -n --line-numbers
二、网络诊断与端口检测
1. 查看端口监听状态
# 查看所有监听端口(TCP/UDP)
sudo netstat -tuln
# 快速替代命令(推荐)
sudo ss -tuln
# 查找特定进程使用的端口(如80)
sudo lsof -i :80
2. 测试端口连通性
# 检查本地端口是否开放
telnet 127.0.0.1 80
# 检查远程端口是否可达(替换IP和端口)
nc -zv 192.168.1.1 22
# 扫描端口范围(nmap工具)
sudo nmap -p 1-1000 192.168.1.1
3. 查看端口占用进程
# 查找占用80端口的进程
sudo lsof -i :80
# 通过进程名查找端口
sudo ss -tulpn | grep nginx
三、快速参考表
操作命令示例开放TCP端口(UFW)sudo ufw allow 80/tcp开放TCP端口(Firewalld)sudo firewall-cmd --permanent --add-port=80/tcp && firewall-cmd --reload拒绝端口(iptables)sudo iptables -A INPUT -p tcp --dport 22 -j DROP查看监听端口sudo ss -tuln检测远程端口nc -zv 192.168.1.1 22
四、常见问题
端口已开放但无法访问?
检查防火墙是否生效:sudo ufw status 或 firewall-cmd --list-all确认服务正在监听:sudo ss -tuln | grep 端口号检查SELinux:临时禁用测试 sudo setenforce 0 如何永久保存iptables规则?
Debian/Ubuntu:sudo iptables-save > /etc/iptables/rules.v4CentOS/RHEL:安装iptables-services后使用 service iptables save 批量开放端口范围
# Firewalld开放5000-6000端口
sudo firewall-cmd --permanent --add-port=5000-6000/tcp
# iptables开放端口范围
sudo iptables -A INPUT -p tcp --dport 5000:6000 -j ACCEPT
五、注意事项
权限问题:大多数端口操作需要 sudo 或 root 权限。配置持久化:Firewalld需加 --permanent 并重载,iptables需手动保存规则。多工具冲突:避免同时使用UFW/Firewalld和iptables,可能导致规则混乱。