在 CentOS 系统中,使用 iptables 禁止访问(如禁止某个 IP、端口、协议等)是非常常见的操作。下面按常见场景给你详细说明,并附上永久生效方法。
iptables -L -n -v
iptables -A INPUT -s 192.168.1.100 -j DROP
✅ 效果:
192.168.1.100 无法访问本机任何端口iptables -A OUTPUT -d 192.168.1.100 -j DROP
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 22 -j DROP
⚠️ 注意:禁止 22 端口可能导致你无法远程登录服务器!
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j DROP
✅ 仅禁止 192.168.1.100 访问本机 80 端口
iptables -P INPUT DROP
⚠️ 非常危险,会导致服务器无法远程访问
✅ 建议先放行 SSH:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
| 动作 | 说明 |
|---|---|
| DROP | 直接丢弃,对方无响应 |
| REJECT | 明确拒绝,返回错误 |
iptables -A INPUT -s 192.168.1.100 -j REJECT
iptables -L INPUT --line-numbers
iptables -D INPUT 3
service iptables save
或:
iptables-save > /etc/sysconfig/iptables
CentOS 7 默认使用 firewalld,iptables 可能不生效。
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables
# 禁止某 IP
iptables -A INPUT -s 1.2.3.4 -j DROP
# 禁止访问 3306
iptables -A INPUT -p tcp --dport 3306 -j DROP
# 禁止某 IP 访问 8080
iptables -A INPUT -s 1.2.3.4 -p tcp --dport 8080 -j DROP
如果你能告诉我:
我可以给你最安全、最精准的命令 ✅