当使用虚拟机网络采用NAT时虚拟机访问外网访问内网主机都没有问题但是要想从内网访问虚机机成了问题,这个时候采用解决办法很多,如果只在本机访问虚机那么可以给虚机机安装双网卡其中一块网卡模式选择成Host-Only模式就行了!但是想从内网的其他主机访问该虚机就要采用其他办法了,桥接的方式我没有用!我采用的是端口映射的方式。因为端口映射方式有很多好处,第一因为我的虚拟机是Linux,物理机是XP我只要能才内网其他机器ssh到我的虚机就可以管理我的虚机了所以采用端口映射很爽,另外端口映射也可以把虚机机的另外一些服务映射处理例如ftp、http等,如果应用到生产部署上将起到安全性的作用不过这部分我还没有多想!
话不多说操练起来:(转自rem1x is denied 内容稍有改动)
VirtualBox端口映射步骤:
选择的网络方式为NAT,通过增加端口映射的规则实现host机访问guest机:
VBoxManage setextradata 虚拟机名 “VBoxInternal/Devices/pcnet/0/LUN#0/Config/端口映射规则名称/UDP” 0
VBoxManage setextradata 虚拟机名 “VBoxInternal/Devices/pcnet/0/LUN#0/Config/端口映射规则名称/GuestPort” GUEST端口
VBoxManage setextradata 虚拟机名 “VBoxInternal/Devices/pcnet/0/LUN#0/Config/端口映射规则名称/HostPort” HOST端口
这样即可为指定的虚拟机建立一个指定名称的端口映射规则,建立此规则后连接到Host的”HOST端口”时即相当于连接到Guest的”GUEST 端口”。如为名为Arch的虚拟机建立一个名为ssh的端口映射规则,使得能从名部用ssh登陆到虚拟机中,可用如下命令:
VBoxManage setextradata Arch “VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/UDP” 0
VBoxManage setextradata Arch “VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort” 22
VBoxManage setextradata Arch “VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort” 2222
这样即在在Host中使用”ssh -p 2222 “登陆到Guest机。
注意: arch 为VM名称,ssh 可以随便更改但建议为了标明作用最好根据用途命名,另外如果需要策略生效应重启虚机机!
VMWare 虚拟机端口映射:
选择菜单里的 Edit ->virtual network settings 打开对话框,然后选择NAT页,点击Edit,在打开的对话框中点Port forwarding按钮,然后点Incoming TCP Ports里的Add,打开Map Incoming Port对话框,在Host port中填9065,Virtual Machine IP Address填客户机(REDHAT)的IP地址,Port也填9065,后面的Description为这个映射的描述,随便填;
添加9200端口映射也同理,把前面的的9065换成9200就可以了。
设置后重启虚拟机,从外网测试可以顺利登陆你的SA服务器了。