Linux网络常见故障排除步骤
目前Linux的擅长应用领域是:单一应用的基础服务器应用,譬如DNS、Web服务器、NFS服务器、防火墙、文件服务器、代理服务器、中小型数据库。Linux网络故障大多与服务器配置有关。下面我们介绍一下故障排除步骤。
1、DNS服务器故障排除
Linux域名服务器使用的是Bind9版本。域名服务器包含数据库的部分段的信息,并可提供被称之为解析器的客户来访问。如果在Linux网络中无法进行域名解析,很可能是没有在本地指定有效的域名服务器,通常这种情况比较常见。大多数DNS故障是因为配置文件的语法错误,或者是对计算机分配了错误的地址造成的。当进行DNS故障诊断时,可参照下面的步骤:
(1)对全部记录检查和确认主机名称的拼写,记住绝对地址是以“.”结尾的。
(2)如果在区文件中做了任何修改,务必修改SOA记录中的序列号,这将保证服务器正确地重新上载文件。
(3)确定输入到主区的名称和IP地址匹配反向指针文件中的反向指针信息。
(4)检查防火墙相关程序。
2、Apache服务器故障排除
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。如果在使用Apache服务器出现问题的时候,你可以尝试下面几个步骤:
(⒈)查看错误日志
错误操作细节将写到服务器的错误日志里面,这些信息经常足够你诊断并修复错误(比如文件权限之类的)。错误日志缺省是在/usr/local/apache.logs/error_log,但是你可以通过设置Apache配置文件里面的ErrorLog项来修改它的位置。
(⒉)查看FAQ
在Apache主站点的页面上可以找到最新的FAQ的连接,这些FAQ里面列举了一些常见问题。一般FAQ位于http://httpd.apache.org/docs/misc/FAQ.html。
(⒊)查看Apache的Bug数据库
Apache的开发组在Bug数据库(http://bugs.apache.org/)里面存放了使用者报告的Bug,可以到里面查找你的问题是否已经列举在里面。如果关于此问题的报告还处于开放状态,那么建议你周期性地查看它。你也可以考虑给问题的提交者发信,因为关于这个问题的一些讨论可能是通过信件交流的。
(⒋)使用相关的邮件列表或者新闻组
很多问题之所以从未被添加到Bug数据库里面,是因为它们已经在邮件列表和新闻组里面频繁出现了。你可以到http://httpd.apache.org/userslist.html或者news:comp.infosystems.www.servers.unix获取这些信息。
(⒌)若以上方法全部失败,那么请到Bug数据库里面去报告一下这个问题。
3、NFS服务器故障检查和排除
网络文件服务器(Network File System,简称NFS),是分布式计算系统的一个组成部分,可实现在异种网络上共享和装配远程文件系统。NFS由Sun公司开发,目前已经成为文件服务的一种标准(RFC1904,RFC1813)。其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据,所以也可以将它看做是一个文件服务器。
NFS网络出现了故障,可以从以下几个方面着手检查:
(1) 检查NFS客户机和服务器的负荷是否太高,Server和Client之间的网络是否正常;
(2) 检查/etc/exports文件的正确性;
(3) 必要时重新启动NFS或portmap服务;
(4)运行下列命令重新启动portmap和NFS:
service portmap restart |
(5) 检查Client上的mount命令或/etc/fstab的语法是否正确;
(6) 查看内核是否支持NFS和RPC服务。
普通的内核应有下列选项:
CONFIG_NFS_FS=m |
这里可以使用常见的网络连接和测试工具ping、tracerroute来测试网络连接及速度是否正常。网络连接正常是NFS能起作用的基础。 rpcinfo命令用于显示系统的RPC信息,一般使用-p参数列出某台主机的RPC服务。用rpcinfo-p命令检查服务器时,应该能看到portmapper、status、mountd nfs 和nlockmgr。用该命令检查客户端时,应该至少能看到portmapper服务。
常见问题解决方法:
当mount NFS文件系统时,如果错误信息是“Permission denied”,则表示NFS服务器不让客户机挂接。一般可以用更改服务端上的/etc/exports文件来解决问题,使用exportfs-rv命令重新导出文件系统。
如果出现的错误是“Program not registed”,那么则是NFS服务可能没有启动或者运行不正常。最常用的解决方法是重新启动NFS服务。
如果出现“RPC:Unable to receive”,则可能是服务端没有启动portmap服务;如果已经启动了,则可能是被防火墙所屏蔽。
还有一种情况是mount文件系统的时候,客户端没有任何反应,这多半是因为客户端没有启动portmap服务。
4、Samba文件服务器故障排除
在Linux异构网络,利用Linux建立文件服务器是一个很好的解决方案。针对企业内部网中的绝大部分客户机采用Windows的情况,我们可以通过使用Samba来实现文件服务器功能。 Samba是在Linux及Unix上实现SMB(Server Message Block)协议的一个免费软件,由服务器及客户端程序构成。这里我们只介绍服务器程序。我们首先介绍一些SMB协议的情况。SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务。
Samba服务器搭建后或许会发现客户端无法连接,通常有三个原因:
客户端应安装tcp/ip、 netbios、 ipx协议。
lmhosts, IP地址和netbios名子对应问题。
iptables防火墙设定不当。做各种配置前把先把iptables给关闭。
解决某个系统的问题应从最底层的共同特性开始入手。一般步骤是:
用Testpram命令检查语法错误,或S WAT那样的G U I配置文件检查smb . conf选项。
用ifconfig、wini pcfg、netstat和ping命令检查网络的连通性。
用ps、netstat、smbstatus和smbclient命令检查Samba守护进程操作。
在Windows客户机上用NET命令或Windows 资源管理器→工具→映射网络驱动器测试网络连通性。
用nmblookup确定域名服务操作。
用Windows NBTSTAT 查阅工作组和域中不同的SMB信息。
检验Samba配置文件中的语法和选项。
用smbclient命令检查认证和共享访问。
用testprns命令使对共享打印机的访问合法。
访问Samba Web站点和讨论组可以获得其他帮助。
5、Linux病毒造成网络故障的排除
为Linux邮件服务器和代理服务器安装防病毒软件,计算机病毒(包括蠕虫)是许多网络故障的祸首,Unix经过20多年的发展和完善,已经变得非常坚固,而Linux基本上继承了它的优点。在Linux里,如果不是超级用户,那么恶意感染系统文件的程序将很难得逞。当然,这并不是说Linux就无懈可击,病毒从本质上来说是一种二进制的可执行的程序。丛2003年到现在,网络经过了速客一号(Slammer)、冲击波(Blast)、霸王虫(Sobig)、 米虫(Mimail)、劳拉(Win32.Xorala)、Mydom的轮番轰炸。通常情况下企业接入互联网大多数使用代理服务器的发生。目前这些爆发的病毒虽然不会侵害Linux代理服务器,但是却会传播给访问它的Windows系统平台的计算机。所以发生频频方式网络故障时应当在Linux服务器上安装防病毒软件。Samba可以和使用Windows操作系统的机器很好的协作,在Windows的机器看来,Samba的服务就是网上邻居里的显示的一台服务器,我们可以把Windows下的文件保存在这个服务器上面。你可以把其他Windows机器的共享挂到Samba的目录下,然后一起杀,连Windows机器上的病毒也杀得干干净净。
6、对于Linux服务器攻击造成网络故障
对于Linux服务器来说,最大的危险是远程攻击。对Linux服务器攻击的定义是:攻击是一种旨在妨碍、损害、削弱、破坏Linux服务器安全的未授权行为。攻击的范围可以从服务拒绝直至完全危害和破坏Linux服务器。最严重的是远程用户获得根权限。Linux网络中超级用户拥有最高权限。一旦远程用户获得根权限你的网络随时可能被摧毁。所以部署IDS是防止这类网络故障的选择。当然你还要采取其他措施。信息情况可以查看笔者的:分级防御对Linux服务器的攻击。(网管员世界2003年10月刊)。
7、主机服务是否关掉了服务权限
一个比较常见的问题是客户机无法实现服务器提供的某些服务,也就是说可以ping到网络上的某部服务器,但是无法执行下载文件等任务。所以,首先必须了解该服务器是否关闭某些服务。最常见到的就是丛Red Hat 7.0开始中,FTP与Telnet已经缺省为关闭。这时,就必须通过修改/etc/xinetd.d文件,来打开这些功能。
8、Linux系统本身漏洞及其软件的BUG造成网络故障
操作系统是计算机系统灵魂,维护着系统的底层,对内存、进程等子系统进行管理和调度。如果操作系统本身出现了漏洞,其影响将会是致命的。操作系统的内核,对于网络安全是至关重要的。目前,内核的维护主要分两种模式:对于私有操作系统,如Windows/Solaris等,由于个人用户不能直接接触其源代码,其代码由公司内部开发人员维护,其安全性由同样的团队保证,内核的修正与其他应用程序一样,以patch/SP包的方式发布。对于Linux这样的开放式系统,是一种开放的结构。应该说,开放的模式是双刃剑。从机制上讲,全世界的开发人员都能获得源代码,从而找出其中的纰漏,似乎安全性应该更好;但是同时,如果网络管理人员不能及时更新内核,也会留下安全隐患。如果你是一个Linux网管员,你经常需要上相应的网站看,是否有补丁,是否有了bug fix,是否需要升级。千万不要报侥幸心理,否则一个script boy就可能拿下你的网站。套用一句名言:你的服务器永远可能在第二天被黑客接管。
Linux服务器运行的软件主要包括:samba,ftp,telnet,ssh,mysql,php,apache,Mozilla等,这些软件,大都是开源软件,而且都在不停升级,稳定版和测试版交替出现。在www.samba.org和 www.apache.org 上,最新的ChangeLog中都写着:bug fix, security bug fix的字样。所以Linux网管员要经常的关注相关网站的bug fix和升级,及时升级或添加补丁。
总结:
掌握OSI模型、TCP/IP分层模型及相对应的相关协议和正确网络拓扑结构,对于Linux网络故障分析与排除是非常重要的。当对OSI模型有一个透彻地了解时,故障诊断就变得易如反掌。另外Linux网络往往比较复杂需要你对多种网络操作系统都比较熟悉,还需要采取多种措施。如果能够配合使用一些网络检测工具(例如网络测试仪、网络嗅探器等),对于网络故障分析与排除也是非常有用的。
网络管理员的职责:有人说过,网管的主要工作就是每天去看看有没有新的补丁。这对windows网管适用,对Linux/unix系统的管理人员也同时适用。对操作系统和系统中应用程序的状况要胸有成竹,出了意外,马上就能觉察并修补。