温馨提示×

centos iptables怎么允许IP

小樊
34
2026-08-18 05:42:39
栏目: 智能运维

CentOS 上用 iptables 允许某个 IP(即放行该 IP 的访问),常见用法如下。下面按 放行整个 IP放行指定端口保存规则 的顺序说明。


一、允许某个 IP(所有访问)

允许 某个 IP 访问本机所有端口:

iptables -I INPUT -s 1.2.3.4 -j ACCEPT

含义:

  • -I INPUT:插入到 INPUT 链(接收流量)
  • -s 1.2.3.4:源 IP
  • -j ACCEPT:允许

✅ 如果你想 只允许某个 IP 访问本机,而拒绝其他 IP:

iptables -P INPUT DROP
iptables -I INPUT -s 1.2.3.4 -j ACCEPT

⚠️ 注意:
执行 -P INPUT DROP 前,一定要先允许 SSH 端口,否则会被踢出服务器。


二、只允许某 IP 访问指定端口(如 22、80)

允许某 IP 访问 SSH(22)

iptables -I INPUT -s 1.2.3.4 -p tcp --dport 22 -j ACCEPT

允许某 IP 访问 HTTP(80)

iptables -I INPUT -s 1.2.3.4 -p tcp --dport 80 -j ACCEPT

三、允许 IP 段(CIDR)

允许整个段:

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

四、删除规则(如加错了)

查看规则编号

iptables -L INPUT --line-numbers

删除指定规则

iptables -D INPUT 2

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

CentOS 6 / 老版本

service iptables save

CentOS 7+(iptables-services)

yum install -y iptables-services
systemctl enable iptables
service iptables save

否则 重启后规则会丢失


六、常见推荐安全示例(允许一个管理 IP)

iptables -P INPUT DROP
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -s 1.2.3.4 -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -s 1.2.3.4 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 1.2.3.4 -p tcp --dport 443 -j ACCEPT

七、补充:CentOS 7 默认是 firewalld

如果系统用的是 firewalld,iptables 可能不生效。可以先确认:

systemctl status firewalld

关闭 firewalld 使用 iptables

systemctl stop firewalld
systemctl disable firewalld
systemctl enable iptables
systemctl start iptables

如果你告诉我:

  • ✅ CentOS 版本
  • ✅ 想放行 哪个端口
  • ✅ 是服务器还是 NAT 网关

我可以给你一条 最精确、最安全 的命令。

0