从主机访问虚拟机中的网站系列教程(VBox篇)

news/2024/5/12 22:55:57/文章来源:https://blog.csdn.net/weixin_34148508/article/details/90149902

  最近大家开始搭上我们这个学期的关键——Siteweaver,为了这个东西大家无所不用其极,有人换系统,有人开始学习用虚拟机。用虚拟机的同学会发现,我们在使用虚拟机搭建网站的时候,怎么可以方便地从主机和局域网访问到虚拟机中的网站呢?下面就跟着我一起穿越吧,让穿过我们的主机访问到虚拟机里面的网站。

  虽然说VBox的网络功能支持没有VMware完善,但是仍然足够解决到这个访问的问题。

  VBOX提供了好几种的连接方式,有Not Attached、NAT、Bridged、Internal Network和Host-Only Adapter,除了最后一种网络连接方式需要在主机中安装一个虚拟网卡外,其他的都不需要安装虚拟网卡就可以直接使用了,对于使用锐捷的同学们来说是实在是比较好。

2010051110253482.png 
图0

  好吧,上面的只是简单介绍一下连接的方法,下面我们开始穿越吧。

  一、Bridged Adapter

  相信看完了上面的连接方式介绍之后,大家都会对Bridged这种连接方式有印象。我们可以知道桥接网络是让虚拟机和主机处于同一个局域网中。由于它们在同一个局域网中,因此我们可以很直接地访问虚拟机的IP地址,然后直接地访问上面的网站。本方法对使用外网的同学特别适用,因为路由器中的DHCP功能可以直接地分配虚拟机的IP地址,然后我们可以方便地对虚拟机进行访问。但是由于学校用的锐捷只能自动分配一个IP地址,而且对网卡的数量限制为一(特别对于VMware来说,虚拟网卡的禁用相当于扼杀了其强大的网络功能)。因此在学校中用Bridged方式的话需要手动给虚拟机分配IP地址,而且网段需要相同,这样才可能在局域网内进行访问。(由于小弟未成功在校园网内测试,因此这种方式只推荐给外网的同学们使用。)

  下面看看我们是怎么进行相关的设置的。(PS:VirtualBox可是有官方中文的哦!不过下面演示用的是英文。)

2010051110255344.png 
图1-0 VBox主界面

  1.我们在VBox的界面上选中我们的虚拟机(示例用2003ServerR2),猛击工具栏上大大的Setting按扭,得到下面设置界面,然后在左边选中Network,进入网络设置。

2010051110262570.png 
图1-1 网络设置

  2.在连接方式中选择“Bridged Adapter”,然后在下一个选项框中选中你接入网络的网卡(示例用Intel Wifi Link 5100 AGN)。高级选项中选择的是你的虚拟机使用的网卡,如果你的虚拟机虚拟的是Vista以上的系统,请选中Intel的网卡,如果不是,请随便。如此设置后就完毕了。

2010051110263821.png 
图1-2

2010051110264926.png 
图1-3 网卡选项

  3.运行虚拟机,等它启动吧,下面就来见证奇迹的瞬间了。启动完后我们可以看到虚拟机已经显示我们接入网络了(使用校园网的除外),打开本地连接的状态,我们可以看到虚拟机已经从路由器用自动获取了IP地址。

2010040301435947.png 
图1-5

2010040301452613.png 
图1-6 IP获取情况

  4.连接成功后我们来测试一下虚拟机的联网情况,随便打开虚拟机里面的IE,随手输入一个地址,猛击回车看看。联网已经成功了。

2010040301451258.png 
图1-7 联网情况

  5.下面我们在主机中输入虚拟机的地址,看看它的网站是不是在已经可以访问了。

2010040301462525.png 
图1-8 联网情况

