带有 REDIRECT 目标的 Iptables --to-ports 选项(错误?)

带有 REDIRECT 目标的 Iptables --to-ports 选项(错误?)

我正在尝试使用 iptables 将传入的 udp 流量 (514) 重定向到两个端口 (10514 和 10515)。在 iptables-extensions 的 man 页面上,目标 REDIRECT 的语法是“--to-ports port[-port]”

有人提到你可以指定单个端口,也可以指定一个范围,但我无法让它在一个范围内工作。它似乎只占用该范围内的第一个端口。

该软件正在监听两个端口

以下是我正在使用的规则和 iptables -nvL:

iptables -A INPUT -p udp --dport 10514 -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p udp --dport 10515 -s 10.0.0.0/8 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p udp --dport 514 -j REDIRECT --to-ports 10514-10515

Chain PREROUTING (policy ACCEPT 1550 packets, 93888 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  424 72586 REDIRECT   udp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            udp dpt:514 redir ports 10514-10515


Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

68854   14M ACCEPT     udp  --  *      *       10.0.0.0/8           0.0.0.0/0            udp dpt:10514
    0     0 ACCEPT     udp  --  *      *       10.0.0.0/8           0.0.0.0/0            udp dpt:10515 

答案1

所以我现在可以回答我自己的问题了!

https://serverfault.com/a/741108/538674

此目标可能是解决问题的办法,无需禁用连接跟踪但它需要一个最新的内核

TEE The TEE target will clone a packet and redirect this clone to another machine on the local network segment. In other words, the nexthop must be the target, or you will have to configure the nexthop to forward it further if so desired.

--gateway ipaddr
    Send the cloned packet to the host reachable at the given IP address. Use of 0.0.0.0 (for IPv4 packets) or :: (IPv6) is invalid. 

To forward all incoming traffic on eth0 to an Network Layer logging box:

-t mangle -A PREROUTING -i eth0 -j TEE --gateway 2001:db8::1

相关内容