![仅允许来自 2 个 ips 的连接](https://linux22.com/image/639797/%E4%BB%85%E5%85%81%E8%AE%B8%E6%9D%A5%E8%87%AA%202%20%E4%B8%AA%20ips%20%E7%9A%84%E8%BF%9E%E6%8E%A5.png)
我需要阻止端口 30000 上的所有连接。我已经这样做了,使用如下命令
iptables -I INPUT ! -s IP_HERE -p tcp --dport 30001 -j DROP
但是现在我需要 2 个 ips,我该怎么做?
我需要允许的 ips 包括:localhost 和其他 ip。比如说 google.com 的 ips
答案1
反转 iptables 规则中的逻辑(如果...则接受,而不是如果不...则丢弃)并使用两个规则:
iptables -A INPUT -s FIRST_IP_HERE -p tcp --dport 30001 -j ACCEPT
iptables -A INPUT -s SECOND_IP_HERE -p tcp --dport 30001 -j ACCEPT
iptables -A INPUT -p tcp --dport 30001 -j DROP
答案2
要丢弃所有流量但允许两个特定的 IP 地址,您需要按此顺序使用三个规则(iptables 规则按顺序处理,因此顺序很重要):
- 允许 IP 1
- 允许 IP 2
- 全部删除
如果多个 IP 位于同一子网,则可以使用 CIDR 或 IP/掩码表示法。
您还可以做一些更花哨的事情,例如创建链条,请参见此链接。