2010040301473596.png 
图1-9 联网情况

  就这么简单的一步我们就解决了局域网内访问的问题了,真爽。

  但是可能是VBox的网络能力较弱的问题,访问虚拟机的时候有时会比较慢,有时需要刷新一下,但能够连接已经大大方便了我们做网站了。

  可惜的是校园网连接网络必须经过锐捷认证,这一点比较麻烦。如用Bridged的话,IP地址只能通过手动分配才可以将虚拟机接入局域网,但小弟暂时没办法让虚拟机接上互联网。如用校园网的话,请看下面的第二种连接方式的设置。

  二、NAT连接方式+端口映射

  在校园网中我们需要使用锐捷这个LJ软件来进行认证,因此上面的Bridged方式会很容易受限制。而我们需要的是一个更加快更加好的连接方法。这时候我们就或者就可以考虑使用NAT连接了。

  在VBox的帮助文档中会有关于NAT连接的介绍,英文好的可以去看一下。下面给出一个别人翻译的文档:

   Network Address Translation (NAT)
网络地址转换( NAT )是最简单的方法从一个虚拟机访问外部网。通常,它并不要求在主机网络和客户机上做任何配置。基于这个原因,它是默认的网络模式 。

  设置为通过 NAT 方式连接的一台虚拟机能像一台真正的计算机一样访问互联网,主机就是一只路由器。 在这种方式下,通过 VirtualBox 网络引擎,虚拟机透明地映射到外部网络。 NAT 方式不方便是,很像是在路由器之后的一个专用网络,从外部互联网看来,虚拟机是无形和不能到达的; 您不可能在虚拟机上运行一个服务器,因为外部网络无法访问通过 NAT 方式连接的内部机,除非您设定了端口转发(下述)。

  虚拟机从一个 VirtualBox 整合的 DHCP 服务器得到私有的网址。 这个网址对主机来说是一个完全不同的网络。一台虚拟机的多个网卡可以被设定使用 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,可以手动参考这个进行修改。

  客户机(即虚拟机)送出的网络帧被 VirtualBox 的 NAT 引擎收到,抽取 TCP/IP 数据,再通过主机的操作系统(即安装 VirtualBox 的操作系统)重新发送出去。送到在主机上的一个应用程序,或者到位于主机同一网络的另一台计算机上,它看起来好象是安装在主机上的程序 VirtualBox,通过一个属于主机的 IP 地址,把数据发送出去。VirtualBox  倾听到数据包裹的回复,通过客户机的私人网络重新包装和发送往客户机上。

  你可以设置一个虚拟机的服务(比如 WEB  服务),通过使用命令行工具 VboxManage 代理。你需要知道虚拟机的服务使用哪个端口,然后决定在主机上使用哪个端口(通常但不总是想要使虚拟机和主机使用同一个端口)。在主机上提供一个服务需要使用一个端口,你能使用在主机上没有准备用来提供服务的任何端口。一个怎样设置新的 NAT 例子,在虚拟机上连接到一个 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

  说明:VboxManage 是一个命令行程序,请查询你的 VirtualBox 安装目录,"Linux Guest" 是虚拟主机名。guestssh 是一个自定义的名称,你可以任意设置,通过上面的三个命令,把虚拟机的 22 端口 转发到主机的 2222 端口。

  以上文字来自:http://virtualboxchina.org/viewthread.php?tid=63


看完了上面的翻译,我们基本上可以知道我们需要利用什么工具进行下面的操作了。操作方法有以下两种:
1.使用VirtualBox自带的VBoxManage工具进行命令设置。
2.修改记录虚拟机信息的.xml文件。

  操作方法1:
1.运行CMD(方法:WinKey+R,输入CMD后按回车),然后我们得到一个命令提示符。进行简单的命令到达VBox的安装目录。(不懂命令?还是看图吧。由于小弟安装在E盘,所以目录在E盘喇。)

  命令翻译一次:
  Cd\ [回车]
e: [回车]
Cd e:\virtual machine\sun\virtualbox [回车]
(PS:安装目录地址可以在资源管理器的地址栏中复制粘贴到命令提示符中。)

