温馨提示×

ubuntu iptables如何禁止端口

小樊
44
2026-08-06 22:12:28
栏目: 智能运维

在 Ubuntu 中,可以使用 iptables 来禁止(屏蔽)某个端口。下面按常见场景给你示例,并说明注意事项。


一、禁止某个端口(常用)

1️⃣ 禁止 入站 端口(最常用)

例如:禁止 8080 端口

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

如果是 UDP:

sudo iptables -A INPUT -p udp --dport 8080 -j DROP

✅ 说明:

  • -A INPUT:追加到 INPUT 链
  • -p tcp/udp:协议
  • --dport:目标端口
  • -j DROP:直接丢弃(不返回任何信息)

2️⃣ 禁止 出站 端口

例如:禁止本机访问外部 8080 端口

sudo iptables -A OUTPUT -p tcp --dport 8080 -j DROP

3️⃣ 禁止指定 IP 访问某端口

禁止 192.168.1.100 访问本机 3306 端口:

sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 3306 -j DROP

二、使用 REJECT(可选)

如果你想让对方“知道端口被拒绝”,而不是“一直等待”:

sudo iptables -A INPUT -p tcp --dport 8080 -j REJECT

区别:

  • DROP:悄悄丢弃(更安全)
  • REJECT:明确拒绝(有 ICMP 响应)

三、查看当前规则

sudo iptables -L -n -v

查看指定表:

sudo iptables -L INPUT -n -v

四、删除规则

方法 1:按规则删除(推荐)

先查看规则编号:

sudo iptables -L INPUT --line-numbers

假设第 3 条规则要删除:

sudo iptables -D INPUT 3

方法 2:按内容删除

sudo iptables -D INPUT -p tcp --dport 8080 -j DROP

五、⚠️ 重要:规则重启后失效

iptables 规则 重启后会丢失,需要保存。

Ubuntu 20.04 / 22.04 保存方法

sudo apt install iptables-persistent
sudo netfilter-persistent save

保存位置:

/etc/iptables/rules.v4
/etc/iptables/rules.v6

六、常见端口示例

目的 命令
禁止 SSH(22) iptables -A INPUT -p tcp --dport 22 -j DROP
禁止 MySQL(3306) iptables -A INPUT -p tcp --dport 3306 -j DROP
禁止 Redis(6379) iptables -A INPUT -p tcp --dport 6379 -j DROP

七、建议(重要)

  • 远程服务器操作前,先放行 SSH 端口
  • ✅ 推荐用 iptables -I INPUT 1 ... 把允许规则放在前面
  • ✅ 新系统建议用 ufw(更简单)

如果你愿意,可以告诉我:

  • 云服务器 / 本地服务器
  • 要禁止 哪个端口
  • 禁止访问还是禁止对外访问

我可以帮你写一套完整、安全的规则。

0