在 CentOS 中限制 IP(封 IP / 只允许某些 IP 访问)通常取决于系统使用的防火墙:
iptablesfirewalld(底层仍是 iptables/nftables)下面分别说明。
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" reject'
或彻底丢弃(更狠):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" drop'
重新加载:
firewall-cmd --reload
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" drop'
firewall-cmd --reload
例如只允许 8.8.8.8:
firewall-cmd --permanent --set-default-zone=drop
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="8.8.8.8" accept'
firewall-cmd --reload
⚠️ 谨慎操作,避免把自己关在外面(建议先保留 SSH IP)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" port protocol="tcp" port="22" reject'
firewall-cmd --reload
iptables -A INPUT -s 1.2.3.4 -j DROP
service iptables save
service iptables restart
iptables -A INPUT -s 192.168.1.0/24 -j DROP
iptables -A INPUT -p tcp --dport 22 -s 8.8.8.8 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
firewall-cmd --list-all
firewall-cmd --list-rich-rules
iptables -L -n
firewall-cmd --permanent--permanent如果你能告诉我:
我可以给你更精确的命令。