2010040301490182.png 
图2-1

  2.到达了安装目录后,我们可以在资源管理器中看到下面的文件。

2010040301502287.png 
图2-2 VBoxManage

  这就是我们要进行下面的操作的关键工具。

  3.在命令提示符中输入下面的命令(输入前请将虚拟机和VBOX的界面关掉):
VBoxManage setextradata "2003" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol" TCP [回车]
VBoxManage setextradata "2003" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/GuestPort" 80 [回车]
VBoxManage setextradata "2003" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/HostPort" 2012 [回车]

2010040301510171.png 
图2-3 命令输入情况

   命令解释:
VBoxManage setextradata "2003" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol"
  VBoxManage:VBOX提供的一个强大的设置工具,利用它我们可以进行一系列的设置。
setextradata:是在虚拟机的记录文档中加入后面的信息。
"2003":引号中的文字代表你需要修改的虚拟机的名称,示例中使用的是名称为“2003”的虚拟机。
VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol:
这行代码中,“pcnet”代表的是虚拟机的型号带有pcnet的网卡(详见方法一中的图1-3。),如果你选中的是intel的网卡,请将“pcnet”换成“e1000”,如果是Paravirtualized Network的话请替换成“virtio-net”。
同样地,如果你为虚拟机配置了n个网卡,则要把/0/换成相应的序列。  
/http/:即我们需要给使用“http”服务进行端口映射,如果你需要其他的服务,请将其替换成相应服务的名称,服务名称请自定义,没有限制
“Protocol、GuestPort、HostPort”对应就是“协议、虚拟机需要映射的端口、主机映射的端口”。通常协议使用的是TCP,而IIS中默认使用的端口是80,如果有换成别的请将后面的数字替换成你的端口号。同样地,主机中映射的端口请使用未占用的端口,不然会造成无法访问。

  以上操作请小心进行,如写入出错的话会导致虚拟机启动出错,结果是我们需要到任务管理器中Kill掉VBOX的两个进程才可以重新操作。如实在不能启动,可删除相应虚拟机后重新建立,只要虚拟硬盘文件安好就可以

  4.运行完后我们去将虚拟机的网络连接方式设置成NAT连接,并在高级选项中选中你刚刚设置端口映射时的网卡型号(PCnet对应的是pcnetXXXXX的,e1000对应的是intel的,virtio-net就是只有一个了),而且猛击确定后启动虚拟机。

2010040301531447.png 
图2-4 NAT网络设置

  5.启动后我们在主机中打开浏览器,输入:http://localhost:2012/sw(解释,2012是刚刚设置映射的端口,sw是网站对应的虚拟目录),回车后可以看到:

2010040301535080.png 
图2-5

  同时会发现运行速度比Bridged模式要快,原因不明。
后台登录:

2010040301540677.png 
图2-6

  以上图片请注意地址栏的地址。

  经过上面的方法大家或者会觉得,这样的操作实际是太麻烦了,因此我们还有另外的方法。

  操作方法2:
  1.首先我们需要找到VirtualBox存放虚拟机的设置文档的地方(通常是在系统用户的“我的文档”当中会有一个叫“.virtualbox”的文件夹。如果找不到,可以参考下图,在VBOX界面左上角的File菜单中找到Preferences选项,进入后就可以找到Default Machine Folder的地址了。)

2010040301562871.png 
图2-7 查找设置文件目录

  2.打开相应的文件夹后发现里面存在了我们在软件中创建的虚拟机:

2010040301573325.png 
图2-8

  3.打开“2003”文件夹,里面会有一个.xml的文档,用记事本打开后发现里面都很混乱,不妨用Dreamweaver打开,以获得一个相对干净的界面。

2010040301583903.png 
图2-9

  4.我们在图中可以看到(图中的文件是我在操作前进行的备份,因此参数有部分不一样,但不妨碍下面的介绍)刚刚我们利用VBoxmanage修改的相应参数其实就是“Extradata”中的内容。

