iptables命令

 

查看

iptables -L -n -v

 

删除

方法1:根据规则编号删除(推荐)

  1. 先查看规则编号:

    sudo iptables -L INPUT --line-numbers
  2. 找到最后一条REJECT规则对应的编号(比如是第8条):

    num  target     prot opt source         destination
    8   REJECT     all  --  anywhere       anywhere      reject-with icmp-host-prohibited
  3. 删除该编号规则:

    sudo iptables -D INPUT 8

方法2:根据规则内容删除

sudo iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited

验证删除结果

sudo iptables -L INPUT

注意事项

  1. 删除全局拒绝规则后​:

    • 系统将默认允许所有入站流量(因为INPUT链默认策略是ACCEPT)
    • 建议在此之前添加必要的允许规则(如开放特定端口)
  2. 临时生效问题​:

    • 此操作立即生效但重启后会失效
    • 如需持久化保存(CentOS/RHEL):
      # CentOS 6及之前
      service iptables save
      
      # CentOS 7+
      iptables-save > /etc/sysconfig/iptables
  3. 安全风险​:
    删除全局REJECT规则相当于开放所有入站访问,请确保有前置的ACCEPT/DROP规则控制访问权限,或在删除后立即添加细粒度的规则。

替代方案(推荐)

更安全的做法不是删除REJECT规则,而是在它之前插入允许规则(如前文所述):

# 允许特定IP访问所有端口
sudo iptables -I INPUT -s 132.151.162.6 -j ACCEPT

这样132.151.162.6的访问会被允许,其他连接仍受REJECT规则保护。

设置开机自动加载

echo "/sbin/iptables-restore /etc/sysconfig/iptables" | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local

 

posted @ 2025-08-08 14:33  疯狂的草  阅读(31)  评论(0)    收藏  举报