我有一台内部机器,比如 X(未连接到互联网),它连接到一台机器,比如 Y,该机器已连接到互联网。
我应该如何配置机器才能从内部机器 X 通过 Y 路由到互联网?
答案1
默认路由器是用户必须知道网络X用途可通过是。
因此,如果X位于 192.168.1.12/24,是位于 192.168.1.1/24 和 192.168.0.101/24。然后在与以下设备共享连接的路由器(假设位于 192.168.0.1/24,连接到互联网)上是您需要添加:
ip route 通过 192.168.0.101 范围添加 192.168.1.0/24 全局
并给防火墙制定适当的规则以允许流量通过。
另一个解决方案是使用 SNAT是:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(假设是和是的默认路由器连接到eth0)
在这两种情况下,您都需要将数据包转发添加到是:
echo 1 > /proc/sys/net/ipv4/ip_forward 回显“net.ipv4.ip_forward = 1”>> /etc/sysctl.conf
答案2
将机器 X 上的网关设置为 Y。然后确保主机 Y 允许数据包转发。在具有 iptables 的 Linux 上,这或多或少需要以下内容:
编辑/etc/sysctl.conf
以允许转发,确保net.ipv4.ip_forward
已设置为1
。
之后,在 iptables 中应用规则以允许流量。
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(如果 eth0 是正确的设备)
答案3
尝试这个。
sysctl -w net.ipv4.ip_forward=1
在机器X上,设置默认路由为Y。
如果有效,请通过添加永久设置
net.ipv4.ip_forward = 1
到:/etc/sysctl.conf
并重新启动。