2010040301590354.png 
图2-10 修改前代码

2010040301594580.png 
图2-11 修改后代码

  因此,我们只需要在相应代码中加入以下的三行代码,就完成了刚刚我们在命令提示符中的操作了。
      <ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/GuestPort" value="80"/>
      <ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/HostPort" value="2012"/>
      <ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol" value="TCP"/>

  5.保存后我们启动虚拟机,进行刚刚方法1中的测试,发现结果是完全一样的,泪流满面。

  经过上面的设置后,我们已经可以在主机访问到虚拟机的网站了。但是大家会发现,局域网中的其他电脑貌似还不能访问到我们的网站,这样的话我们就需要进行以下的设置。

  三、防火墙设置:
1.打开控制面板,找到我们的防火墙设置。(示例使用win7)

2010040302021050.png 
图3-1 防火墙设置

  2.点击左侧的“Advanced Setting”,进入高级设置界面。

2010040302022482.png 
图3-2 高级设置界面

  3.点击左侧的“Inbound Rules”(入站规则),然后右键新建一个规则。

2010040302023626.png 
图3-3 添加端口规则

  4.选择第二项“端口”,下一步后填入你刚刚设置的端口,选择相应设置的协议(TCP),下一步。

2010040302025087.png 
图3-4 添加端口规则

  5.选择允许所有连接后,不断下一步并在最后添加一个命名就可以了。

2010040302025837.png 
图3-5 允许访问设置

  6.完成规则设置后,请在局域网内机器的浏览器中输入你的主机的IP地址+端口,直接访问你的网站。地址形式:http://xxx.xxx.xxx.xxx:2012/

2010040302032243.png 
图3-6 实测情况

  关于防火墙的设置:
很多时候我们已经设置好所以选项后发现然后没有办法连接到虚拟机中的网站,这时不妨考虑一下关闭虚拟机系统和主机中的防火墙,暂时用于测试。一般来说这样就可以连接上了。同时大家可以参阅以下的文章:
《一起来穿越吧,穿过主机访问虚拟机中的网站系列教程(IIS及防火墙篇)》

  总结一下,NAT这种连接方式有一个很好的地方就是可以直接就连网,无须其他设置就可以让虚拟机连网。但缺点就是没办法直接与主机访问,搭载在虚拟机上的网站需要经过以上的设置才可以成功在局域网内访问。而Bridged这种方式也是很好的方法,但在校园网只能自动分配一个IP的情况下,小弟暂时没有机会去研究Bridged在校园网中的使用方法(因为宿舍用的是外网)。未来会集中力量解决问题。现在请优先使用第二种方法,端口映射设置完毕后访问的速度很不错,推荐。

  到这里,有关VBOX的穿越教程就到这里了,其实VirtualBox是很好用的一个虚拟机软件啊,如果有兴趣的话大家可以尝试使用。不过还是首先推荐用VMware,主流嘛。




本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2010/05/11/1732315.html如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_722617.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp的网站能封装成app吗_在线网站封装APP评测:性价比最高的竟然是它?

如果你有一个网站&#xff0c;想给网站加个壳&#xff0c;封装成一个app&#xff0c;点开之后显示的还是网站&#xff0c;可以实现吗&#xff1f;我的回答是肯定的&#xff0c;这就是网站封装APP。现在APP的开发成本很高&#xff0c;很多热倾向于通过封装打包网站来实现“快速开…

linux文件的链接可分为6,linux中有几种文件类型_网站服务器运行维护,linux,文件类型...

linux下编译程序找不到头文件_网站服务器运行维护linux下编译程序找不到头文件的解决方法是&#xff1a;1、首先执行【find / -name xxx.h】命令&#xff0c;查找路径&#xff1b;2、然后执行【gcc test.c -o test -I /usr/local/include/xxx】命令即可。1、普通文件( 数据文件…

