iptables 规则何时生效?

Wol*_*lfy 1 iptables command-line

我有一个脚本可以禁止我的服务器上的选定 IP。

例子:

iptables -A INPUT -s 123.123.123.123 -j DROP
Run Code Online (Sandbox Code Playgroud)

我的问题是:这条规则什么时候开始生效?

我在问这个,因为昨天我禁止了一个 IP,但它仍然连接到我的服务器......是我的命令有问题还是其他什么问题?

Lek*_*eyn 5

使用iptablesip6tables(对于 IPv6)命令的操作会立即应用。您的 INPUT 链中可能有一条规则,它在流量到达此之前接受流量,例如:

iptables -A INPUT -m tcp -p tcp --dport 80 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

如果您使用 应用您的规则-A,则该规则将附加在之前的规则之后,即使您说应该阻止来自 123.123.123.123 的流量,允许 TCP 80 流量的规则仍具有优先权。建议您blocklist在规则集中插入一个新链(如下),如下所示:

sudo iptables -N blocklist
sudo iptables -I INPUT -j blocklist
Run Code Online (Sandbox Code Playgroud)

然后将规则应用于阻止列表链而不是 INPUT 链:

sudo iptables -A blocklist -s 123.123.123.123 -j DROP
Run Code Online (Sandbox Code Playgroud)