温馨提示×

centos iptables怎样限制ip

小樊
37
2026-09-24 00:09:05
栏目: 智能运维

在 CentOS 中,使用 iptables 限制 IP(封禁或允许)通常有以下几种常见场景。下面以 CentOS 6 / 7(未使用 firewalld) 为例说明。


一、禁止某个 IP 访问(封禁 IP)

1. 禁止单个 IP 访问所有端口

iptables -I INPUT -s 192.168.1.100 -j DROP

或(更严格,直接拒绝并返回)

iptables -I INPUT -s 192.168.1.100 -j REJECT

区别:

  • DROP:直接丢弃,对方无响应
  • REJECT:明确拒绝,对方立刻收到错误

2. 禁止某个 IP 访问指定端口(如 22)

iptables -I INPUT -s 192.168.1.100 -p tcp --dport 22 -j DROP

3. 禁止一个 IP 段

iptables -I INPUT -s 192.168.1.0/24 -j DROP

二、只允许某些 IP 访问(白名单)

1. 只允许某个 IP 访问 22 端口

iptables -I INPUT -p tcp --dport 22 -s 192.168.1.50 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

⚠️ 注意:

  • ACCEPT 要用 -I(插入到前面)
  • DROP 用 -A(追加在后面)

2. 只允许内网访问

iptables -I INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -j DROP

三、解除 IP 限制

查看规则及编号

iptables -L INPUT -n --line-numbers

删除指定规则(如第 1 条)

iptables -D INPUT 1

四、保存 iptables 规则(非常重要)

CentOS 6

service iptables save

CentOS 7(iptables 服务)

iptables-save > /etc/sysconfig/iptables

或

systemctl restart iptables

五、临时 vs 永久

  • 以上规则 重启后会失效
  • 必须执行保存操作

六、替代方案(推荐)

如果是 CentOS 7/8,建议使用:

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.100 reject'
firewall-cmd --reload

如果你能告诉我:

  • CentOS 版本
  • 是要 封 IP / 只允许 IP / 限制端口
  • 是用于 服务器安全 / 防爆破 / 内网控制

我可以给你更精确的配置示例。

0 踩