05Linux 网络问题解决方法文档格式.docx
《05Linux 网络问题解决方法文档格式.docx》由会员分享,可在线阅读,更多相关《05Linux 网络问题解决方法文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
![05Linux 网络问题解决方法文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/23/c92d11a0-5649-4618-b215-dbce30f5a2fb/c92d11a0-5649-4618-b215-dbce30f5a2fb1.gif)
Linux常用网络指令
还是那句老话,将Linux基础篇整个翻一遍吧!
了解发生网络问题的可能状况:
Linux最强的,也是最让人称道的地方,就是他的网络功能了,不论是Mailserver、Webserver、Proxyserver等等,都好好用喔!
但是,我们也常在网络上看到一堆常见的问题,就是在问『我的Linux没有办法连上网络,该如何是好....』等等的问题,问来问去的重点大概都是一样的状况!
伤脑筋!
那鸟哥就把一些可能的问题把他整理一下,看看你是不是有这方面的问题,参考看看吧!
问题的解决顺序应该是从自己可以掌握的地方着手,再慢慢的向上面来查核问题所在!
基本上,问题的解决流程可以如下:
1.了解一下可能的问题发生状况:
2.看自己的网络卡是否正常工作;
3.能不能ping到同一网域中的计算机IP呢(局域网络);
4.看自己的DNS是否设定正确;
5.局域网络中NAT不能工作?
看看/etc/sysconfig/network;
6.看看ADSL或者是Router有没有问题?
traceroute拨接的问题;
7.是否主机的服务被关掉了?
check看看inetd.conf/etc/xinetd.d;
8.一些服务的权限与允许浏览权是否有开放;
下面我们先来谈一谈有哪些常见的可能网络问题状况,先以简单的局域网络联机架构图<
下图>
的表示方式:
如上面的局域网络接线法中,一般而言,造成网络问题的情况可以粗分为
1.网络硬件传输的部分;
与
2.操作系统、通讯协议或者相关服务的设定之软件问题!
我们分别来谈一谈这些问题吧!
网络硬件传输的问题:
1.网络线材的问题:
在上面的图标中,可以发现,其实网络接口设备中,使用最多的就是网络线啦!
由于网络线分成并行线与跳线(RJ-45接头)以及以前较流行的同轴电缆线,且,其实网络线常常是接在门缝处,有可能被压毁的!
所以,你需要注意一下这些事情:
§
网络线被截断;
网络线过度扭曲变形造成讯号不良;
自制网络接头(如RJ-45跳线头)品质不良;
网络接头与设备(如Hub)接触不良;
2.网络卡、Hub及Router等网络设备的问题:
另外,还有一些网络设备也会有问题,常见的问题如下:
网络卡不稳定、品质不佳,或者与整体系统的兼容度不佳;
各网络设备的接头不佳,接触不良,造成讯号衰减;
各网络设备使用方法不良,造成设备功能衰减;
3.设备配置的规则;
在各个设备的配置上,是有规则的,最常听见的就是太长的网络线会造成讯号的衰减,导致网络联机的时间太长甚至无法联机!
关于相关的设备配置原则上,可以参考网中人兄的网站:
使用错误的网络线,最常发生在并行线与跳线的分别!
路设网络线过长,导致讯号衰减太严重。
以最常见的最高品质(CAT5等级,亦即目前在市面上最常看到的产品,最大传输速度可达100Mbps)RJ-45并行线来说,他的限制长度大概是在90公尺左右,也就是说,在两个设备之间(如网络卡与Hub的距离)的网线长度当然以不超过90公尺为原则了;
其它噪声的干扰,最常发生在网络线或者网络设备旁边有太强的磁波;
局域网络上面,节点或者其它的设备太多,以网中人兄说的543原则中,资引用如下:
5个网段(segment)。
所谓segment就在物理连接上最接近的一组计算机﹐在一个BNC网段里面最多只能接30台计算机﹐且网线总长不能超过185m。
4个增益器(repeater)。
也就是将信号放大的装置。
3个计算机群体(population)。
这个不好理解﹐也就是说前面所说的5个segment之中﹐只能有3个可以装计算机﹐其它两个不行。
软件设定的问题:
1.网络卡的IP设定错误:
例如:
同一个IP在同一个网段中出现造成IP冲突、子屏蔽网络设定错误、网络卡的驱动程序使用错误、网络卡的IRQ、I/OAddress等等;
2.路由的问题(Router):
这方面的问题出在Gateway的设定错误,或者是路由设定不正确,导致资料封包没有办法顺利的送出去;
3.通讯协议的问题(Protocol):
最常发生在不同的接口设备的通讯了!
例如windows2000与98之间的『网络上的芳邻』之沟通中,以NetBUEI似乎是比较好的解决方案!
4.网络负荷问题(Loading):
当同时有大量的资料封包涌进Server或者是Hub或者是同一个网域中,就有可能造成网络的停顿甚至挂点!
5.其它问题:
一些port被防火墙挡住了,造成无法执行某些网络资源;
应用程序本身的Bug问题;
应用程序中使用者的网络设定错误;
以及不同的操作系统的兼容性问题等等。
解决问题的方法:
1.知道问题之后当然就要解决了!
以上图为例,我们需要由自身的PC上的网络卡查起,到网络线、到Hub在到ATU-R等等的硬件先检查完;
2.确定硬件没问题了,再来思考软件的设定问题!
网络卡工作确认
其实,网络一出问题的时候,你应该从自己可以检查的地方检查起,因此,最重要的地方,就是你的网络卡是否有工作的问题啦!
检查网络卡是否正常工作的方法如下:
1.使用lsmod看看网络卡的模块是否已被加载:
除非你曾经自行编译过核心,否则网络卡的驱动程序应该是以模块的型态存在才对!
由于网络卡是最基本的网络组件之一啦!
没有他,自然也就无法连上Internet,所以啰,请先确认一下你的网络卡是否已经被驱动吧!
这个时候当然就要使用lsmod来看看啦!
呵呵!
没错!
我的网络卡已经挂上去啦!
所以没有问题!
那么如果没有发现呢?
嗯!
那么很可能是没有捉到硬件啰!
这个时候请先以dmesg确认一下是否已经捉到了网络卡啰!
嗯!
确实是有捉到我的网络卡啦!
是Ethernet的网络卡呦!
2.使用ifconfig看看是否有网络卡的运作出现:
在确定网络卡已经被捉到之后,硬件就没有问题了,再来就是网络卡的软件设定问题。
通常使用了ifconfig之后,会出现一个说明窗口,如果没有任何网络硬件被驱动的话,那就以ifupeth0来激活,再以ifconfig来看看网络设备的运作!
如果还是没有办法激活的话,就需要来重新安装网络卡的驱动程序!
如何确定网络卡有无正常工作呢?
简单的很,就是使用ifconfig这个指令来检查一下吧!
如上所示,是我的网络的设定,我共有两个网络卡,设备名称分别为eth0(对内,保留IP)及eth1(对外),而由于我是使用ADSL拨接的,所以就有ppp0这个虚拟的网络接口啰!
至于第三个lo是主机内部的递归网络,这是每部机器都会有的。
如上所述,那我的三个接口都有出来,并且eth0的IP是192.168.1.2这一个,那就表示设备应该没有问题才对!
如果想要确定一下到底网络有没有通,你可以使用ping的功能:
如果有响应的话,如上面所示,那就是正常啦!
3。
不必拨接的已知固定式IP的检查方式:
假如已经知道你的实体IP、通讯闸(GateWay),且不必拨接的情况(Giga的ADSL不算这一种!
),你可以直接修改/etc/sysconfig/network以及/etc/sysconfig/network-scripts/ifcfg-eth0这两个档案,然后以ifupeth0激活网络卡,并以ping你的网络卡IP来看看是否有正常工作。
在上面的例子中,你的IP是140.116.44.125,则你可以广播的地址共有140.116.44.1-255(140.116.44.255那一个),而你的子屏蔽网络为255.255.255.0。
好了!
都设定完成之后,那就直接以下面的方式来激活:
看看网络卡是否正常的激活了呢?
4。
需拨接的网络卡IP:
通常建议直接在/etc/sysconfig/network及/etc/sysconfig/network-scripts/ifcfg-eth0中,给予一个虚拟IP后,再ping你的网络卡IP。
这是由于拨接式ADSL在拨接之前是没有真实IP的,所以我们先以虚拟IP来测试看看网络卡是否可以正常激活吧:
在上面的例子中,你将网络卡的虚拟IP设定成为192.168.1.2这一个!
另外一个比较重要的地方在于ONBOOT的地方,由于你的网络需要拨接后才能连上Internet,所以,『请不要在开机的时候将"
对外"
的网络卡激活』,很多网友都误会了这里的意思!
另一个习惯的错误在于将BOOTPROTO(通讯协议)设定成DHCP,这是不对的,因为你的网络是透过拨接的方式,在拨接的过程中就会由rp-pppoe给予DHCP的协议了,所以这里只要设定成none(没有)就行了!
千万注意了!
然后再以下面的方式来确认网络卡的运作与否:
如果确定可以连上Internet之后,就将adsl-start写进/etc/rc.d/rc.local中吧!
5。
重新安装网络卡驱动程序:
如果上面的方式都没有办法来正常激活你的网络卡时,那就只好再捉一次你的网络卡驱动程序了。
首先看看驱动程序对不对吧!
假设你买的是螃蟹卡,那么你的/etc/modules.conf内容就会有点像这样(在RedHat6.x以前的档案,档名为/etc/conf.modules!
):
上面是说,两块卡的io与irq分别为0x300,3及0x320,5。
至于这方面的相关信息,你可以进入windows系统中看过(所以说,可以安装成多成操作系统啦!
)再来修改吧!
好了,那如果要重新安装网络卡的驱动程序呢?
!
简单来说,你可以依照小弟的网页来安装网络卡:
鸟哥的私房菜。
不过,若是D-Link的网络卡(指D-Link530B版的网络卡),可以参考狼主的网络实验室的网管小技巧来安装看看。
反正不管如何说,一般都与/etc/module.conf这个档案有点关系(在RedHat6.X以前的版本为/etc/conf.modules而7.0以后的版本则变成/etc/modules.conf档案了!
),通常的网络卡驱动程序安装方法步骤如下:
1.下载你的网络卡驱动程序;
2.编译并安装模块;
3.修改/etc/conf.module档案;
4.修改/etc/sysconfig/network档案;
5.修改/etc/sysconfig/network-scripts/ifcfg-eth0档案;
6.以ifupeth0来激活你的网络卡试试看啰!
你只要将你的网络设备与你的芯片名称写上正确的,再加上将该芯片的驱动程序编译完成,并摆在/lib/modules/`uname-r/kernel/drivers/net里面即可(若核心为2.2.xx则需要摆在/lib/modules/2.X.X/net里面即可啰!
)
VBird的建议:
其实,在架设Linux的过程中,大概最麻烦的地方就是在网络的设定这里了,尤其是后续的一些局域网络的联机设定(如果涉及NAT主机来分享网络频宽的话,将会更麻烦!
),所以这里VBird要给大家一个建议,就是遇到网络卡设定的瓶颈的时候,干脆先买一块很便宜,但是支持度很高的螃蟹卡(我去大卖场看过,最便宜的只要250不到就有了,我在台南!
),先将网络架设起来再说!
否则一个新手花了很多的时间去搞一块莫名的网络卡,常常会磨损一个Linux爱好者的耐心!
在确认完了最重要的网络卡设定之后,并且确定网络卡是正常的之后,在接着下来是局域网络内的网络连接情况了!
假设你是按照最上面那张图的架设方式,那么你的局域网络内的要求有下面几点:
1.关于IP的设定:
假设你的私有IP段为192.168.1.0/24,那你的局域网络内的所有计算机的IP应该介于192.168.1.1-192.168.1.254,且所有的计算机的子屏蔽网络均为255.255.255.0,并且IP在所有的计算机都不可以重复;
2.关于Gateway与DNS的设定:
假设你的Linux对内IP为192.168.1.2,那么所有局域网络内,其它的个人计算机的通讯闸应该是192.168.1.2这一个,此外,你的DNS应该设定为ISP给你的DNSIP呢!
例如Hinet的168.95.1.1,如果你不晓得你的DNS应该设定多少,那就设定为168.95.1.1即可!
『注意!
不要设定为192.168.1.2』;
3.关于Windows端的通讯协议:
局域网络内其它的windows系统的通讯协议仅需要TCP/IP及NetBUEI即可,安装过多的通讯协议可能会造成联机过慢的情况;
4.关于Windows端的工作群组与计算机名称:
假如你还需要资源共享,那么你就必须在windows系统中开放档案分享,并且建议所有的计算机将『工作群组』设定相同,但『计算机名称』则不能相同!
此外,强烈建议将所有的计算机的登录名称设定相同。
以我为例,在我的工作地方,我管理的近十台的计算机的登录名称都相同,所以资源共享的时候,不论是98或是2000或是其它的系统,都可以快速的就连接上喔!
若要问你:
局域网络内的计算机是否联机成功?
最简单的方是就是以ping啦!
假设我是在Linux主机端(192.168.1.2这一个IP),那我只要在主机端下达:
就可以知道192.168.1.100这部计算机是否可以跟我的主机相通!
如果不能连通呢?
说说可能的原因:
1.Windows端的设定不对:
仔细看一下上面说的几个基本要求的设定,是不是都正确呢!
如果不确定的话,得到这里去看一下Windows的设定。
2.联机线材不对:
要晓得,两块网络卡之间是以『跳线』连接,网络卡与Hub是以『并行线』连接。
因为网络线(RJ-45)分成并行线与跳线,两种规格并不相同。
而在Hub的形式方面,目前较新的ADSL调制解调器,连接到Hub都必须要连到uplink这个孔了,所以必须以跳线连接Hub到ADSL调制解调器才行!
此外,目前ADSL调制解调器大都有一个虚拟IP为192.168.1.1,那你可以在你的主机端下达ping192.168.1.1来看看两者是否有连通!
这时请注意,将你的网络卡连接到调制解调器的那一个,设定的IP成为192.168.1.2,并且重新激活ifupeth0,才可以进行测试!
注:
还有一个简单的检视方法,那就是接到Hub上面之后,并且开启所有的装置电源,则全部的有接上装置的Hub插孔应该要『亮灯』才是对的,如果灯不亮,那就『肯定』有问题!
3.网络卡或Hub坏掉了:
不要怀疑!
网络卡与Hub是会坏掉的!
得小心一下这一个情况。
4.讯号太弱了:
这个最常发生在电话线接很长,或者是网络线接很长的情况,由于你的线材可能不是很好,所以可以就会造成你的网络会断断续续的!
当然,也有可能是中华电信的机房本身提供给你的讯号就不够强,这时,你就必须请中华电信的工程师来帮你处理处理了!
在一般正常的情况之下,当你下达route这个指令的时候,你的路由表(routetable)应该会很快的显示出来,如果万一不幸显示的速度非常之慢,那么通常就是你的网络设定可能『有点怪怪的』,当然啦,如果是你的系统还有放置上IPalias的话,那么就真的会有点慢慢的~不过没有关系,我们还是可以来设定一下是否有问题呢!
?
请注意,由于我有两块网络卡(一块对内一块对外,我的系统架构就如同上图所显示的那样!
),加上我是以拨接的方式连上Internet的,所以自然就会有eth0,eth1,ppp0及本来就会有的lo这三个接口,而由于eth1这个接口是依附在ppp0上面的(我的ppp0的拨接适配卡使用的是eth1呦!
),所以自然也就没有eth1这个接口的设定!
好了,那么我的路由接口自然就应该会有eth0,ppp0,lo这三个啦!
那由于lo是127.0.0.1,加上他是AClass的网络循环,因此就会得到上面的那一行!
同时,我的预设通讯闸自然选择可以连上Internet的ppp0那块,所以也就成为default那一行啰!
无论如何,我的route可以这样就设定妥当没有问题!
最常发生在这个地方的情况就是有点像底下的样子:
发现哪里有问题了吗?
对啦!
那个default怎么gateway为192.168.1.2呢?
唯一有问题的地方就是在那儿!
因为预设的GATEWAY变成了192.168.1.2这个私有IP,自然无法连接上Internet,那么当你使用『ping-c5202.1.237.21』当然也就会显示出out的IP为192.168.1.2,呵呵!
完全连不出去!
怎么办?
很简单啦!
就是直接修改/etc/sysconfig/network这个档案,将里头的GATEWAY或GATEWAYDEV的设定修正一下,就可以啦!
加油!
如果通过上面的问题确认,这个时候你的情况应该是:
1.网络卡与室内的联机材料都是好的;
2.并且局域网络内的计算机都可以互通;
3.同时,adsl-start已经正确的工作了;
4.pingIP可以ping的到,但是还是没有办法连上网络。
该如何是好!
嘿嘿!
这时就需要注意你的DNS设定了!
通常,如果是DNS设定的问题的时候,发生的现象是这样的:
(我们以雅虎站,IP:
202.1.237.21来说明)
以IP来ping雅虎有资料可以传递:
有点像这样:
以领域名称来ping却没有响应:
上面只是一个简单的表示方法,你的主要的DNS主机为168.95.1.1(Hinet的DNS主机),而备用的DNS则为139.175.10.20及163.28.113.1这两个。
何谓备用的DNS主机呢?
这是由于168.95.1.1可能会因为某些正常或不正常原因而停止服务的时候,则你的主机只要侦测不到主要DNS主机,将会继续往下寻找另一个DNS主机,直到没有DNS主机为止。
通常我至少都会设定两个以上。
那如果是windows端的设定呢?
常常初学者会搞错的地方就是在windows的设定了!
要注意:
Windows端的DNS设定与主机端/etc/resolv.conf的内容相同即可!
很多初学者都以为TCP/IP内的DNS主机是填上自己的Linux主机,这是不对的(除非你自己的Linux上面有DNS服务)!
你只要填上你的ISP给你的DNS主机IP位置就可以了!
NAT无法正确的工作原因有很多,不过,如果你确定你的局域网络联机已经正常,而且主机可以正确的连上Internet,另外,客户端的DNS设定也是正确的(这一步常常有人搞错!
),那么可能发生的问题大概就是没有将IPv4打开吧!
虽然/etc/sysconfig/network当中已经设定了FORWARD_IPV4=yes的项目,但是仍然有可能没有开启这一个项目,那么就以下面的指令来开启吧!
echo1>
/proc/sys/net/ipv4/ip_forward
你可以将这个指令写入net.sh里面,或者是直接写在/etc/rc.d/rc.local这个档案中。
另外,还有一点,就是你的GateWay设定错误了!
这个在上面的network档案说明中已经提到了,你可以在详细的看一看!
或者是使用route-n这个指令来察看一下你的routetable(路由表)例如:
仔细看到上面喔:
第六行显示你的对内网域为192.168.1.0这一个,且在Iface的地方,显示了你的界面卡使用的是eth0这一个界面卡;
另外,你的对外通讯闸(就是最后一行,由于是对外,所以会写出0.0.0.0的Destination)是以172.16.11.8这一个,且你的接口是ppp0这一个!
了解了吗?
对内与对外的routetable是不一样的,如果你的对外Iface显示eth0的话,那就表示你的路由设定错误了!
这时你就必须要修改一下你的/etc/sysconfig/network档案啰!
然后再以
/etc/rc.d/init.d/networkrestar