我有两个内部网络(我不想/无法访问 Internet),我在其中连接我的 Ubuntu 14.04(带有 eth0 和 eth1 网络接口)。从 eth0(网络 192.168.0.0)我直接连接另一台 PC1。除了来自 eth1(网络 10.1.1.0)之外,我还直接连接了另一台 PC2。无论方向如何,我都想从 PC1 ping 到 PC2,直到现在我都无法成功。
当前的 IP 配置为:
- Ubuntu-eth0 has 192.168.0.1
- PC1 has 192.168.0.2
- Ubuntu-eth1 has 10.1.1.1
- PC2 has 10.1.1.2
Ubuntu /etc/network/interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
auto eth1
iface eth1 inet static
address 10.1.1.1
network 10.1.1.0
netmask 255.255.255.0
broadcast 10.1.1.255
Ubuntu /etc/sysctl.conf 也有:
net.ipv4.ip_forward = 1
这是在终端中运行的:
~$ sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
~$ sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
~$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
使用此配置,我可以从 PC2 -> PC1 ping,但是当我启用 nat 功能时,我无法从 PC1 -> PC2 ping,而且 PC2 没有其真实 IP(如通过 PC1 中的 Wireshark 看到的)。
如何在没有 nat 功能的情况下建立通信渠道?我想要的结果是使用它们在目的地的真实 IP ping PC1 -> PC2 和 PC2 -> PC1。我已经关注了许多链接和教程,但还没有成功。
提前致谢。
不要跑
只需像您所做的那样打开 IP 转发,
net.ipv4.ip_forward = 1
在/etc/sysctl.conf
.