• 自动化防火墙放行目标域名IP


    #!/bin/bash
    # 设置要获取IP地址的域名
    domain="yourdomain.com"
    
    # 获取域名的IP地址
    new_ip=$(dig +short A $domain)
    
    # 移除之前添加放行的IP地址(通过备注找它的编号)
    rule_number=$(iptables -L INPUT -n --line-numbers -v | awk -v domain="${domain}" '$0 ~ "Allow from " domain {print $1}')
    
    # 如果有就删除
    if [ -n "$rule_number" ]; then
        iptables -D INPUT $rule_number
    fi
    
    # 添加新的IP地址到iptables规则(带备注)
    iptables -A INPUT -s $new_ip -m comment --comment "Allow from $domain" -j ACCEPT
    
    #保存规则,如果有docker请省略这一步
    service iptables save
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    正则表达式部分的解释:

    • Allow from : 这是一个固定的文本字符串,表示规则中的注释内容开始部分。
    • domain: 这是一个变量,其中存储了您要匹配的注释内容。在命令中使用-v选项将该变量传递给awk命令。
    • ~操作符: 在awk中,~操作符用于进行模式匹配。
    • $0: 这是awk中的一个特殊变量,表示整个输入行。
    • ~操作符后面的部分 "Allow from " domain 是我们的模式。它指示awk在输入行中查找以"Allow from
      "开头,后面跟着domain变量的内容的部分。

    因此,使用模式"Allow from " domain,我们可以匹配包含所需注释的规则行。一旦找到匹配的行,print $1将打印该行的第一个字段,即规则行号。

    有docker为啥不保存:

    在使用Docker时,iptables规则是由Docker自动管理的。Docker使用自己的网络桥接和转发机制来管理容器之间的通信,它会自动更新iptables规则以适应容器的网络需求

    当你运行service iptables save命令时,它会尝试保存当前系统的iptables规则到配置文件中,但是这个命令不会考虑Docker所管理的规则。

    如果你希望保存Docker所管理的iptables规则,你可以使用Docker自带的命令来实现。例如,使用docker save命令将Docker的iptables规则保存到文件中,然后在需要的时候使用docker load命令重新加载规则。

    另外,从Docker 1.13版本开始,Docker引入了新的命令docker savedocker load,用于保存和加载容器的状态,包括网络规则。这样你就可以使用docker save命令保存Docker的状态,并在需要的时候使用docker load命令重新加载状态,包括iptables规则。

    总之,如果你在使用Docker,并且希望保存iptables规则,建议使用Docker提供的相关命令来管理和保存规则。

  • 相关阅读:
    ISP图像信号处理——平场校正介绍以及C++实现
    Spring源码之六-onRefresh()方法
    【蓝牙协议栈】【BR/EDR】【MAP】蓝牙短信访问协议
    阿里巴巴中国站获得淘口令真实url API 返回值说明
    【iOS】导航栏的显隐与self.view.height
    4.HMM和CRF的使用和应用
    微机原理与接口技术:微型计算机输入输出接口 详细笔记与例题
    从传统行业到半导体行业开发(YMS,DMS,EAP,EDA)最好的语言就是用实干来践行自己的承诺。
    老板说我最近飘了,都敢用 MySQL 实现分布式锁了
    1 【Android高级开发必备技能】注解
  • 原文地址:https://blog.csdn.net/weixin_43576565/article/details/132659474