将主机从其他网络“复制”到我的网络

时间:2017-01-30 11:41:35

标签: networking nat

enter image description here 我有两个通过USB连接的设备,在USB接口上有自己的网络10.1.1.0/24

从我的电脑,我通过Wifi连接到设备1。我的计算机和设备1都在网络192.168.42.0/24上有一个地址。

我想要做的是能够与设备2进行通信,就好像它位于地址192.168.42.0/24的{​​{1}}网络上一样。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

我看到两个解决方案:

更容易,但不是确切要求的

使用当前设置,您可以使用192.168.42.1地址和一些端口(例如80用于Web界面,22用于SSH,23用于telnet等)与device1通信。您可以通过在device1上配置port forwarding使设备2出现在同一IP(192.168.42.1)上的本地子网中,但具有不同的端口集。因此,192.168.42.1:<specificPort>的所有请求都将直接发送到device2,并由配置的一个覆盖。端口转发应该在每个路由器上开箱即用,所以唯一的麻烦就是完成配置。

更难,但准确

如果您想使用192.168.42.2使用设备2进行通信,则您需要本地子网中的某些物理设备响应此IP的数据包。因此,这种方式需要在192.168.42.2上设置一些单独的设备,以用作将请求转发到设备2并回复PC的代理类型。 Linux机器在iptables中有一些基本规则,在发送之前重写src / dst输入数据包的IP地址就足够了。

答案 1 :(得分:0)

我终于使用一些NAT和伪装解决了我的问题。

我通过在Device 1上执行以下命令来实现它:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d 192.168.42.2 -j DNAT --to-destination 10.1.1.2
iptables -t nat -A POSTROUTING -d 10.1.1.2 -j MASQUERADE
ip address add 192.168.42.2/24 dev eth0

然后将Device 1的dhcp服务器配置为不属性192.168.42.2。

让我挣扎最长时间的是需要在设备1的wifi接口(eth0)上设置额外的IP地址。