设置网络使虚拟机能成被外网访问
12 March 2014
virtualbox中新建的虚拟机默认使用NAT方式访问外部网络,但是外网的ip无法访问虚拟机中开启的web server。
这种情况下,有两种简单的处理方法,一个是在NAT的基础上配置端口转发Port Forwording;另外一种是使用bridged Network方式。
1. NAT+Port Forwording
NAT网络地址转换技术,能使多个内网私有IP共用一个外网IP的身份进行互联网访问。对于外网而已,内网的主机是不可见的。外网无法获取内网主机的真实IP/端口信息(外网只能获取到被NAT转换过的IP和端口信息),即便获取了,外网也无法主动建立到内网主机的链接(对外网而已,内网主机的私有IP无法进行路由)。
如果要在内网主机上开启服务,想让外网来访问,可以在NAT的基础上再设置下端口转发Port Forwording。比如,内网主机(IP为10.0.2.15)开启了web server,端口为80,在NAT转换层(路由器)新开一个端口8080,监听外网的请求并转发到内网主机的80端口。这样,外网就可以用http://路由器出口IP:8080/访问内网主机,而对于内网中的客户端,可以直接通过http://10.0.2.15:80/进行访问。
单纯的NAT,对于内网的用户而言,相当于一个正向代理,隐藏了用户的真实身份。如果在加上端口转发,对于外网用户而言,NAT相当于反向代理,隐藏了内网服务器的地址信息。
NAT工作在网络层,一般的代理系统(如nginx)工作在应用层(HTTP)。
2. Bridged Network
桥接模式是更简单的一种方法。什么都不用配。虚拟机会被分配一个和宿主属于同一网络的IP地址,外网可以直接访问的IP。
另外,有一个坑是,虚拟机里面要注意下防火墙的设置,要允许虚拟机中开启的服务通过防火墙的屏蔽。
blog comments powered by Disqus