我目前正在家中设置一台 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 或任何适用的地址访问。
你要么需要
- 进行 IP 伪装(这样终端就会
NETWORK C
相信NETWORK B
它们正在与自己网络的成员通话),或者 NETWORK A
在您需要通话的每个终端中添加一条返回的路线,NETWORK B
或NETWORK C
NETWORK A
添加一条到默认路由器NETWORK B
的路由NETWORK C
...可能使用返回路线已启用。
我假设您无法使用 OSPF 或 RIP。