我有两个网卡eno1(IP:12.34.56.78)和eno2(44.55.66.77)。
我还在特定端口上有一个服务(假设8888) 跑步。
我想允许流量通过eno1到该服务,但想丢弃任何到该端口的数据包eno2。
我尝试使用以下iptables
规则:
iptables -A INPUT -i eno2 -p tcp --dport 8888 -j DROP
此外(我的一些规则有这个奇怪的垃圾其中包含关键字):
iptables -A INPUT -i eno2 -p tcp -m tcp --dport 8888 -j garbage
但该服务仍然可通过两个 NIC 及其对应的 IP 获得。
请对我对此有所启发。
该服务正在作为docker 容器。
编辑评论:
iptables -S
包含:
-P INPUT DROP
答案1
第一种方法:指定目标 IP 地址
Iptables -I INPUT 1 -p tcp --dport 8888 -d 44.55.66.77 -j DROP
第二种方法:阻止除从第一个网卡指定到 IP 地址的流量之外的所有流量
iptables -A INPUT -d 12.34.56.78 -p tcp --dport 8888 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j DROP
解释:只要流量被指定到特定的 IP 地址,那么来自哪个接口就并不重要。