如何让同一局域网中的另一台电脑转发数据包?

如何让同一局域网中的另一台电脑转发数据包?

我可能没有正确使用“前进”这个词。基本上,我试图实现这一点:

我有两台 PC 在同一个局域网中。A 的 IP 地址是 192.168.1.3,B 的 IP 地址是 192.168.1.4。我希望 A 将数据包发送到远程公网 IP 地址 72.xx.xx.xx,但是,我不想让 A 直接将数据包发送到该公网 IP,而是希望 A 先将数据包发送到 B(192.168.1.3 -> 192.168.1.4),然后 B 可以将 A 的数据包转发到该远程公网 IP,最后 A 也可以正确收到响应。

我尝试在 iptables 中添加一些 NAT 规则,但没有成功。有人有什么建议吗?谢谢 :)

答案1

我不确定我是否完全理解了这个问题,但如果你只是希望通过 LAN 上的另一个盒子将流量路由到 IP,正如我在评论中看到的那样,你需要做的就是在路由表中添加一个条目,使 72.xx.xx.xx 的网关为 192.168.1.4。尝试

ip route add 72.xx.xx.xx via 192.168.1.4

由于 Linux 系统上 IP 转发通常默认禁用,因此您必须在 192.168.1.4 上启用它。

echo 1 > /proc/sys/net/ipv4/ip_forward

现在,要将响应返回到 192.168.1.3 框中,最简单的方法是在 192.168.1.4 框上启用伪装。只需执行

iptables -t nat -A POSTROUTING -j MASQUERADE

这当然会伪装来自任何来源和任何目的地的所有连接。

相关内容