IPTables NAT Ubuntu 将第二个 IP 重定向到另一个 IP

IPTables NAT Ubuntu 将第二个 IP 重定向到另一个 IP

我有两台服务器:

服务器 1:

IP1=8.8.8.1

IP2=8.8.8.2

服务器2:

IP1=8.8.8.3

我想将对 IP 8.8.8.2 的所有访问重定向到 8.8.8.3。因此我激活了 IP 转发

sysctl net.ipv4.ip_forward=1

并安装 IP 表:

iptables -t nat -A  PREROUTING -d 8.8.8.2 -j DNAT --to-destination 8.8.8.3
iptables -t nat -A POSTROUTING -s 8.8.8.3 -j SNAT --to-source 8.8.8.2

我的问题是,这不起作用。如果我现在 ping 我的 IP 地址 8.8.8.2,我期望从 8.8.8.3 得到答案,但我却得到了超时。

我做错了什么?谢谢

编辑:

服务器通过互联网连接,因此所有IP都是公网IP。

由于 ISP 的规定,服务器 2 的 IP 每 2-3 个月更改一次。因此,我想为服务器 2 使用服务器 1 的静态 IP。

子网为 /32。所以我只拥有这三个特定的 IP 地址。

服务器 1 是 Strato Vserver。服务器 2 是我家的 Vserver Host。

编辑 2:隧道是一个不错的选择,但是它能与 IP 表一起使用吗?

我不完全清楚双重 nat 能起到什么作用,因为第二台服务器可以通过互联网访问,不需要通过路由器进行 nat。(这是我知道可以使用双重 nat 的地方)

答案1

尝试

iptables -t nat -A POSTROUTING -d 8.8.8.3 -j SNAT --to-source 8.8.8.2

代替

iptables -t nat -A POSTROUTING -s 8.8.8.3 -j SNAT --to-source 8.8.8.2

虽然不太明显,但你的情况一般是发夹型NAT。因此你需要强制网络传递返回通过同一个 NAT 设备(否则网络的集体路由表没有理由将其传递这么远的距离)。

相关内容