Remote SSH to VMware GuestOS

在NAT网络配置下,很多人都可以很轻松地从Host OS上ssh到VMware的Guest OS,只需要把Host OS和Guest OS当作是在由VMware所管理的同一个子网下的两台机器就可以了。

那么如果我有另一台笔记本或者手机,想要SSH到我台式机中VMware下的一台虚拟机该如何操作呢?

大部分人会想到把网络配置成Bridged,这样VMware的GuestOS就可以看作是和HostOS在同一个路由器所管理的子网下的另一台机器(而不是由VMware所管理的子网,家中路由器的子网 和 VMware所管理的子网 的ip段也不同)。

但是如果我不想频繁更改VMware的网络设置,即是在NAT网络配置下,我依然想从我的笔记本或者手机上来登录我在台式机上的虚拟机;该如何操作?

分两步走:

1. VMware配置端口转发(Port Forwarding)

第一步很多人都很熟悉,就是配置端口转发

  • 找到VMware的Virtual Network Editor功能

Virtual Network Editor

  • 选中VMnet8这行,点击NAT Settings..按钮

NAT Settings..

  • 添加一条Port Forwarding记录,点击Add按钮后按如下配置:

Mapping Incoming Port

其中Host port是你以后ssh到宿主机的端口,即HostOS的端口5022收到ssh请求,会自动转发到GuestOS的22端口。其中Virtual machine IP address就是你的GuestOS在VMware子网管理下的ip地址。

你可以在GuestOS运行一下这条命令来获取IP地址

ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'
  • 添加完成效果图,然后一路OK完成

Mapping Incoming Port

2. 宿主机中配置TCP端口重新映射(TCP Port Remapping)

这里要用到一个工具Rinetd slightly patched version,当然通过命令行也可以完成。

其中有需要配置的文件rinetd.conf,第一个地址为宿主机在网络中的ip,第二个地址为127.0.0.1即localhost的ip地址,端口都是需要转发的代理端口号。

然后运行rinetd.exe就可以了。

rinetd

在床上、沙发上、饭桌上 coding

完成了以上这些,我就可以快乐地躺在床上用手机或者iPad coding了…当然,应该主要还是拿着老笔记本到楼下去边扯淡边写程序。

coding at restroom....

我发现iPad看视频和网页比起我的A8ja速度要快多了,然后就这样了。。。。

coding with iPad

参考:
Accessing Vmware guest OS behind NAT from another computer
How to Setup Port Forwarding in VMware Workstation 9
点击查看评论