如何根据源 IP 从端口转发?

如何根据源 IP 从端口转发?

我有两个通过端口 514 进入的系统日志源,我想根据源 IP 将它们转发到两个不同的端口(对于 graylog 服务器)。

我可以将该端口上的所有内容转发到另一个本地端口。

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp --dport 514 -j REDIRECT --to-port 1514
COMMIT

但是如果我尝试根据源 IP 进行过滤,似乎什么都没有发生,它只是继续转到端口 1514。

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp -s $some_ip --dport 514 -j REDIRECT --to-port 1513
-A PREROUTING -p udp -s $some_ip --dport 514 -j REDIRECT --to-port 1514
COMMIT

任何帮助都会非常感激,因为我确信我一定遗漏了一些非常明显的东西。

答案1

确保将规则放入正确的表和链中。昨天,我在使用 iptables 时也遇到了同样的情况。尝试使用 tcpdump“tcpdump -s0 -w port 514”进行数据包捕获,以确保数据包按照您认为的方式进入。您还可以设置 iptables 数据包日志记录,以验证数据包流经的链。使用“iptables -nL”和“iptables -S”检查当前规则和命令行 iptables 参数

https://commons.m.wikimedia.org/wiki/File:Netfilter-packet-flow.svg

相关内容