在麒麟os中应优先使用firewalld添加持久化富规则拒绝192.168.5.200的入站流量,命令为sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.5.200" reject'并重载配置;firewalld异常时可临时用iptables -i input -s 192.168.5.200 -j drop,但需注意二者冲突。

您需要在麒麟OS终端中阻止特定IP地址访问本机服务(如SSH、Web服务等),防止未授权连接尝试或恶意扫描,必须通过系统级防火墙规则直接拦截其入站流量。
使用firewalld添加拒绝规则
银河麒麟V10默认启用firewalld作为主防火墙管理器,此方法实时生效、无需重启服务,且规则持久化保存。
执行命令添加富规则,拒绝来自192.168.5.200的所有入站连接:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.5.200" reject'
重新加载firewalld配置使规则立即生效:
sudo firewall-cmd --reload
验证规则是否已加载:
sudo firewall-cmd --list-rich-rules | grep 192.168.5.200
使用iptables直接封禁(兼容老版本或firewalld异常时)
当firewalld服务不可用、或需绕过其抽象层进行底层控制时,可直操作iptables链。该方式不依赖firewalld状态,但重启后失效,需配合保存机制。
方法一:临时封禁(重启即失效)
sudo iptables -I INPUT -s 192.168.5.200 -j DROP
方法二:永久保存iptables规则(仅限未启用firewalld的场景)
执行sudo iptables-save > /etc/iptables/rules.v4保存当前规则;
确保iptables-persistent服务已启用:
sudo systemctl enable iptables-persistent && sudo systemctl start iptables-persistent
【注意】若firewalld正在运行,直接操作iptables可能被其自动覆盖,务必先停用:sudo systemctl stop firewalld
验证封禁效果
第一步:从目标IP机器(192.168.5.200)执行telnet 本机IP 22,应出现Connection refused或超时无响应。
第二步:在本机查看DROP计数是否增长:
sudo iptables -L INPUT -v -n | grep 192.168.5.200
第三步:检查firewalld日志确认拦截记录:
sudo journalctl -u firewalld | grep "192.168.5.200" | tail -5











