在 CentOS 中使用 iptables 禁止某个 IP(或网段)访问服务器,常见做法如下:
iptables -I INPUT -s 1.2.3.4 -j DROP
或(更“礼貌”一点,直接拒绝并返回错误):
iptables -I INPUT -s 1.2.3.4 -j REJECT
DROP:丢弃数据包,对方无响应
REJECT:明确拒绝并返回错误
iptables -I INPUT -s 1.2.3.4 -p tcp --dport 22 -j DROP
iptables -I INPUT -s 192.168.1.0/24 -j DROP
service iptables save
或
/etc/init.d/iptables save
iptables-save > /etc/sysconfig/iptables
iptables -L INPUT -n --line-numbers
iptables -D INPUT 1
CentOS 7 默认使用 firewalld,如果已启用 firewalld,建议用:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" reject'
firewall-cmd --reload
如果要改用 iptables:
systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services
systemctl enable iptables
systemctl start iptables
| 需求 | 命令 |
|---|---|
| 禁止 IP | iptables -I INPUT -s IP -j DROP |
| 禁止 SSH | iptables -I INPUT -s IP -p tcp --dport 22 -j DROP |
| 禁止网段 | iptables -I INPUT -s 10.0.0.0/8 -j DROP |
如果你有 具体 IP / 端口 / CentOS 版本,我可以给你更精确的命令。