小编juw*_*ter的帖子

Linux:使来自同一主机的流量看起来来自不同的 IP 地址

我正在使用客户端库 ( https://github.com/Beckhoff/ADS ) 通过 TCP 从 Linux 机器连接到 PLC。但是,该库只能在 PLC 的源 IP 和目标 IP 地址之间执行单个连接。我的目标是连接到具有多个客户端的远程IP/PLC,即远程PLC必须能够根据客户端的(不同)IP地址来区分客户端连接。

我希望通过一些巧妙的iptables规则来实现这一点;或者,也许 Linux 网络命名空间也可以工作。

对于iptables路由(双关语?),我的计划是将多个 IP 地址分配给 Linux 计算机上的同一个 NIC。由于远程服务侦听单个端口(48898),我不能简单地在iptables规则中使用不同的目标端口。因此,我在想这样的事情:

远程 PLC:192.168.1.10/24
Linux PC:192.168.1.20/24 (ip addr add 192.168.1.20/24 dev enp2s0)
Linux PC:192.168.1.21/24 (ip addr add 192.168.1.21/24 dev enp2s0)

  • 客户端 A 只需从 192.168.1.20 连接到 192.168.1.10
  • 客户端 A 只需从 192.168.1.21 连接到(虚拟)192.168.1.11

通过为远程 PLC 使用“虚拟”IP 地址,我希望能够区分 TCP 连接,这样我就知道哪些数据包源自客户端 A,哪些数据包源自客户端 B。现在我需要做一些iptables魔术:

  1. 传出:如果目标 IP 地址 == 192.168.1.11 1.1 -> 重写为目标 IP …

linux iptables linux-networking

4
推荐指数
1
解决办法
1295
查看次数

标签 统计

iptables ×1

linux ×1

linux-networking ×1