IPTABLES 将特定 WAN 流量重定向回 WAN 上的另一个地址

IPTABLES 将特定 WAN 流量重定向回 WAN 上的另一个地址

我尝试使用 iptables 来实现的是设置一个或多个规则,当特定数据包从 wan 到达时,它会被重定向到 wan 上的新地址。

例子:

到达端口 10000 的任何 UDP 数据包都会被重定向到 8.8.8.8:10000。如果规则需要满足某些要求,则可以更具体,例如它来自 ip 1.1.1.1 或目标 lan ip 是 192.168.1.1。

这可能吗?我尝试了链式 PREROUTING 中的几条规则并使用了 DNAT,但老实说,我对此一无所知...

答案1

可以制定一个 DNAT 规则:

iptables -I PREROUTING -p udp --sport 10000 -j DNAT --to-destination 192.168.100.100:10000

这会将 IP 数据包中的目标地址替换为192.168.100.100

问题是,如果改变的目的地不使用转发机作为其网关,则双向通信不起作用。

一个例子:

感知 - 10.100.100.10 = 数据包的原始发送者 转发器 - 192.168.120.1 = 数据包的目的地 最终目的地 - 192.168.100.100 = 重定向目的地

  1. 发送方向转发器发送一个数据包:10000
  2. 转发器将数据包中的 IP 地址更改为 192.168.100.100(最终目的地)并转发数据包
  3. 最终目的地接收数据包
  4. 最终目的地将响应数据包发送到 10.100.100.10,因为这是数据包源地址。

现在,由于发送方最初向转发器发送了一个数据包,因此它不期望从最终目的地收到响应数据包。因此响应数据包被丢弃。

因此,确保其正常工作的唯一方法是确保数据包的返回路径经过执行 DNAT 的盒子。

答案2

检查当前的 iptables 规则

iptables -t nat -L -n -v

启用 IP 转发

echo "1" > /proc/sys/net/ipv4/ip_forward

cat /proc/sys/net/ipv4/ip_forward

转发 PG 流量的规则

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination new-master-ip:80

iptables -t nat -A POSTROUTING -j MASQUERADE

检查 iptables 规则

iptables -t nat -L -n -v

相关内容