我在 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 指出的,您需要使用-n
switch 才能在 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与此无关。