温馨提示×

Debian iptables如何禁止端口

小樊
55
2026-08-14 05:17:24
栏目: 智能运维

Debian 系统中,使用 iptables 禁止(屏蔽)某个端口,常见做法如下。


一、禁止某个端口(以 TCP 80 为例)

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

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

说明:

  • -A INPUT:追加到 INPUT 链(进入本机的流量)
  • -p tcp:协议为 TCP
  • --dport 80:目标端口 80
  • -j DROP:直接丢弃(不回应)

✅ 效果:外部无法访问本机 80 端口


2️⃣ 禁止 出站 访问端口

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

✅ 效果:本机无法访问外部的 80 端口


3️⃣ 禁止 UDP 端口

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

二、禁止端口范围

sudo iptables -A INPUT -p tcp --dport 8000:9000 -j DROP

三、禁止某个 IP 访问指定端口

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

四、查看当前规则

sudo iptables -L -n -v

五、删除已添加的规则

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

sudo iptables -L INPUT --line-numbers
sudo iptables -D INPUT 3

方法 2:直接删除规则

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

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

Debian 默认 iptables 规则重启会丢失

✅ 解决方法(推荐)

安装持久化工具

sudo apt update
sudo apt install iptables-persistent

保存规则

sudo netfilter-persistent save

规则文件位置

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

七、常见端口示例

端口 用途 禁止示例
22 SSH iptables -A INPUT -p tcp --dport 22 -j DROP
80 HTTP iptables -A INPUT -p tcp --dport 80 -j DROP
443 HTTPS iptables -A INPUT -p tcp --dport 443 -j DROP

八、建议(生产环境)

  • 禁止端口前 确认不是 SSH 端口
  • 建议先用 -j REJECT(有提示)测试,再改为 -j DROP
sudo iptables -A INPUT -p tcp --dport 80 -j REJECT

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

  • Debian 版本(10 / 11 / 12)
  • 禁止访问 还是 禁止对外访问
  • 是否使用 nftables

我可以给你更精确的方案 ✅

0