我有一个内部机器,说X(不连接到互联网),连接到一台机器,说Y连接到互联网。
我应该如何configuration机器才能通过Y从内部机器X路由到互联网?
Y使用的默认路由器必须知道networkingX使用的是通过Y可用的。
所以,如果X在192.168.1.12/24,Y是在192.168.1.1/24和192.168.0.101/24。 然后在路由器(假设在192.168.0.1/24,连接到互联网)与Y共享连接,你需要添加:
ip route通过192.168.0.101范围全局添加192.168.1.0/24
并通过适当的规则让防火墙让stream量通过。
另一种解决方法是在Y中使用SNAT:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(假设Y和Y的默认路由器之间的networking连接到eth0)
在这两种情况下,您都需要将数据包转发添加到Y :
echo 1> / proc / sys / net / ipv4 / ip_forward echo“net.ipv4.ip_forward = 1”>> /etc/sysctl.conf
将机器X上的网关设置为Y,然后确保主机Y允许数据包转发。 在Linux上与iptables这将需要或多或less这个:
编辑/etc/sysctl.conf
以允许转发,确保net.ipv4.ip_forward
已被设置为1
。
之后,在iptables中应用规则以允许通信。
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(如果eth0是正确的设备)
尝试这个。
sysctl -w net.ipv4.ip_forward = 1
在机器X上,将默认路由设置为Y.
如果可以的话,通过添加永久设置
net.ipv4.ip_forward = 1
到:/etc/sysctl.conf
并重新启动。