目录标题

一、防火墙工具操作端口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,可能导致规则混乱。