在 Debian 下使用 iptables 封锁端口,常见做法如下(以 TCP 端口 8080 为例):
iptables -A INPUT -p tcp --dport 8080 -j DROP
或拒绝(返回错误):
iptables -A INPUT -p tcp --dport 8080 -j REJECT
iptables -A INPUT -p udp --dport 53 -j DROP
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j DROP
iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -L -n --line-numbers
先查编号:
iptables -L INPUT -n --line-numbers
再删除(例如第 3 条):
iptables -D INPUT 3
iptables-persistentapt update
apt install iptables-persistent
保存规则:
netfilter-persistent save
或:
iptables-save > /etc/iptables/rules.v4
✅ 禁止外部 SSH(22):
iptables -A INPUT -p tcp --dport 22 -j DROP
✅ 只允许本机访问 3306(MySQL):
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP
DROP:直接丢包(更隐蔽)REJECT:明确拒绝(更安全调试)如果你有 具体端口 / 场景(如 Docker、NAT、只允许某个 IP),可以告诉我,我给你精准规则。