相信大多数人由于网络环境的原因,不能使用桥接的方式来让虚拟机上网,我个人一般比较喜欢使用Virtualbox,也有一个问题经常困扰我,就是设置NAT之后,会出现各种莫名其妙的问题,要么是主机可以ping通客户机,要么是客户机可以ping通主机,就是ssh无法连接。
查阅了很多资料,有说要关闭防火墙的,有说NAT不可以互通,只有桥接才行的,最后找到靠谱且切实可行的资料,Virtualbox的网络引擎比较特殊,设置为通过NAT 方式连接的一台虚拟机能像一台真正的计算机一样访问互联网,主机就是一只路由器。在这种方式下,通过VirtualBox 网络引擎,虚拟机透明地映射到外部网络。但是,很像是在路由器之后的一个专用网络,从外部互联网看来,虚拟机是无形和不能到达的; 您不可能在虚拟机上运行一个服务器,因为外部网络无法访问通过NAT 方式连接的内部机,除非您设定了端口转发
实验环境:
1、操作系统:Windows7 32bit
2、虚拟机软件:Oracle Virtualbox Version 5.0.10 r104061
3、虚拟机网络连接方式:NAT
4、虚拟机系统:Centos 6.7 i386
解决方案:
1、先查看自己虚拟机获得到的IP为10.10.2.15,此时可以上外网。
2、Machine -> Settings -> Network -> Port Forwarding -> ADD,下面的添加格式如下,
Name Protocol Hosting IP Host Port Guest IP Guest Port
SSH TCP 127.1.1.1 2222 10.0.2.15 22
3、在自己的主机上ssh username@127.1.1.1 -p 2222就可以直接连接到虚拟机了,这里利用了Virtualbox的端口转发功能。
ssh连接会话超时时间的方法:http://www.linuxdiyf.com/linux/16641.html
Xshell用ssh连接Ubuntu掉线解决方法:http://www.linuxdiyf.com/linux/1392.html
诊断并解决SSH连接慢的方法:http://www.linuxdiyf.com/linux/12951.html
在Ubuntu Kylin下ssh连接时间太久会被踢的解决方法:http://www.linuxdiyf.com/linux/11926.html
CentOS 5远程SSH连接超时设定:http://www.linuxdiyf.com/linux/4998.html