在 CentOS 上用 iptables 允许某个 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 端口,否则会被踢出服务器。
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 192.168.1.0/24 -j ACCEPT
iptables -L INPUT --line-numbers
iptables -D INPUT 2
service iptables save
yum install -y iptables-services
systemctl enable iptables
service iptables save
否则 重启后规则会丢失。
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
如果系统用的是 firewalld,iptables 可能不生效。可以先确认:
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl enable iptables
systemctl start iptables
如果你告诉我:
我可以给你一条 最精确、最安全 的命令。