如何配置 Mac 将外部 IP 请求路由到不同的接口?

如何配置 Mac 将外部 IP 请求路由到不同的接口?

我目前正在家中设置一台 Mac。它的静态 IP 为 10.0.1.254。

这台 Mac 通过以下方式与我的工作场所建立 VPN 连接:隧道图(192.168.1.x 和 192.168.2.x)。这台 Mac 还可以运行我的几台 VM(192.168.170.x)。

在同一网络(10.0.1.x)上的另一台笔记本电脑(也是一台 Mac)上,我希望能够通过这台 Mac 连接到我的工作场所和 VM。

在我的笔记本电脑上,我首先尝试设置路由规则:

sudo route -v add 192.168.170.163 10.0.1.254

在 Mac 上,我尝试启用 IP 转发,甚至桥接:

sudo sysctl -w net.inet.ip.forwarding=1
sudo sysctl -w net.inet6.ip6.forwarding=1
sudo sysctl -w net.link.ether.inet.proxyall=1
sudo ifconfig bridge0 create
sudo ifconfig bridge0 addm en0
sudo ifconfig bridge0 addm vmnet2
sudo ifconfig bridge0 up

但是,当我尝试从笔记本电脑访问该 URL 时http://192.168.170.163:80/,似乎没有被路由到 Mac 上的 VM。

tunnelblick 实验更糟糕,因为我无法将其添加到桥接网络。

我可以使用 VMware Fusionnat.conf或通过 SSH 进行端口转发来解决问题,但我希望避免使用这些方法,因为我想保留我正在访问的 IP 地址,并避免进行过多的配置/etc/hosts

我的概念/理解有问题吗?这不是通过桥接网络和 IP 转发解决的问题吗?

更新:

我已执行了解决方法:
1. 我的 Mac(10.0.1.254)托管启用了路由服务的 Windows 2003 Std Edition Server VM(10.0.1.253)。2
. 路由服务 Windows VM 有两个网络接口,10.0.1.253 和 192.168.170.253。3.
我的其他 VM(192.168.170.253)将默认网关配置为 192.168.170.253。4.
网络 10.0.1.x 上的我的笔记本电脑执行从 192.168.170.x 到 10.0.1.253 的静态路由。

答案1

您的笔记本电脑上的这项功能route add是朝着正确方向迈出的一步,但您只完成了一半。

考虑一下这个图表:

NETWORK A___
|          |
|          |
|          |
Laptop     Mac__________
           |            |
           |            |
           |            |
        NETWORK B      NETWORK C

您告诉您的笔记本电脑,要到达那里,NETWORK B它必须将数据包发送到Mac

现在,一台计算机NETWORK B从 (10.0.1.10) 收到一个数据包Laptop,但无法回复,因为它不知道 10.0.1.10 IP(或者我假设的 10.0.1.0/24 网络)是否可以通过 192.168.1.10 或任何适用的地址访问。

你要么需要

  1. 进行 IP 伪装(这样终端就会NETWORK C相信NETWORK B它们正在与自己网络的成员通话),或者
  2. NETWORK A在您需要通话的每个终端中添加一条返回的路线,NETWORK BNETWORK C
  3. NETWORK A添加一条到默认路由器NETWORK B的路由NETWORK C...可能使用返回路线已启用。

我假设您无法使用 OSPF 或 RIP。

相关内容