VirtualBox下使用NAT模式实现外部访问guest(端口映射)
2011-12-13 16:39
405 查看
虚拟环境:Host是Windows XP,Guest是Fedora Linux,虚拟机是VirtualBox2.06。
用过VB都知道,默认网络配置下(NAT),Guest是对Host不可见的,对局域网以及以外都是不可见(指网络上的不可访问)。我希望通过配置,能从Host以及外部网络访问Guest提供的服务,比如ssh。
VB中Guest的网络模式主要有NAT和Bridge(桥接)两种。桥接是可以很好的实现我的想法的,但是一般来说VB下的桥接很难做:我按照手册上的方法做好,桥接建立好了当时导致Host却不能上网了。囧!不知道到底要怎么设置了 =,=。Quark说可以使用NAT方式下VB提供的端口映射功能实现我的要求。参照VB手册:
This means that VirtualBox listens to certain ports on the host and resends all packages which arrive on them to the guest on the ports used by the services being forwarded.
就是说,假设把Host的端口A Forward到Guest的端口B,那么这个机制就是把A发过来的数据送进B,使用Guest的服务处理数据之后返回。那么,如果就可以在Host里SSH到localhost的端口A来访问Guest的SSH服务了(端口22)。VB的手册里举的就是SSH的例子,关闭VB,然后在windows命令行下进入到VB的安装目录。使用以下的命令:
VBoxManage setextradata "<GusetName>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "<GusetName>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "<GusetName>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222
注意:<GuestName>是你虚拟机中Guest的名字。假设你使用的是pcnet的虚拟网卡,如果你选择的是intel PRO/1000网卡,那么用"e1000"替换"pcnet"。2222可以是随便一个Host上没有被使用的端口。另外注意大小写,这些设置都是Case Sensitive的!
启动你的Guest系统,开启ssh服务,在Host里面用ssh客户端(推荐Putty)用ssh协议连接localhost:2222,如果连接成功,那么恭喜!如果连接被拒绝,那么可能是防火墙的阻拦。在ArchLinux下有/etc/hosts.allow、/etc/hosts.deny这些文件,Fedora10使用的是iptables。具体可以参照相关手册,来允许客户端的连接。我就是把iptables里面所有的规则全部灭了才连接成功的。
本文来源:http://my.unix-center.net/~Simon_fu/?p=632
【图形界面】
用过VB都知道,默认网络配置下(NAT),Guest是对Host不可见的,对局域网以及以外都是不可见(指网络上的不可访问)。我希望通过配置,能从Host以及外部网络访问Guest提供的服务,比如ssh。
VB中Guest的网络模式主要有NAT和Bridge(桥接)两种。桥接是可以很好的实现我的想法的,但是一般来说VB下的桥接很难做:我按照手册上的方法做好,桥接建立好了当时导致Host却不能上网了。囧!不知道到底要怎么设置了 =,=。Quark说可以使用NAT方式下VB提供的端口映射功能实现我的要求。参照VB手册:
This means that VirtualBox listens to certain ports on the host and resends all packages which arrive on them to the guest on the ports used by the services being forwarded.
就是说,假设把Host的端口A Forward到Guest的端口B,那么这个机制就是把A发过来的数据送进B,使用Guest的服务处理数据之后返回。那么,如果就可以在Host里SSH到localhost的端口A来访问Guest的SSH服务了(端口22)。VB的手册里举的就是SSH的例子,关闭VB,然后在windows命令行下进入到VB的安装目录。使用以下的命令:
VBoxManage setextradata "<GusetName>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "<GusetName>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "<GusetName>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222
注意:<GuestName>是你虚拟机中Guest的名字。假设你使用的是pcnet的虚拟网卡,如果你选择的是intel PRO/1000网卡,那么用"e1000"替换"pcnet"。2222可以是随便一个Host上没有被使用的端口。另外注意大小写,这些设置都是Case Sensitive的!
启动你的Guest系统,开启ssh服务,在Host里面用ssh客户端(推荐Putty)用ssh协议连接localhost:2222,如果连接成功,那么恭喜!如果连接被拒绝,那么可能是防火墙的阻拦。在ArchLinux下有/etc/hosts.allow、/etc/hosts.deny这些文件,Fedora10使用的是iptables。具体可以参照相关手册,来允许客户端的连接。我就是把iptables里面所有的规则全部灭了才连接成功的。
本文来源:http://my.unix-center.net/~Simon_fu/?p=632
【图形界面】
![](http://hi.csdn.net/attachment/201112/13/0_1323765673y034.gif)
相关文章推荐
- VirtualBox下使用NAT模式实现外部访问guest
- VirtualBox,使用NAT模式,从host访问guest的服务
- VirtualBox 使用 NAT 方式实现端口映射
- VirtualBox NAT 模式下host访问guest
- Ubuntu下virtualbox nat网络模式下 实现宿主机访问虚拟机
- virtualbox nat网络模式下 实现宿主机访问虚拟机
- Ubuntu下virtualbox nat网络模式下 实现宿主机访问虚拟机
- virtualbox安装虚拟机 实现虚拟机 NAT模式和端口转发配置
- 在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离
- VirtualBox在NAT模式下虚拟机与宿主机互相通信的实现方法
- VirtualBox (NAT模式) 实现 SSH
- 局域网内PC机通过设置端口映射,访问宿主机NAT模式下虚拟机的数据库
- virtualbox 中,虚拟机网络使用NAT方式时,其它机器对虚拟机的访问
- 通过virtualbox的port forwarding(端口映射/传递)功能实现对Ubuntu虚拟机的远程访问
- 无法使用VMware以NAT模式连接本地网络(实现虚拟机跟主机共享网络)
- hadoop学习之-使用ODCH工具实现oralce外部表访问HDFS数据文件
- 【VirtualBox】NAT模式下主机访问客机的设置
- 运行在VMware上的Linux虚拟机如何使用NAT模式连接物理机的外部网络
- VBOX使用NAT端口转发实现宿主机器访问genymotion上的web服务
- 使用NAT模式实现外网连接虚拟机的Web服务