Tag Archives: prot forwarding
配置NAT的端口转发
[直接翻译自VirtualBox的手册] 6.4.1. 配置NAT的端口转发 当VirtualBox中的客户机通过NAT与主机连接时,客户机是对主机不可见的,客户机上的网络服务对于主机或者是同一网络的其他机器是不可访问的.然而,VirtualBox能通过使用端口转发来是所选的网络服务对外部可用.这意味着VirtualBox能够监听主机上确定端口并且重发所有到达这些端口的数据包至客户机上开启了端口转发功能的某些端口. 对于一个主机上的应用程序或者是同一网络的实体(或虚拟)机器来说,看起来访问服务好像是通过主机上确实运行的代理(注意:这也意味着你将不能在主机上再在这些端口上开启某些服务).然而,你依然会体会到在虚拟机中运行服务的好处–举个例子来说, 客户机上某些服务的漏洞或者缺陷不会危害到主机上的服务或者其他的虚拟机或是使他们崩溃,并且服务可以运行在不同的操作系统中. 你可以通过使用命令行工具VBoxManage来设置客户机上要代理的服务.你需要知道客户机上的哪些端口会被服务使用到,这样你才能决定主机上的哪些端口(一般来讲,你不会在主机和客户机上使用相同的端口).你可以使用没有被主机上服务锁占用的任意端口.下面是一个示例,通过三条命令来设置主机和同网络的外部机器访问客户机的ssh服务: VBoxManage setextradata “Linux Guest” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol” TCP VBoxManage setextradata “Linux Guest” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort” 22 VBoxManage setextradata “Linux Guest” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort” 2222 上述示例假定使用的是PCNet虚拟网卡;如果你配置的客户机使用的是PRO/1000,请把上述命令中的”pcnet”换成”e1000″.类似的,如果你想要配置不同的网卡可以相应地修改掉pcnet或者e1000后的数字. 一方面,pcnet和e1000是完全隔离开的,但是这两种类型都是从0开始数的. guestssh这个名字是为转发配置随意取的. 配置生效后,主机上所有2222端口的TCP连接将会被转发到客户机的22端口.协议可以是TCP也可以是UDP(大小写敏感).要删除这项映射,使用同样的命令,但是将设置的值留空(在这里是TCP, 22以及2222). 虚拟机运行着的时候是没有办法配置端口转发的.然而你可以修改暂停保存或者关机后的虚拟机的此项设定. 下面是我自己的示例: 我的客户机叫ArchStation,配置的是intel pro网卡在第一槽内.我要添加客户机80端口上运行的http服务到主机的7080端口. VBoxManage setextradata “ArchStation” “VBoxInternal/Devices/e1000/0/LUN#0/Config/http/Protocol” TCP VBoxManage setextradata “ArchStation” “VBoxInternal/Devices/e1000/0/LUN#0/Config/http/GuestPort” 80 VBoxManage setextradata “ArchStation” “VBoxInternal/Devices/e1000/0/LUN#0/Config/http/HostPort” 7080


在
在
在