linux nginx php网站渗透,Linux系统下nginx+php清理服务器网站日志怎么弄

Linux系统下nginxphp清理服务器网站日志怎么弄发布时间&#xff1a;2020-10-16 15:01:59来源&#xff1a;亿速云阅读&#xff1a;78作者&#xff1a;小新这篇文章主要介绍了Linux系统下nginxphp清理服务器网站日志怎么弄&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以…

onmouseover 事件

, , , , , , , , , , , , , to , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 支持该事件的 JavaScript 对象&#xff1a;layer, link实例 1在下面的例子中&#xff0c;我们将在用户把鼠标指针移动到图像上时显示一个对话框&#xff1a; onmouseover"…

Nginx配置HTTPS证书网站

前提&#xff1a; 1、主机需要先安装openssl 2、编译安装nginx时&#xff0c;要加上--with-http_ssl_module 这个ssl模块 现在开始配置&#xff1a;&#xff08;我当时配置时&#xff0c;主机已安装了openssl&#xff0c;但编译时没有加载http_ssl_module模块&#xff0c;所以…

nicetool好工具_上进青年研习社丨这6个工具合集网站,抵过上百个软件!

文丨小渔不知道你们有没有这样的经历&#xff1a;为了一些小的需求&#xff0c;在手机上或是电脑上下了一堆软件。虽然用过觉得也挺好用的&#xff0c;但是平时的使用频率真的不高啊。等你把它们都卸载了&#xff0c;过了一段时间突然又需要用它了。所以&#xff0c;今天小渔要…

快站模板 连接mysql_如何轻松建站?站点一键部署搭建(详细教程)

来越多的人选择个人建站&#xff0c;个人站长虽然门槛很低&#xff0c;但是有些朋友觉得Linux服务器各种复杂的命令脚本让自己没法搭建环境。今天就给大家推荐一款使用方便、功能强大的快速建站工具——云帮手&#xff0c;支持 Linux 与 Windows 系统&#xff0c;可一键配置搭建…

查看 db2 正在 运行的sql_介绍两个刷 SQL 题的网站

今天有朋友在群里问到&#xff1a;在哪可以刷 SQL 题&#xff1f;其实&#xff0c;要刷 SQL 题&#xff0c;对着《SQL COOKBOOK》、《SQL 经典实例》这两本书&#xff0c;把所有实例从头到尾全部实现一遍就很厉害了。不过&#xff0c;我想她的本意是想知道有没有关于 SQL 的 On…

html使用bootstrap无效果,[0失败]手把手教你用Bootstrap做个人网站

作为一个纯小白手残星人&#xff0c;总想自己做一个网站&#xff0c;Wix&#xff0c;Strikingly这一类的可视化建站的工具&#xff0c;自由度不高&#xff0c;付费贼贵&#xff0c;自己做的又不好看又费时间&#xff0c;听说bootstrap这种前端框架可以自己做网页&#xff0c;之…

实验六:MYSQL+PHP的网站搭建

实验目的&#xff1a;掌握MYSQLPHP的网站的搭建过程实验准备&#xff1a;一台Server&#xff0c;一台Client实验前的准备&#xff1a;搭建一台web服务器&#xff08;过程省略&#xff09;实验步骤&#xff1a;步骤一1.安装PHP数据包解压php-5.1.4-Win32这个解压包&#xff0c;把…

沙发家具网站源码_2020年(双十二)沙发选购全攻略~~

沙发算是家庭装修最昂贵的家具之一&#xff0c;当然我特别建议选购时亲自试用感受它们&#xff0c;由于这些物品尺寸的特殊性&#xff0c;网购最担心的就是购买后自己如果不喜欢&#xff0c;退货麻烦以及昂贵的运费。现在由于网上购物的便利&#xff0c;以及网上的风格多样化&a…

java项目修改html文件类型,爱了!Guide哥手把手教你搭建一个文档类型的网站!免费且高速!...

