更改同一接口上传入数据包的源 IP 以及如何查看它?

更改同一接口上传入数据包的源 IP 以及如何查看它?

我在服务器 B 上运行一个应用程序,该应用程序侦听服务器 B 上的 eth0。

我有一个来自服务器 A 的 GTP 数据包,我想更改其源地址。在数据包的 GTP 层中,存在公共 IP(即 xxxx)。我想将源IP更改为xxxx

应用程序需要 xxxx 系列,但在标头中它得到 10.xxx,因此它会丢弃数据包并且无法建立连接。

10.xxx(源)---->xxxx(目标)

我知道门户中有一些解决方案,但我的问题是没有传出接口,应用程序正在监听并使用更改后的 IP 进行回复;即,仅 eth0 上的 xxxx。我怎样才能看到数据包?和tcpdump

我使用了网上的一个示例规则,它是:

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to x.x.x.x

但这不符合我的目的。

基本上,数据包是 gtp 并且来自指定接口。数据包由 gtp 层的公共 IP 组成。应用程序正在丢弃指定的源 IP,因为它在连接请求时查找数据包内存在的公共 IP。如果我可以将公共 IP 分配为 src IP(可访问),则将建立连接并且传出流量可以也通过修改后的 src IP 作为回复,最终将建立连接。

我是否可以有一个 iptable 规则,当数据包到达 eth0 时,将我的 src IP 更改为 GTP 层中存在的公共 IP?

相关内容