在 iptables 中添加一条规则,目标 ip 不会解析到其域

在 iptables 中添加一条规则,目标 ip 不会解析到其域

我在 iptables 中添加此规则,并将以下 IP 地址作为目标:

iptables -A FOR_FILTER -d 66.235.138.59 -j ACCEPT

它已成功添加,结果如下:

ACCEPT     all  --  anywhere             *.d1.sc.omtrdc.net

由于此 DNS 解析,我想要应用于 66.235.138.59 的规则不起作用。我想按原样添加 IP 地址,这样 iptables 就不会添加解析的域。

像这样(但它不起作用):

iptables -A FOR_FILTER -d "66.235.138.59" -j ACCEPT
iptables -A FOR_FILTER -d '66.235.138.59' -j ACCEPT

答案1

Iptables 在内部使用 IP 地址,如果您不想在列出规则时看到任何 DNS 名称,请使用iptables -L -n- 它会禁用反向 DNS 查找。

答案2

您的问题有两点。第一,正如 CodePainters 指出的,您需要使用-nswitch 才能在 iptable 规则列表中查看 IP 地址。

第二件事是,iptables 按顺序处理规则。如果某个先前的规则禁止连接,则添加另一个规则(-A 在链的末尾添加)将无济于事。您需要分析整个配置,而不仅仅是单个规则。

答案3

来自手册页:

   -s, --source [!] address[/mask]
          Source specification.  Address can be either a network  name,  a
          hostname  **(please  note  that specifying any name to be resolved
          with a remote query such as DNS is a really bad idea)**,  network
          IP address (with /mask), or a plain IP address.



   -d, --destination [!] address[/mask]
          Destination  specification.   See  the  description  of  the  -s
          (source)  flag  for  a  detailed description of the syntax.



   -n, --numeric
          Numeric  output.   IP addresses and port numbers will be printed
          in numeric format.  By default, the program will try to  display
          them  as host names, network names, or services (whenever appli-
          cable).

添加规则时,请使用 IP 编号而不是名称。列出规则时,如果需要名称,请省略 -n 选项。要加快速度并删除 ns 查找步骤,请将 -n 添加到 -L。

您说:“由于这个 DNS 解析,我想要应用于 66.235.138.59 的规则将无法起作用。”

我说,DNS与此无关。

相关内容