发布新日志

  • 第5章 Linux在VMware虚拟机中的网络设置 转

    2009-03-20 12:09:38

    对于广大学习Linux的爱好者,特别是初学者来说,使用虚拟机的方式来安装学习Linux是很理想的方案。这样既可以在windows下使用网络来搜索资料,又可以立即在Linux系统平台下实践,但是困扰大家的往往就是虚拟机中网络的配置。

    下面我就结合我自己的学习实践经验谈一点我对这个虚拟机的理解。在谈这个之前,首先要求vmware需要正确被安装,特别是VmwareTools,最好也要安装,并启动Vmware服务。具体设置vmwaretools的方法网上有很多大家可以自己搜索。

    1   什么是虚拟机

    设置上的困难是源于对vmware虚拟机本质的不理解,所以大家往往设置起来就无所适从。vmware安装好以后,会自动添加两张网卡(可以在网络属性中找到),这么多网卡,到底怎么设置,想了半天,突然来了灵感,终于有了一点头绪。

    我个人认为,Vmware虽然是一个windows下的软件,但是把其可以看成是单独的计算机好像更合理一些,这样安装好linux虚拟系统后,其实整个机器的结构就可以抽象成这样:

    虚拟机系统《虚拟网卡vmnet0》―――(vmnet1 vmnet8)―――实际系统《网卡》。其实也就是 (虚拟计算机系统 、网络设备、实际计算机系统)

    如果你在安装虚拟机选择使用网络的方式是桥接的话,那么vmware就模拟成一个网桥的功能,就只使用 vmnet1网卡,vmnet8就可能不用;

    如果在安装虚拟机选择使用网络的方式是NAT方式的话,那么vmware就模拟成了一个 具有DHCP功能的 路由器或网关,这个时候vmnet8就要派上用场了;

    对于一般学习操作系统使用者来说,这两种方式就差不多了,如果是做网络模拟的,就可以使用vmnet2vmnet7这几个,其实本质上这些网卡功能都是vmware虚拟出来的,和vmnet0一样,使用方式都是一样的。

    我想,只要理解了vmware的实质就是模拟成一台具有两张网卡的计算机,是虚拟机和实际机器的网络节点就可以,理解了本质,就可以有的放矢的去设置。

    2   如何设置网络

    vmware安装好了以后,会自动设置自动生成的两张网卡vmnet1vmnet8。这两个设置一般不要改动,我们只要直接进入虚拟机上的系统,并在该系统内设置系统虚礼的网卡就可以了。

    1)使用桥接方式:直接设置

    例子: 我的虚拟linux系统选择的桥接方式,因为我实验室还有多余的IP地址,所以和windows系统一样的去配置vmnet0,就可以了,在虚拟系统上,可以方便的访问内部局域网和校园网,至于用拨号的方式上外网。

    2Nat方式:

    如果你的ip地址有限,那只有使用Nat方式去设置了,这个要麻烦一些,关键在于三点:

    1.确定虚拟机上的虚礼网卡和vmnet1的网络号相同;

    2.在虚拟系统里设置网络属性,把网关地址设为vmnet1的地址;

    3.开启主系统的路由功能,使它成为一台路由器。

    事实上,如果你只需要虚拟系统和主系统通信,而不需要和主系统所在的真实网络上的其他主机通信的话只要满足第一点就可以了。因为满足第一点,主系统和虚拟系统就在同一网络中了,不需要路由器便可通信。但是大多数情况下我们需要虚拟系统和主系统所在的真实网络通信,这就需要满足其他两点了,并且需要多余的一个在实际网络中的有效帐号给vmnet8使用。

    3   Nat方案的具体设置过程

    3.1我们先来让虚拟系统和主系统联系上

    VMware安装的时候安装程序会自动给vmnet1分配一个IP地址,下面是笔者电脑上例子:

    vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01

    inet addr:192.168.239.1 Bcast:192.168.239.255 Mask:255.255.255.0

    在第二行可以看到安装程序给vmnet1分配的IP地址为192.168.239.1(注意每次安装VMware IP地址是随机分配的,实际的情况与这里的例子会不同)。即虚拟网卡vmnet1属于网络192.168.239。因此,我们需要启动虚拟系统,设置网络属性,把虚拟系统的网卡的IP地址设置为192.168.239.x x为除1以外2~254之间的任意数字笔者把它设置为2),把网关设置为vmnet1的地址:192.168.239.1(如果不和外界真实网络通信的话网关可以不设)windows 2000XP 设置后立即生效,win98需要重新启动,linux需要使用命令#service network restart重新启动网络服务。

    这时候可以在虚拟系统上使用ping命令测试 一下到localhost和网关通不通,基本上没有问题都会通的。

    3.2让虚拟系统和主系统所在的真实网络通信

    3.2.1       首先在你的电脑上需要有一块与真实网络相连真实的网卡

    vmnet8就在与真实网络通讯的时候起作用了,vmnet8会和真实网卡对应起来,虚拟系统要发送数据包到真实网络中的时候,真实系统是一台路由器,首先数据发到虚拟网卡vmnet1,然后经过路由器(这里就是主系统linux)发到vmnet8,由于vmnet8和真实网卡是对应起来的,这一机制是有vmware完成的,所以发到vmnet8上的网卡就等于传送到了真实网卡上,然后数据包再通过真实网卡发送到真实网络。如果你的系统上有两块以上的真实网卡,在安装的时候安装程序会询问把虚拟网卡对应到哪个真实网卡上,可以根据实际情况选择。

    vmnet8IP地址设置为和真实网卡在同一网络的地址,假设真实网络的网络号为192.168.0,真实网卡的IP地址为192.168.0.1则可设置vmnet8IP地址为192.168.0.2。当然,vmnet8也要占用一个有效的IP地址。

    进一步抽象上两步的本质就是:

    1)将虚拟机的网卡vmnet0vmware的网卡vmnet1设置成一个网段;

    2)就是将vmware的网卡vmnet8和实际计算机的网卡放在同一网段;

    3.2.2       那么下一步就是在实际的计算机中安装代理或路由的功能:

    1)如果你的实际系统是linux的话(估计这种情况不多见),只要开启了linux的路由功能虚拟系统就可以和外界通讯了。基本上用linux来做路由器甚至不需要额外的软件,linux的内核直接支持静态路由的功能。我们要做的只是把路由功能打开就可以了。

    可以先看看路由表:

    #route

    确定所有网卡的IP地址或网络地址都在Destination一栏里,如下:

    -------------------------------------------------------------------------------

    Kernel IP routing table

    Destination Gateway Genmask Flags Metric Ref Use Iface

    192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

    192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

    192.168.0.0 * 255.255.255.0 U 0 0 0 vmnet8

    192.168.221.0 * 255.255.255.0 U 0 0 0 vmnet1

    127.0.0.0 * 255.0.0.0 U 0 0 0 lo

    default http://www.gucuiwen.co/ 0.0.0.0 UG 0 0 0 eth0

    -------------------------------------------------------------------------------

    默认情况下启动网络设备的时候系统会把该设备的IP地址添加到路由表中,如果没有的话可以重新启动一下网络服务:

    #service network restart

    再来开启路由功能:

    # echo 1 > /proc/sys/net/ipv4/ip_forward

    至此,linux的路由功能已经打开,你的linux系统已经成了一台路由器,连接着虚拟的网络和真实网络。虚拟网络和真实网络间就可以通信了。出于安全考虑,如果有必要的话还需要用iptables命令来设置一下路由规则。

    2)如果实际系统是Windows下的话,那开启路由功能要比linux下稍微麻烦一点。

    Windows下的虚拟机的网络设置大致和linux下的相同,只不过需要安装额外的路由软件,在Windows平台上有很多这样的软件可以用,比如 SysGate WinGate等,如果用的是Windows 2000 Server 或者是Windows NT Server 的话可以用系统自带的"路由和远程访问"软件。具体的设置大家可以去网络上搜索。

    当然,vmware的功能不只有这些,如果你的电脑硬件足够的好,有1G以上的内存和2G以上的CPU的话,那你也可以同时运行几台虚拟机,把这几台虚拟机组成一个网络,这样在一台电脑上就可以有一个功能强大的网络实验平台了。

  • linux重新入门

    2009-02-25 17:18:18

       Linux想学好久了,但是因为自己的惰性,致使没有学下去,学的东西也只是一点皮毛,今天终于得到红联的一个Linux的学习刊物,重新又学了一遍,当是巩固,以后当勤于练习,才能学有所得,小小的纪念一下,顺便把这个学习刊物与大家一起分享,下载链接地址
  • 【转】VMware访问Windows宿主机的共享文件

    2008-12-31 15:46:43

    虚拟机的使用,的确给Linux的学习者提供了很大的方便。不过在Linux学习过程中,当涉及到应用软件的使用时,虽然可以直接从网上下载程序包或源码,但用惯了迅雷,对Linux中的下载速度简直无法忍受,且原有的很多资源本应该可以直接使用,没有必要重新下载。因而在两个系统中共享信息成为亟待解决的问题。

        在网上搜索了大量相关信息,介绍两个系统间信息共享的不少,但是提供虚拟机host-guest机不同系统之间资源共享解决方案的不多。在朋友的帮助下,经过多次尝试和摸索,终于有了一些搜获。现提供一套包括局域网配置在内的较为详细的解决方案,供初学者参考。

          转载请注明本站版权:微品质工作室版权所有

    FTP法

        环境介绍:
             虚拟机:VMware Workstation 5.5
             Host机系统:Windows 2000 Server
             Guest机系统:Red Hat Enterprise Linux 4

         其实作为两个系统而言,要进行资源的共享,方法很多,最初我尝试了使用mount命令挂载文件系统。从命令本身来看,想要挂载一个Windows下的文件系统或驱动盘似乎没有什么问题。

         首先在Linux系统/mnt空目录下,建立挂载点:#mkdir /mnt/mystudy 
         /mnt目录是专门用来当作挂载点的目录。mystudy是自定义的专用挂载点名称。

         然后我们看一下mount命令的使用方法: 
         命令格式:  mount [-t vfstype] [-o options] device dir 
         主要参数:
           ① -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型,Windows NT ntfs文件系统:ntfs 
           ② -o options 主要用来描述设备或档案的挂接方式。
           ③ device:要挂接(mount)的设备。Linux中,设备名通常存放在/dev中,设备名遵循一些规则,如:/dev/hda1中,hd指Hard Disk,a代表第一个硬盘设备,1代表第一个硬盘的第一主分区。
           ④ dir:设备在系统上的挂接点(mount point)。如,我们刚刚建立的挂载点:/mnt/mystudy

         遵循此规则,希望挂载硬盘的第二个主分区,
         键入命令: #mount -t ntfs /dev/hda2 /mnt/mystudy 
         返回信息: Mount:fs type ntfs not supported by kernel

         竟然无法找到ntfs格式的分区?那么我的Windows系统跑到哪里去了?

         查看一下查看一下分区情况:#fdisk –L 
         得到如下结果:

         发现根本没有找到Windows的分区。
         这个时候才想起,我的Linux装在虚拟机里,虚拟机分配给Linux系统的设备仅仅是8G大小的虚拟硬盘分区,所以根本没有办法挂载Windows系统所在的分区以及其他的硬盘分区。

         那么在虚拟机环境下,想要共享资源,mount命令基本上派不上用场了,只能从联机的方式来考虑了。

         提供最常用的两种方案:

           1.  FTP访问
           2.  Samba服务

        不管是FTP还是Samba,首先都需要分析虚拟机环境下的Host-Guest网络连接。基本上我们可以把Host机与Guest机之间当作局域网中的两台机器来实现互联。那么现在需要重新考虑关于《虚拟机的网络配置》一文中提到过的网络连接方式。

     

        当时我们选择以NAT模式进行网络连接,这是一种使用DHCP服务进行网络连接的方式,也就是说,Guest机并没有自己的固定IP地址,这个地址是在启动了系统之后,从Host机上取得的、一个暂时提供给Guest机使用的IP地址。在这种网络连接方式下,设置Guest机中系统的IP获取方式为自动获取,不管Host机联网的方式如何,只要Host能上网,Guest机也可以上网。

        虽然选择这种方式,外网连接是很方便,可是在Host-Guest之间的局域网连接真的让人伤透了脑筋,虚拟网卡VMnet8的IP与Host机的IP不在同一网段,折腾了一个晚上也没有找到好的解决办法,最后舍弃了NAT模式。将Linux虚拟机的网连方式改为了Bridge。

        Bridge模式将虚拟主机的虚拟网卡桥接到一个Host主机的物理网卡上,可以理解为Guest机和Host主机处于对等的地位,在网络关系上是平等的,对于我这种对路由的事情比较白痴的人来说,这是最易理解的一种局域网互联方式。

        我的使用网络服务是小区LAN网,IP自然是自动获取的,不用花心思改动它,将Guest机的网络也设置成为自动获取IP:
        应用程序-->系统设置-->网络-->编辑eth0设备

       Host机的ipconfig结果:

     

       Guest机ifconfig结果为:

        看到了吧?Host和Guest在同一网段,基本上就像局域网里面的两台机器。

        Host设置一下FTP, FTP算是实现对Host机资源的访问了,可文件的管理似乎不那么方便。



    Samba法

        另一种共享Windows资源的方法是很多Linux用户都非常青睐的Samba。

        Samba是一套让UNIX系统能够应用Microshoft网络通讯协议的软件。它使执行UNIX系统的计算机能与执行Windows系统的计算机分享驱动器与打印机。非常适用于Windows和Linux系统并存的网络。Red Hat AS 4.0内附Samba Server,但默认并不是在系统启动时自动运行的。可通过service命令查看和控制Samba服务:

    • 查看Samba服务运行状态:# service smb status
    • 启动Samba服务:# service smb start
    • 停止Samba服务:# service smb stop
    • 也可设置系统重启时,自动启动Samba服务:# chkconfig --level 345 smb on

        首先我们在Windows系统中设置文件夹或驱动器Web共享,并对其设置别名,如:/study

        然后在Linux中,以用户身份登录smb服务:

         常见的错误提示: 
         1.防火墙问题

         使用Samba服务时,Host和Guest都应关闭防火墙。
         Linux系统下关闭防火墙的方法:系统设置-->服务器设置-->服务-->iptable-->停止

        2.登录用户名或密码错误

         验证用户名密码即可。

         成功登录smb

        可用LS命令查看当前目录下的共享文件:

         用get命令可从服务器上下载某文件: 
         Smb:\> get file1 file2(从服务器上下载file1,以file2为名保存在本地——默认为root主目录)

         Exit命令可退出smb服务器

         如果仍然觉得文件的管理不方便,可以使用smbmount 命令,挂载Windows的共享文件夹或驱动器: 
         # smbmount //192.168.0.162/study /mnt/mystudy –o username=admin

        其中,192.168.0.162为Host机IP;study为共享文件夹别名;/mnt/mystudy为挂载点,可由#mkdir /mnt/mystudy创建;admin为Host机登录用户名。

        打开挂载目录:

        这样看起来习惯多了吧?跟Windows里面的文件管理界面几乎相同了。

       至此,虚拟机Linux共享宿主机Windows资源基本实现,完成时候觉得很简单,但是一路摸索过来,的确遇到了不少问题。


       感谢赵哥的鼎力支持。在他的帮助下,不管是对网络配置,还是对虚拟机的应用,以及对Linux中常用命令的掌握,都有了很大的进步。


    VMware-Tools法

    先在Windows下建个共享文件夹,暂时取名叫share (VM->setting->options->shared folders)
    再进入虚拟机的下拉菜单VM->Install VMware Tools...
    出现一个对话框,单击“install”,
    安装完毕后会在Linux的桌面上出现一个光盘的图标,名叫“VMware Tools”,
    然后进入mnt/cdrom,把里面那个叫“VMwareTools-5.5.0-18463.tar.gz”的文件拷贝到opt下,
    然后打开“终端”,用cd命令进入到opt文件夹下,在命令行输入:tar zxvf VMwareTools-5.5.0-18463.tar.gz 回车(进行解压)

    再用cd命令进入到解压的文件里,在命令行输入:./vmware-install.pl 接着一路回车,就ok了。等安装完毕后,可以查看mnt文件夹里面会多了一个叫“hgfs”的文件夹,这下面的文件夹里就可以放Windows与 Linux需要共享的文件了,OK!

  • 使用vmware+linux怎样共享WIndows下资源

    2008-12-31 11:16:38

    1.设置网络
     
    很简单,打开vmware,点vmware->setting->Hardware->Ethernet->
     
    (还有很多其他的设置)Custom - > VMnet1(host-only)->OK
     
    查看网络连接,看到一个VMnet1的连接,把它ip设为192.168.140.1,子网掩码255.255.255.0(自己定)
     
    然后进Linux->网络->把ip改为192.168.140.2,子网掩码255.255.255.0,网关192.168.140.2
     
    这时,到linux终端上ping 192.168.140.1 ,ping到了,就说明虚拟机和主机可以通讯了
     
    2.共享文件夹
     
    如上所说的进入setting->Options->Shared Folders->Add,可以把windows的文件夹和
     
    linux的文件夹添加进去,然后到系统里把该文件夹设为共享.这样在linux下看 windows
     
    的共享文件夹就如局域网其他机器看你机器共享一样,但是,要注意你的文件可能被其
     
    他人看到(也许可以通过把GUEST用户禁用来防止)
     
    我把windows的D用VM ADD了,然后想共享D里的某个文件夹时再设共享
     
    那么如何在一个系统看另一个系统的文件呢?
     
    比如在Linux下,连接到服务器(我的是FC5)->windows文件共享->在服务器那输入ip(如,192.168.140.1)就可以看到windows共享的文件了。
Open Toolbar