需求说明
情况是这样的,笔者有两台电脑,windows10笔记本(主机A)和windows10台式机(主机B)且在同一局域网下。同时有Ubuntu系统(主机C)运行在主机B的VMware虚拟机上。现在想在主机A上通过ssh访问主机C。
当前网络配置:
主机A:IP=10.4.0.199
主机B:IP=10.4.0.195
主机C:IP=192.168.75.129
VMware虚拟机为NAT模式,ping命令测试:AB通,BC通,AC不通。
VMware网络模式
先了解一下VMware下各网络模式特性,查看博客《VMware下三种网络模式详解》。
- Host-only模式下虚拟机不能访问外网,肯定不行。
- Bridged模式下虚拟机等同于局域网上的一台独立主机,可以相互ping通,肯定是可以的。但需要给其分配一个局域网地址,也不利于和宿主机间的通信。
- NAT模式下,虚拟机是不能直接被局域网内其他主机访问到的,但通过配置端口转发可以实现特定通道的访问。
操作步骤
先安装、配置、启动Ubuntu上的ssh服务,再在宿主机上验证一下,确认Ubuntu上的ssh服务开启正常。如下图所示:
配置VMware的虚拟网络
点击VMware–>编辑–>虚拟网络编辑器,打开VMware的虚拟网络编辑器。
选择VMnet8—NAT模式,点击NAT设置按钮。
点击端口转发下的添加按钮,增加端口映射。
选项说明:
- 主机端口是宿主机的端口号,一般填ssh的默认端口号22,但如果宿主机的自己的SSH服务端使用了22端口,则要填一个其它的宿主机未使用的端口。
- 类型用于设置socket类型,SSH是TCP连接。
- 虚拟机IP地址,填写Ubuntu(主机C)的IP地址。
- 虚拟机端口,填写Ubuntu(主机C)上提供SSH服务的端口,一般都是ssh的默认端口号22。
- 描述,该端口映射的简要说明。
配置好VMware的虚拟网络后,还要关闭宿主机(主机B)的专用网络防火墙
。
以上设置好后就可以在主机A上连接主机C的ssh了。注意的是ssh命令中用户名时主机C上的用户名,而目标地址是主机B的地址而不是主机C的
。如果上面配置的主机端口不是22 还要指定实际配置的端口号。