资源描述
UNIX/LINUX系统管理I课程设计任务书目录UNIX/LINUX系统管理I课程设计任务书13.1解决grub引导过程故障33.2解决系统网络接口卡无法激活故障43.3解决PUTTY窗口的登陆问题53.4解决 PUTTY窗口的乱码问题63.5解决软件yum安装故障73.6解决X-WINDOWS启动故障83.7解决核功能问题83.8完成系统IO性能优化任务,103.9完成系统监控任务,113.10完成自动维护任务,123.11解决资源配给问题,133.12完成性能分析任务14第一部分、 课程情况课程名称:UNIX/LINUX系统管理I 课程代码: NW3005学分/学时:2学分/34学时 面向专业方向:网络设计与管理方向、网络安全技术方向任务书编写人:安明忠第二部分、 学习目的UNIX/LINUX系统管理I的课程平台是rhel6系列,主要学习故障分析与解决能力,是通过学习,增强学生对系统工作原理的认知,掌握基本的管理系统能力。课程设计中考虑了LINUX/UNIX系统日常维护和管理中的若干项基本工作容,组织成7个课堂实验任务,5个可选任务。每个任务都是基于实验主机的真实故障或优化管理来设计,要求学生通过独立的思考和操作,灵活使用校园网和主机在线手册等资源,排除这些系统故障或按照要求调整优化系统性能。第三部分、 本学期的学习容和要求3.1 解决grub引导过程故障3.1.1 任务描述主机已经安装完成的 RHEL6 系统启动失败,初步估计是GRUB配置参数错误或系统引导文件丢失,采用手工引导GRUB,查找故障确切原因并修复。实验环境:VMWARE平台 RHEL6基本系统(包含GRUB数据错误)教师指导:搜索引擎工具 GRUB基本介绍系统启动过程知识任务要求:两课时完成,通过grub引导命令修复故障,系统可以正常启动。按照要求完成报告容。3.1.2 任务分析过程1.主要现象描述:打开虚拟机电源后,出现系统程序加载。到了Boot Loader的程序后无法加载,屏幕出现“grub”的提示符,然后无法进一步加载操作系统。图1 grub加载问题2问题定位:2.1 windows系统与linux系统之间发生冲突 由于实验时使用的虚拟机,所以排除系统间冲突导致配置文件缺少的问题。2.2 虚拟机文件被破坏打开安装vm的安装路径,检查虚拟机的文件,发现系统、配置文件都没有问题。图2 虚拟机文件正常2.3 kernel文件的缺少或参数被修改打开/boot/grub文件夹,显示全部文件。发现缺少“grub.conf”配置文件。证明问题源于缺少系统的引导文件。图3 缺少引导文件3解决步骤: 注:实验中TAB可以自动保全命令和文件名,若能正确的补全,则证明硬盘存在该文件。1. 安装GRUB,输入“setup (”命令,然后按TAB键自动补全,出现三个硬盘分区,选择“hd0,0”显示安装成功。但是运行boot或reboot命令后,依然没有解决无法加载kernel的问题。证明重新安装grub无法复原原始配置文件。三个硬盘分区安装GRUB成功2 .输入root ( ,按TAB后,产生两个联想(fd0,hd0)选择输入“fd0”自动提示“Disk read error”; 图4 选择fd0 3.选择“hd0 ,”后,按TAB键,自动补全出现三个编号0、1、2(分区0、1的文件系统是ext2fs,分区类型为0x83;而分区2的文件系统为unknown,分区类型为0x82)选择(hd 0,0);图5 硬盘hd的信息4.输入“kernel”,后面接着一个路径“/vmlinuz-*”5 .ro是读取的意思, root=(后面可以是虚拟机的UUID或者核的根文件系统的路径“/dev/sda*”);实验机有sda0、sda1、sda2三个分区。选择sda16.输入initrd /initramfs-*按TAB键自动补全。(设置initrd文件,也有可能用软连接代替真正的文件名)图6 initrd设置文件boot - 引导先前已经被指定并载入的操作系统或链式装载程序。 7.输入boot,自动从硬盘中重新加载。过1分钟后,发现加载还是失败了,证明sda1不是核根分区。图7 boot加载失败8.机器无法按原路径寻找到kernel的根文件系统,导致机器陷入瘫痪。所以只能关闭电源,重启系统。然后尝试第二个硬盘分区(sda2),并重复步骤3-7。图8 尝试sda2分区图9 成功载入操作系统 9.再次尝试重启后,系统又会出现“grub”,所以证明虽然上次成功登陆系统,但是缺少grub配置文件的问题,并没有根治。图10 无法再次载入系统10.重新输入以上步骤,重新登陆。进入/boot/grub文件夹,创建grub.conf文件。 (grub.conf文件详解为附录1)按照系统基本配置来输入:10.1 vmlinuz的查找::.! ls /boot/vm*(TAB自动补全)10.2 sda2的UUID查找:.! Blkid /dev/sda210.3 initrd文件的查找:.! ls /boot/init*(TAB自动补全)图11 查找vmlinuz文件图12 查找sda2的UUID图13 查找initramf文件图14 显示grub.conf文件11重启系统,观察结果。重启系统后,按任意键进入GRUB模式。按键“e”进入编辑模式。图15 GRUB模式进入GRUB模式,检查刚刚编写的GRUB配置信息,如没问题,按键“b”开始boot,并最后成功进入系统登陆界面图16 GRUB模式4问题和总结:4.1问题分析:说明grub.conf 配置文件的功能和GRUB的引导过程当“/boot/grub/grub.conf”配置文件丢失或者关键配置出现错误,或者MBR记录中的引导程序遭到破坏时,Linux主机启动可能会出现”grub”的提示符,无法完成系统其它操作。Grub.conf功能是相当于 windows下的boot.ini,都是存放启动项设置和信息的。GRUB的引导过程:附录2简介vmlinuz ,initrad.img文件的位置和作用Vmlinuz-kernel - 当使用直接载入方式引导操作系统时,kernel命令指定核从GRUB的根文件系统中载入 。比如 kernel /vmlinuz root=/dev/hda5; Vmlinuz是核,它从GRUB的根文件系统载入的,如(hd0,0)。同时,后面一个选项被传给核。它指出当Linux核载入时,核的根文件系统应该是位于hda5,第一个IDE硬盘的第五个分区。initrd - 使用户能够指定一个在引导时可用的初始RAM盘。当核为了完全引导而需要某些模块时,这是必需的。Initramfs-核开发人员编写了一个改进版tmpfs,这个文件系统上的数据可以写出到交换分区,而且可以设定一个tmpfs装载点的最大尺寸以免耗尽存。initramfs就是tmpfs的一个应用.文件系统损坏后,如何修复文件系统?(1)修改/etc/fstab,将受损的文件系统先注释掉,如果无法读写该文件则采用mount -o remount rw , / 将文件系统改成读写模式。 (2)针对受损的文件系统,执行fsck命令,如:fsck /dev/sda1等。4.2总结:在本次实验中,通过GRUB引导配置文件的出错,导致OS系统无常启动的问题。深入了解到LINUX系统启动的过程和其文件系统的挂载过程,在此实验过程中,我删除了系统中的grub.conf配置文件,致使LINUX操作系统的启动故障,并随后手动引导了系统的正常恢复启动且恢复配置文件。但实验中,遇到许多未知的参数以与文件信息,需要通过查询百度等手段找到其需要的修复方法。尽管过程所花精力很多,但结果是美好的。5参考文献1新华网.linuxgrub引导启动过程详解J. ChinaUnix博客, 2008-04-062凌激冰. 教你一招超级简单的方法快速搞定grub.conf文件的丢失与损坏J.51CTO博客,2012-12-033xiaoluo501395377. Linux学习之CentOS(二十一)-Linux系统启动详解J.blogs.,2013-05-19附录1Grub是Linux的下系统启动器之一(另一个名为Lilo),grub.conf相当于 windows下的boot.ini,都是存放启动项设置和信息的,如果你熟悉boot.ini的设置的话相信也可以很快适应grub.conf,另外说下我的/boot是独立分了个区出来的,所以你的grub.conf部分容可能与我的不完全一致。rootlocalhost root# cat /etc/grub.conf # grub.conf generated by anaconda #这个就不说了,你要喜欢改成by自己的名字也可以-.-# Note that you do not have to rerun grub after making changes to this file #注解:修改此文件后你不必重新运行grub(下次启动时会自动生效)# NOTICE: You have a /boot partition. This means that #注意:你有一个/boot分区,这意味着一下几点:# all kernel and initrd paths are relative to /boot/, eg. # 此行表示所有kernel和initrd的文件路径都在/boot/下# root (hd0,0) # root所在位置,注意此root在这里是根目录,不是指root超级用户# kernel /vmlinuz-version ro root=/dev/hda2 # 这项中间的version对应你的kernel版本,稍后我会做点分析# initrd /initrd-version.img # 同上#boot=/dev/hda #这里说明了boot分区(或者说目录)的所在的位置default=0 #菜单项,0表示第一项,如果是多系统可以修改此选项改变默认光标停留位置timeout=10 #在菜单到自动启动系统前的停留时间,单位时间为sec,我修改为1,可以按需分配splashimage=(hd0,0)/grub/splash.xpm.gz #启动菜单的背景图标,如果要修改的话需要使用对应的图片格式,xpm图像title Red Hat Linux (2.4.20- 8)#启动项目的名称,可以任意修改,比如title hahahahaha root (hd0,0) # root所在位置,为什么这里是hd0,0请参考磁盘在linux下的命名与定义kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ # 2.4.20-8为kernel版本,rootLABEL=/为root路径,可以修改,例:root=/dev/hda2 ro是以readonly的意思。注意我这里核前面的路径是/,因为我的boot单独分了一个区,如果你没有为boot单独分区,那么核前面的路 径就是/boot。initrd用来初始的linux image,并设置相应的参数。initrd /initrd-2.4.20-8.img # 同上,这个基本没有改的价值与必要以上kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ 这行后面可以添加acpi=on(off)参数,开启或关闭高级电源控制接口,本本的话如果没开启的话是无法使蓝牙和无线网卡灯亮起的,这点要注意。以 上操作有可能会导致系统无法启动,请仔细研究后再修改,另外本人可以保证以上解释的正确性但是不承担你的不当操作引起的故障,。同时希望大家可以指出 错误或不足的地方以便修改。附录2机器加电启动后,BIOS开始检测系统参数,如存的大小,日期和时间,磁盘设备以与这些磁盘设备用来引导的顺序,通常情况下,BIOS都是被配置成首先检查软驱或者光驱(或两者都检查),然后再尝试从硬盘引导。如果在这些可移动的设备中,没有找到可引导的介质,那么BIOS通常是转向第一块硬盘最初的几个扇区,寻找用于装载操作系统的指令。装载操作系统的这个程序就是boot loader.linux里面的boot loader通常是lilo或者grub,从Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader)取代LILO成为了默认的启动装载程序。那么启动的时候grub是如何被载入的呢grub有几个重要的文件,stage1,stage2,有的时候需要stage1.5.这些文件一般都在/boot/grub文件夹下面.grub被载入通常包括以下几个步骤:1. 装载基本的引导装载程序(stage1),stage1很小,网上说是512字节,但是在我的系统上用 du -b /boot/grub/stage1 显示的是1024个字节,不知道是不是grub版本不同的缘故还是我理解有误.stage1通常位于主引导扇区里面,对于硬盘就是MBR了,stage1的主要功能就是装载第二引导程序(stage2).这主要是归结于在主引导扇区中没有足够的空间用于其他东西了,我用的是grub 0.93,stage2文件的大小是 107520 bit.2. 装载第二引导装载程序(stage2),这第二引导装载程序实际上是引出更高级的功能,以允许用户装载入一个特定的操作系统。在GRUB中,这步是让用户显示一个菜单或是输入命令。由于stage2很大,所以它一般位于文件系统之中(通常是boot所在的根分区).上面还提到了stage1.5这个文件,它的作用是什么呢 你到/boot/grub目录下看看,fat_stage_1.5 e2fs_stage_1.5 xfs_stage_1.5等等,很容易猜想stage1.5和文件系统有关系.有时候基本引导装载程序(stage1)不能识别stage2所在的文件系统分区,那么这时候就需要stage1.5来连接stage1和stage2了.因此对于不同的文件系统就会有不同的stage1.5.但是对于grub 0.93好像stage1.5并不是很重要,因为我试过了,在没有stage1.5的情况下, 我把stage1安装在软盘的引导扇区,然后把stage2放在格式化成ext2或者fat格式的软盘,启动的时候照常引导,并不需要e2fs_stage_1.5或者fat_stage_1.5. 下面是我的试验: #mkfs.ext2 /dev/fd0 #mount -t ext2 /dev/fd0 /mnt/floppy #cd /mnt/floppy #mkdir boot #cd boot #mkdir grub (以上三步可用mkdir -p boot/grub命令完成) #cd grub #cp /boot/grub/stage1,stage2,grub.conf ./ #cd; umount /mnt/floppy 以上几步把软盘格式化成ext2格式,然后把stage1,stage2,grub.conf这几个启动的时候必须的文件拷贝到软盘的指定目录下.下面安装grub到软盘上. #grub (进入grub环境) grub install (fd0)/boot/grub/stage1 (fd0) (fd0)/boot/grub/stage2p (fd0)/boot/grub/grub.conf 以上这条命令也可以用下面的两句代替 grubroot (fd0) #grub的根目录所在的分区 grubsetup (fd0) #这一步就相当于上面的install命令 我在这里解释一下 install (fd0)/boot/grub/stage1 (fd0) (fd0)/boot/grub/stage2 p(fd0)/boot/grub/grub.conf 这条命令.install 告诉GRUB将(fd0)/boot/grub/grub/stage1 安装到软驱的引导扇区(fd0).(fd0)/boot/grub/stage2 告诉grub stage2这个文件所在的位置.p 参数后面跟着(fd0)/boot/grub/grub.conf 告诉grub的配置文件所在的位置. 好了,让BIOS从软驱启动,试一下,没有e2fs_stage_1.5文件照样能够进入系统.其实这就是一个小小的启动盘啊.(了解了grub的运行原理,就简单多了_) 3. 现在我们已经到grub的开机选单这一步了,接下来grub所需要做的就是装载在一个特定分区上的操作系统,如linux核。一旦GRUB从它的命令行或者配置文件中,接到开始操作系统的正确指令,它就寻找必要的引导文件,然后把机器的控制权移交给操作系统.由于篇幅有限,避免冗长,grub的命令我就不多说了,网上很有多的资料,一个典型完整的引导linux的命令如下: title 51base root(hd0,0) kernel /bzImage ro root=/dev/ram0 initrd /initrd.img 这里有必要注意一下几个问题: (1)grub的磁盘以与分区的命名方式和linux有所区别,第一个磁盘是从0开始,第一个分区也是从0开始.譬如第一个硬盘的第5分区在linux下面是/dev/hda5 ,而grub里面是(hd0,4).再如/dev/fd0在grub里面是(fd0,0).(最后一句如有错误望提醒) (2)不管是IDE硬盘hda,hdb还是SCSI硬盘sda,sdb在grub里面都是以hd方式命名.譬如虚拟机里面的/dev/sda2在grub里面是(hd0,1),再如/dev/hdb7在grub里面以(hd1,6)命名. (3)要搞清楚上面两个root的关系,root (hd0,0)中的root是grub命令,它用来指定boot所在的分区作为grub的根目录.而root=/dev/ram0是kernel的参数,它告诉操作系统核加载完毕之后,真实的文件系统所在的设备.要注意grub的根目录和文件系统的根目录的区别. 再回到上面的几行命令. kernel命令用来指定核所在的位置,/代表(hd0,0),也就是grub的根目录 initrd命令用来指定初始化ram的img文件所在位置. grub载入核bzImage并展开到指定位置(应该是0x100000这个地方),同时载入initrd.img到存(不知道是什么地方).ps: grub的任务至此就结束了,下面grub将机器的控制权转交给操作系统(linux). 操作系统接到控制权之后,开始start_kernel,接着核将initrd.img展开到/dev/ram0为临时根文件系统,执行里面的linuxrc文件. P.这里有必要说一下initrd的作用特别是它里面的核心文件linuxrc的作用. initrd是inital ram disk的宿写. 当存在initrd的时候,机器启动的过程大概是以下几个步骤(当initrd这一行用noinitrd 命令代替后,就不存在initrd了) 1)boot loader(grub)加载核和initrd.img 2)核将压缩的initrd.img解压成正常的ram disk并且释放initrd所占的存空间 3)initrd作为根目录以读写方式被挂载 4)initrd里面的文件linuxrc被执行 5)linuxrc挂载新的文件系统 6)linuxrc使用pivot_root系统调用指定新的根目录并将现有的根目录place到指定位置. 7)在新的文件系统下正式init 8)initrd被卸载.3.2 解决系统网络接口卡无法激活故障3.2.1 任务描述RHEL6 系统启动过程,控制台登陆过程正常,使用ifconfig 查看网络配置参数时,发现系统仅仅激活了lo 接口,查找故障原因,在系统中激活两块以太网网卡,并获取校园网DHCP的ip地址。实验环境:VMWARE平台 RHEL6基本系统(VMWARE 虚拟平台支持)教师指导:搜索引擎工具 网络解决相关文件介绍完成要求:两课时完成,成功解决两块网卡激活故障,网卡通过校园网DHCP获得地址参数,完成报告容3.2.2 任务分析过程3.2.2.1主要现象描述:启动实验虚拟机后,使用ifconfig 查看网络配置参数时,发现系统仅仅激活了lo 接口,而其他两网卡激活失败。而lo接口为回环测试接口,IP地址为127.0.0.1,并非校园网的IP地址。故障导致本虚拟机连接校园网失败。 图1 系统只有lo接口激活3.2.2.2问题定位:1 .系统结构故障分析大小图2 基本计算机系统结构步骤:右键“我的电脑”选择“设备管理器”查看网络适配器图查看系统网络适配器选择主网卡(第一个),右键打开“属性”,显示设备正常并排除网卡故障。图网卡正常2. 宿主故障分析步骤:双击桌面有下角的“小电脑”查看宿主机器网路连接状态显示已连接上。图 5 网络信息正常 查看本地连接状态,显示IP地址是由校园DHCP指派,并且其他网络信息正常。图 6网络信息正常图7 宿主机正常上网3. VMware网络设置故障分析步骤: 打开VMware Workstation,选择“编辑”选项单击打开“虚拟网络编辑器”查看各虚拟网卡的信息图8 虚拟网卡信息正常图上显示VMnet0 、VMnet1 、VMnet8已连接,DHCP已启用。同时IP地址都是校园网中的IP,排除VMware的故障。 4. linux系统故障分析4.1 终端检查网卡信息步骤:打开linux系统终端输入命令“netstat -r”查看当前路由与网卡信息输入“service network status”查看当前网卡状态图9 终端显示网卡信息图10虚拟机无法访问网页通过上述实验分析确定,Linux系统的网络配置出现故障。3.2.2.3.解决步骤:1.通过“ifup” 、“ifdown”命令激活eth0网卡注:ifup和ifdown仅能就/etc/sysconfig/network-scripts的ifcfg-ethx(x为数字)进行启动或关闭,并不能直接修改网络的参数,除非手动的调整ifcfg-ethx文件才行。至于ifconfig 则可以直接手动给予某个界面IP或修改网络参数。步骤:打开一个终端1、如果没有eth0的话,那就直接ifup eth0;2、如果eth0已经激活了,但是没有IP的话,那就先ifdown eth0然后再ifup eth0。图11 ifup、ifdown无法排除故障结论:方法1无法排除网卡激活故障。2. /etc/sysconfig/networ-script/ifcfg-*文件在Linux下网卡被称为eth0,eth1,eth2, 所有网卡的配置文件都存储在/etc/sysconfig/network-script/下,文件名是以ifcfg-eth0,ifcfg- eth1,ifcfg-eth2来命名的。一块网卡对应一个配置文件2.1 将ifcfg-*系列文件删除步骤:通过“rm rf ifcfg-*”命令删除ifcfg系列文件ls l|grep ifcfg。Eth0、Eth1的Mac地址图12 ifcfg-eth0、eth1文件容再次搜索ifcfg-*文件删除ifcfg*文件 用管道过滤出ifcfg-*文件图13删除ifcfg文件删除文件后,在终端输入“shutdown r now”重启虚拟机,再次“ifconfig -a”查看网卡信息图14所有网卡信息消失 图15 虚拟机配置文件信息图16 原始配置文件信息对比发现,终端显示的网卡名称为eth2、eth3,而不是eth0、eth1。原先查询的ifcfg-eth0、eth1中的Mac地址是与原始配置文件的eth0、eth1的Mac地址不一样,但eth2、eth3的Mac地址却与原始配置文件的eth0、eth1的Mac地址一样。进一步实验:“cd /etc/sysconfig/network-scripts”,查找新网卡配置文件图17 查找eth2文件实验后,发现无法找到eth2、eth3的相关文件记录,eth0、eth1无法通过配置文件设置IP。注:经查明,Linux是用/etc/network/interfaces这个配置文件来载入网卡的。默认配置中,它指示Linux会自动寻找eth0网卡,并自动分配IP。但是,当虚拟网卡的MAC地址更改后,网卡在Linux中不是eth0了,而是eth1或其它值。因此才会找不到。而现有系统中,有哪些网卡是可用的,可以通过下面的命令查看:ifconfig -a使用这个命令后确实,发现每刷新一次mac地址,就生成一个新的eth。结论:方法2无法排除网卡激活故障。2.2 配置 /etc/sysconfig/networ-script/ifcfg-*文件步骤:打开终端找到ifcfg文件打开“ifcfg-eth0”注释MAC地址“service network restart”重启网络服务图18 注释MAC并重启实验后,eth0网卡并没有激活,结合方法2,排除MAC不一致导致故障。结论:方法3无法排除网卡激活故障。2.3 /etc/udev/rules.d/70-persistent-net.rules文件2.3.1 配置/etc/udev/rules.d/70-persistent-net.rules文件打开70-persistent-net.rules并配置文件。图19查找.rules文件发现有eth0、eth1、eth2、eth3,4个网卡记录,以与相关的配置信息。注释eth0,eth1网卡,修改eth2,eth3的网卡名称并保存退出。图20 查看并修改信息输入“service network restart”,重启网络服务,发现无法找到eth0、eth1。重启网络服务修改网卡信息图21 重启网络服务结论:方法4无法排除网卡激活故障。进一步实验:步骤:结合方法3和方法4,先将ifcfg-eth0的错误MAC地址注释,然后再改变“70-persistent-net.rules”中的网卡记录。图22 修改ifcfg-eth0文件修改网卡信息图23 修改rule中记录重启网络服务后,发现没有eth0信息。然后尝试“reboot”虚拟机,发现eth0、eth1正常发配到IP:192.168.193.129 、172.16.57.55.同时路由表和ARP表都正常显示eth0、eth1信息。图24网卡自动激活图25 路由表表正常启动结论:方法5成功排除网卡激活故障。2.3.2 删除/etc/udev/rules.d/70-persistent-net.rules文件步骤:如方法5一样,先将ifcfg-eth0的错误MAC地址注释,然后再删除 “70-persistent-net.rules”中的网卡记录文件。 进入/etc/udev/rules.d/目录,用管道“grep”过滤出相应文件。然后输入“rm”命令删除.rule文件。操作完毕,再重启虚拟机。图26删除.rule文件重启后,输入ifconfig a,看到eth网卡被成功地自动激活。图27 网卡自动激活图28 新生成的.rule记录正常结论:方法6成功排除网卡激活故障。3.2.2.4深入思考:4.1 实验系统的功能结构本次实验系统在WM虚拟机中进行,宿主设备提供虚拟机实际网络链路。而网络的具体配置是由WMware Workstation的网络参数配置与操作系统的具体网络参数配置。图29实验系统的功能结构4.2 VMWARE网卡的虚拟化技术(1)bridge模式是最简单的,使用桥接模式后虚拟机和真实主机的关系就好像两台接在一个hub上的电脑,想让他们俩进行通讯,你需要在虚拟机上配置的IP地址与真实机在同一个网段上,从下图中可以看出,如果你不配置虚拟机,虚拟机也没有办法得到DHCP分到的IP地址,所以只能使用169.254.这个段(2)Host-only模式用来建立隔离的虚拟机环境,在这种模式下,虚拟机与真实主机通过虚拟私有网络进行连接,只有同为Host-only模式下的且在一个虚拟交换机的连接下才可以互相访问,外界无法访问。host only模式只能使用私有IP,IP,gateway,DNS都由VMnet 1来分配。(3)NAT(network address translation)模式其实可以理解成为是方便地使虚拟机连接到公网,代价是桥接模式下的其他功能都不能享用。凡是选用NAT结构的虚拟机,均由VMnet 8提供IP,gateway,DNS。(4)custom上是一个特殊的网卡(包含以上这些)可以根据需要用这些网卡组建一个局域网拟机中的网络支持在主机上通过一个虚拟交换机或者网络适配器完成,它实现几种设备: VMnet0 用于桥接网络。 VMnet1 用于仅为主机网络。 VMnet2 用于定制网络。 VMnet3 用于定制网络。 VMnet4 用于定制网络。 VMnet5 用于定制网络。 VMnet6 用于定制网络。 VMnet7 用于定制网络。 VMnet8 用于网络地址翻译(NAT)网络。4.3 ifcfg-eth0参数的容以下简单解释ifcfg-eth文件中的容:DEVICE=物理设备名IPADDR=IP地址NETMASK=掩码值NETWORK=网络地址BROADCAST=广播地址GATEWAY=网关地址ONBOOT=yes|no(引导时是否激活设备)USERCTL=yes|no(非root用户是否可以控制该设备)BOOTPROTO=none|static|bootp|dhcp(引导时不使用协议|静态分配|BOOTP协议|DHCP协议)HWADDR = 你的MAC地址4.4 UDEV系统在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs, 一个基于核的动态设备文件系统,他首次出现在2.3.46核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建 的设备文件是动态的。但是devfs有一些严重的限制,从2.6.13版本后移走了。目前取代他的便是文本要提到的udev一个用户空间程序。目前很多的Linux分发版本采纳了udev的方式,因为它在Linux设备访问,特别是那些对设备有极端需求的站点(比如需要控制上千个硬盘)和热插拔设备(比如USB摄像头和MP3播放器)上解决了几个问题。下面我我们来看看如何管理udev设备。实际上,对于那些为磁盘,终端设备等准备的标准配置文件而言,你不需要修改什么。但是,你需要了解udev配置来使用新的或者外来设备,如果不修改配置, 这些设备可能无法访问,或者说Linux可能会采用不恰当的名字,属组或权限来创建这些设备文件。你可能也想知道如何修改RS232串口,音频设备等文件的属组或者权限。这点在实际的Linux实施中是会遇到的。原文地址: :/.cnblogs./sopost/archive/2013/01/09/2853200.html3.2.2.5 总结 本次实验,是为了熟悉Linux中的网络文件配置。通过linux网卡的未激活问题,我可以从多方面、不同方法尝试寻找问题,解决问题。同时老师也点出了许多技术上的思路和方法给我们自己去尝试和总结。在实验过程中,我花了更多的时间在百度,查找资料上,而不是实验本身。因为我希望寻找到更多简单并成功的方法,也能学习到更多不同的东西。3.2.2.6 参考文献1无双的小宝.Linux详解udev R.blogs,2013-01-092万维网.udev and devfs - The final word Z.Wikipedia,2003-12-303ulka.VM中网卡的四个选项 N.51CTO技术论坛,2010-4-304Andrew J.Hutton.Proceedings of the Linux Symposium C.baidu文库,2010-07-25 总结你在完成故障定位任务时的思路,工具,困难。3.3 解决PUTTY窗口的登陆问题3.3.1 任务描述RHEL统启动过程,控制台登陆过程正常,使用PUTTY客户端连接SSHD服务段,实现RHEL 主机的远程管理,发现登陆失败,查找原因并修复。 实验环境:VMWARE平台 RHEL基本系统(包含GRUB数据错误)教师指导:搜索引擎工具 putty知识介绍完成要求:两课时完成,成功解决PUTTY登陆问题。完成报告容。3.3.2 任务分析过程解决PUTTY窗口的登陆问题1、任务描述RHEL统启动过程,控制台登陆过程正常,使用PUTTY客户端连接SSHD服务段,实现RHEL 主机的远程管理,发现登陆失败,查找原因并修复。 实验环境:VMWARE平台 RHEL基本系统(包含GRUB数据错误)教师指导:搜索引擎工具 putty知识介绍完成要求:两课时完成,成功解决PUTTY登陆问题。完成报告容。2、任务分析过程 1主要现象描述:在宿主机上,尝试用putty窗口远程登陆虚拟机,输入linux机器的IP地址和默认22端口,确认登陆。但putty窗口弹出“network error:No route to host ”的错误提示,无法成功地远程虚拟机。图1 putty登陆窗口/putty登陆失败图2登陆失败2问题定位:错误提示为“Network error:No route to host”,说明宿主机无法找到虚拟机地址或无法识别虚拟机的端口。2.1 宿主机的网络设置故障分析步骤:双击桌面右下角的“小电脑”查看宿主机器网路连接状态。/网络连接正常图 3 网络信息正常经检查,宿主机的网络正常连通,所以排除宿主机网络配置故障。2.2 VMWARE的虚拟网络参数配置故障分析步骤:打开VMware Workstation,选择“编辑”选项单击打开“虚拟网络编辑器”查看各虚拟网卡的信息 。/虚拟网络正常启动图4 虚拟网卡信息正常图上显示VMnet0 、VMnet1 、VMnet8已连接,DHCP已启用,正常分配子网IP,所以排除VMware的网络故障。 2.3 虚拟机的网络参数配置故障分析步骤:正常启动linux操作系统后,打开终端输入“ifconfig”命令,查看系统的网络信息。/IP地址网段不同于子网段或宿主机网段图5 网络信息不符由上图得知,虚拟机中的网络信息出现问题,IP地址网段不在于子网段或宿主机网段,导致虚拟机与宿主机无法连通。证明因虚拟机的网络参数配置故障导致无法远程连接。2.4虚拟机的SSH服务器参数配置故障分析步骤:打开终端输入“netstat antp|grep sshd”命令,查看ssh程序是否启动和SSH的监听端口。/SSH程序正常启动图6 查看ssh程序信息由上图得知,ssh的默认端口不是 22,而是1500。证明ssh的配置改变了,导致putty登陆失败。3解决步骤:3.1 编辑虚拟机设置打开虚拟机后,发现IP地址不属于宿主机网段或VM子网段,本次实验需实现宿主机远程登陆实验机,所以第一步操作就是让宿主机的DHCP能为实验机分配IP地址。步骤: 双击虚拟机右下角的小电脑选择网络适配器在网络连接,单击桥接模式。/选择桥接模式图7 设置网络设置3.2 设置Linux系统的网络配置步骤:3.2.1打开终端,输入“setup”,进入系统配置模式打开网络配置,按空格,启动DHCP并保存退出。注:可以直接配置eth0网关配置文件3.2.2查看eth0网卡信息:在终端输入“cat /etc/sysconfig/ifcfg-eth0”显示成功设置为dhcp。3.2.3在终端,输入“service network restart”成功重启网络输入“ifconfig”查看eth0信息。/正确分配IP地址/重启网络成功/进入配置模式图8重设实验机网络配置3.2.4回到宿主机,打开cmd.exe输入“ping 172.16.57.56”命令成功ping通实验机。/ping成功图9两台机器正常连通证明宿主机和实验机所处的网络环境是正常的。 3.2.5 尝试在宿主机通过putty窗口远程登录实验机,发现还是无法成功远程登录。/登陆失败图10远程登陆失败3.3 配置SSH服务器配置文件完成了以上步骤,依然没有成功解决putty登陆问题。证明SSH的配置也存在问题。由故障分析2.4可得,SSH程序的监听端口被改为1500。步骤:在终端输入“vi /etc/ssh/sshd_config”,修改配置文件将Port项改为22,并保存退出。 /修改端口号图11修改ssh配置文件 输入“service ssh restart”,重启ssh服务器。/重启成功图12 重启ssh服务器再次尝试远程登陆,但是依然失败。图13 登陆失败3.4 关闭防火墙经查证 Linux系统进行远程登陆,需要关闭其防火墙。步骤:输入“service iptables stop”查看ssh的监听状态。/关闭成功图14 关闭防火墙完成以上步骤,再次尝试远程登陆。在putty窗口点击“open”后,弹出putty的安全警告窗口单击“是”,进入登陆界面输入登陆账号和密码,成功远程登陆。图15 弹出警告信息图16 成功远程登陆3.5 PUTTY公钥登陆生成私钥/公钥的方法有两种:linux的ssh-keygen或putty-keygen.(1)步骤:输入ssh-keygen t rsa(rsa或dsa两种加密方式)输入密码成功生成秘钥。 /生成秘钥图17 生成并显示秘钥(2)修改sshd_conf配置文件。/修改文件项/生成秘钥图18 修改秘钥文件/修改文件名(3)修改公钥的名字,与sshd_conf的公钥名一样。图19 修改秘钥文件(4)重启SSH服务器。/重启ssh图20重启ssh(5)虚拟机中生成的公钥共享到宿主机中,并用putty-keygen工具将公钥文件转为ppk格式。注:ppk格式putty才能识别。图21 转换私钥格式(6)将公钥加载到Putty中,并确认“Open”.图22 putty窗口载入秘钥(7)输入账号和公钥口令登陆。图23 putty登陆成功4综合分析4.1 putty窗口介绍PuTTY是一个Telnet、SSH、rlogin、纯TCP以与串行接口连接软件。较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。除了官方版本外,有许多第三方的团体或个人将PuTTY移植到其他平台上,像是以Symbian为基础的移动。PuTTY为一开放源代码软件,主要由Simon Tatham维护,使用MIT licence授权。随着Linux在服务器端应用的普与,Linux系统管理越来越依赖于远程。在各种远程登录工具中,Putty是出色的工具之一。Putty是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的telnet类工具。目前最新的版本为0.63。4.2 SSH远程协议分析介绍: 为 Secure Shell(安全外壳协议)缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以与其他平台,都可运行SSH。图24 SSH的工作模型OPENSSH:是 SSH(SecureSHell)协议的免费开源实现。它用安全、加密的网络连接工具代替了telnet、ftp、rlogin、rsh和rcp工具。该协议默认使用RSA钥匙OpenSSH支持SSH协议的版本1.3、1.5和2。自从OpenSSH的版本2.9以来,默认的 协议是版本2。最新OpenSSH版本:3.9。OPENSSH优点:1、加密方式传输2、传输数据经过压缩,可加快传输速3、可实现远程控制、数据传输(拷贝与FTP方式)SSH认证协议:RSA和DSA认证协议的基础是一对专门生成的密钥,分别叫做专用密钥和公用密钥。在许多情况下,有可能不必手工输入密码就能建立起安全的连接。SSH协议第一版支持基于RSA的认证。SSH协议第二版支持使用RSA或DSA算法。从客户端来看,SSH提供两种级别的安全验证。第一种级别(基于口令的安全验证)图25基于口令的安全验证第二种级别(基于密匙的安全验证)图26基于密匙的安全验证4.3 VMWARE的网络模式1)bridge模式是最简单的,使用桥接模式后虚拟机和真实主机的关系就好像两台接在一个hub上的电脑,想让他们俩进行通讯,你需要在虚拟机上配置的IP地址与真实机在同一个网段上,从下图中可以看出,如果你不配置虚拟机,虚拟机也没有办法得到DHCP分到的IP地址,所以只能使用169.254.这个段(2)Host-only模式用来建立隔离的虚拟机环境,在这种模式下,虚拟机与真实主机通过虚拟私有网络进行连接,只有同为Host-only模式下的且在一个虚拟交换机的连接下才可以互相访问,外界无法访问。host only模式只能使用私有IP,IP,gateway,DNS都由VMnet 1来分配。(3)NAT(network address translation)模式其实可以理解成为是方便地使虚拟机连接到公网,代价是桥接模式下的其他功能都不能享用。凡是选用NAT结构的虚拟机,均由VMnet 8提供IP,gateway,DNS。(4)custom上是一个特殊的网卡(包含以上这些)可以根据需要用这些网卡组建一个局域网拟机中的网络支持在主机上通过一个虚拟交换机或者网络适配器完成,它实现几种设备: VMnet0 用于桥接网络。VMnet1 用于仅为主机网络。VMnet2 用于定制网络。VMnet3 用于定制网络。VMnet4 用于定制网络。VMnet5 用于定制网络。VMnet6 用于定制网络。VMnet7 用于定制网络。VMnet8 用于网络地址翻译(NAT)网络。 4.4 Linux防火墙介绍:iptables 是与最新的 3.5 版本 Linux 核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。1、netfilter 组件也称为核空间(kernelspace),是核的一部分,由一些信息包过滤表组成,这些表包含核用来控制信息包过滤处理的规则集。 2、iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。图27 iptables运作过程5总结随着Linux在服务器端应用的普与,Linux系统管理越来越依赖于远程。所以熟知配置好远程登陆机制是当今网络管理的重要手段。本次实验,我通过从改变虚拟机网络连接模式,到修改实验机网络配置,再到修改SSH服务器配置文件和iptables的一些设置。实验步骤登陆结果修改网络连接模式修改实验机网络信息失败修改网络连接模
展开阅读全文