这篇文章 Guide 哥就手把手教大家搭建一个像下面这样的文档类型的网站&#xff0c;你可以用来当做项目的说明文档&#xff0c;也还可以当做自己专属的知识小仓库。一.前置条件确保自己电脑下载安装了 NPM 并且使用这个命令&#xff1a; npm i docsify-cli -g安装了 docsify-cli…

LNMP动态网站部署架构 Linux + Nginx 配置Nginx服务

1、解压、编译、生成、安装Nginx服务程序的源码文件Perl语言软件包pcre2、openssl软件包安装/usr/local/openssl/bin目录添加到PATH环境变量中。3、安装zlib软件包4、创建一个用于执行Nginx服务程序的账户。5、在使用命令编译Nginx服务程序时&#xff0c;需要设置特别多的参数&…

网站实时显示人数服务器插件,WordPress网站显示实时在线人数代码分享,显示当前在线浏览人数...

其实Wordpress有类似的插件&#xff0c;比如&#xff1a;WP OnlineCounter、WP-User Online等&#xff0c;不过这些插件都会向数据库中写入数据&#xff0c;并频繁读取数据库&#xff0c;只为了实现这个蛋疼的小功能&#xff0c;不是很划算。随时了解一下当前有多少访客在浏览自…

qt listwidget 关键字颜色_seo关键字优化工具如何收费

如何收费sj67745eo关键字优化工具&#xff0c;企业经常采用SEO优化&#xff0c;以获得更好的排名和更好的流量自己的网站。搜索引擎优化有哪些方法&#xff1f;或者什么更有效&#xff1f;任何一个站点&#xff0c;都是无法脱离内容&#xff0c;它是网站建设的基石&#xff0c;…

安卓封装网站源码_h5封装是什么意思_h5封装的app与原生的有什么区别

什么是h5封装&#xff1f;h5封装APP是指将h5网站或web网站进行打包制作成APP软件&#xff0c;无需编写原生代码即可完成APP开发&#xff0c;同时支持苹果和安卓两个系统。除了网站本身的功能内容之外&#xff0c;鹿客邦还将提供多样的插件&#xff0c;丰富APP的功能。封装后的a…

fiddler如何设置过滤https_传奇网站被劫持怎么办?如何设置网站https防劫持 申请免费https和配置教程...

现在劫持相当严重&#xff0c;很多朋友在开区时网站被各种劫持&#xff0c;所以今天给大家分享一个把网站http变成https的教程&#xff0c;能有效防止网站劫持&#xff0c;注意&#xff1a;现在的各大登陆器还不支持https&#xff0c;所以列表地址你还是得用http&#xff0c;所…

在div中显示html_网站开发为什么使用div+css布局?

DIVCSS是WEB设计标准&#xff0c;它是一种网页的布局方法。与传统中通过表格&#xff08;table&#xff09;布局定位的方式不同&#xff0c;它可以实现网页页面内容与表现相分离。使用DIVCSS布局的优势1、符合W3C标准。这保证您的网站不会因为将来网络应用的升级而被淘汰。2、对…

长尾词推广系统推荐乐云seo_吴桥信息如何推广广方法有哪些

吴桥信息如何推广广方法有哪些大词虽然搜索量比较高&#xff0c;但是客户都不是精准客户&#xff0c;很多打电话过来&#xff0c;只是问一下价格&#xff0c;购买的需求度并不高但是精准词就不一样了&#xff0c;精准词一般都是通过二次搜索&#xff0c;客户精准度比较高虽然给…

IIS 部署 Python Django网站流程(受够了野路子)

知道的&#xff0c;百度上搜出来的东西质量令人唏嘘。当你求助的时候多半还得靠自己&#xff0c;或者靠Google 介入正题&#xff0c;详细来一遍流程吧 当然&#xff0c;我是用Visual Studio 2019 来编辑开发Django项目的&#xff0c;如果你也是那么巧了。这可以帮你 如果你Djan…