virtualbox虚拟主机上面联网方式中NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。
虚拟机与主机关系:只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。
虚拟机与网络中其他主机的关系:只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。
虚拟机与虚拟机之间的关系:相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。
IP:10.0.2.15
网关:10.0.2.2
DNS:10.0.2.3
一台虚拟机的多个网卡可以被设定使用 NAT, 第一个网卡连接了到专用网 10.0.2.0,第二个网卡连接到专用网络 10.0.3.0,等等。默认得到的客户端ip(IP Address)是10.0.2.15,网关(Gateway)是10.0.2.2,域名服务器(DNS)是10.0.2.3,可以手动参考这个进行修改。
所有虚拟机刚新建好后都默认这种模式联网。
下面我来说说我的实验环境:
物理机 官方原版win7 虚拟机 纯净xp
物理机win7的IP地址为192.168.0.8(家用路由器DHCP分配)
虚拟机采用NAT模式联网 ip地址 10.0.2.15
物理机已经共享一个文件夹(PFiles文件夹)
在虚拟机中输入 \\192.168.0.8 可以访问共享的文件夹(如果您不能访问 可以参考这里 )
而物理机则无法访问
然后我再开启一台虚拟机 XP系统 IP地址也是10.0.2.15(DHCP分配)我新建一个文件夹 并且开启共享 (两个不同虚拟机的IP地址一样)
所以说明了NAT模式的特点
下面我来说说怎样做NAT的端口映射功能
首先介绍一下NAT网络模式下端口映射的优点,首先节省一个IP地址(有些情况下,IP地址资源比较宝贵);其次,这样可以避免Server暴露过多的接口,提供什么服务暴露什么接口,这样保证Server安全性。当然这种方式也有一定的局限性,服务的端口必须是固定的,假如服务的端口是动态的,那么这种方式就没有办法了,比如NFS服务就不能用端口映射来实现。
我下面就来演示一下基本的端口映射
实验目的,我想用我的物理主机来远程连接虚拟机的远程桌面(默认TCP 3389端口)
首先在虚拟机上面把功能打开
当然默认情况下 没有用户可以在远程端登录的 你可以添加远程用户
Windows默认远程端口是 3389 tcp协议
下面来做端口映射
打*号的为必填项
我可以这样填
也可以这样填
物理机上面则需要这样输入
连接后 就弹出来登录框 这说明已经映射到虚拟XP的3389端口了
下面我用我另一台XP 也来远程(第二台虚拟机XP并没有开启远程功能)
第二台XP网络模式也是NAT
好的 连接到了第一台虚拟XP了!
我再来改一下我第二台虚拟XP的联网方式 改为bridged adapter 桥接模式 桥接到我物理网卡上
好的没问题 已经连上网络了!继续远程连接
OK 也可以通过物理机IP映射到第一台虚拟XP上面!
下面是命令行做端口映射 这里是用 virtualboxmanage命令实现的 (具体详情看这里)
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
这里需要注意了! 红色的皆为重要项 不可有误! 第一个VM name 就是虚拟机的名字
对那个虚拟系统实施映射规则 就填写那个系统的虚拟机名字
guestssh 这里就是 规则里的名称 (用来区分多条规则的,不可重复)
tcp 指的是协议类型
tcp,,2222,,22 TCP后面有空 这里应该填host IP 留空的话默认任何IP
2222 指的是访问者端口
2222,,22 这里又有个空 这里应该填guest IP 留空的话默认任意IP
22 最后这个22指的是虚拟机系统的端口号
您的回复是我发帖的动力