iptables远程PC作为网关(所有流量转发)

iptables远程PC作为网关(所有流量转发)

这里有一个问题:我可以完全ssh访问本地 Intranet 上的两台机器。
在两台机器上快速可靠地访问互联网。
我想通过 PC2 转发来自计算机 PC1 的所有传出流量,以加快互联网连接速度。

这可以通过实现吗iptables 在此输入图像描述

以下是有关情况的一些事实

  • PC1根本不需要访问其网络中的其他机器或内网中的事件
  • PC1和PC2可以轻松无限制地相互通信(ping、ssh、tcp、udp)
  • 我无法使用 gw2 作为 PC1 网关,因为它位于其他网络上并且无法访问
  • 我可以根据需要设置 PC1 和 PC2

答案1

在 PC1 上通过 PC2 执行默认路由:

ip route add default via <PC2-IP>

在 PC2 上,

允许转发 IPv4 数据包:

sysctl net.ipv4.ip_forward = 1

然后设置用于转发和伪装的 IPv4 IPtables 规则:

iptables -A FORWARD -4 -j ACCEPT仅当 FORWARD 链的默认策略已为 drop 时才需要执行此操作。如果您之前没有进行任何 IPtables 配置,则很可能不是。

iptables -t nat -A POSTROUTING -4 -s <PC1-IP> -j MASQUERADE

如果 PC2 上没有任何冲突的 IPv4 IPtables 规则,这应该足够了。

您可以使用以下命令检查当前的 IPv4 IPtables 规则:

iptables -vnL

iptables -t nat -vnL

答案2

这是关于路由的。只需将 PC2 设置为 PC1 的默认网关即可。此外,您(可能)必须在 PC2 上iptables进行配置SNAT,以便 gw2 将回复数据包发送到 PC2。

如果除了快速网络连接之外还想使用慢速网络连接,情况会变得更加复杂。

相关内容