📄 0150detect_network.htm
字号:
<li>网路线过度扭曲变形造成讯号不良;
<li>自制网路接头 ( 如RJ-45跳线头 ) 品质不良;
<li>网路接头与设备 ( 如 Hub )接触不良;</span></ul><br /></li>
<li><span class=text_import1>网路卡、Hub 及 Router 等网路设备的问题</span>∶<br /><br />
另外,还有一些网路设备也会有问题,常见的问题如下∶<br /><br />
<ul><span class=text_import2>
<li>网路卡不稳定、品质不佳,或者与整体系统的相容度不佳;
<li>各网路设备的接头不佳,接触不良,造成讯号衰减;
<li>由于网路设备所在环境恶劣 (例如过热) 导致的当机问题;
<li>各网路设备使用方法不良,造成设备功能衰减;</span></ul><br /></li>
<li><span class=text_import1>设备配置的规则</span>∶<br /><br />
在各个设备的配置上是有一定的规则的,而最容易发生的问题就是太长的网路线会造成讯号的衰减,
导致网路连线的时间太长甚至无法连线。我们曾在网路基础当中谈过乙太网路最长的支援距离,
还有一些其他网路媒体配置的问题您必须晓得的∶<br /><br />
<ul><span class=text_import2>
<li>使用错误的网路线,最常发生在平行线与跳线的分别!
<li>架设的网路线过长,导致讯号衰减太严重。例如乙太网路 CAT5e 的线理论限制长度大概是在 90
公尺左右,若两个设备 (Hub/主机之间) 长度大于 90 公尺时,自然就容易出现讯号发生问题了!
<li>其他杂讯的干扰,最常发生在网路线或者网路设备旁边有太强的磁波;
<li>区域网路上面,节点或者其他的设备太多,过去我们常以所谓的 543 原则来说明∶
<ul><li>5个网段(segment)。所谓segment就在物理连接上最接近的一组电脑,
在一个BNC网段里面最多只能接30台电脑,且网线总长不能超过185m。
<li>4个增益器(repeater)。也就是将信号放大的装置。
<li>3个电脑群体(population)。这个不好理解,也就是说前面所说的5个segment之中,
只能有3个可以装电脑,其它两个不行。</ul>
</span></ul></li>
</ol>
上述是一些最常见的硬体问题,当然啦,有的时候是设备本身就有问题,
而我们在网路基础里面谈到的那个很重要的『
<a href="0110network_basic.php#whatisnetwork_ethernet">网路布线</a>
』的情况,也是造成网路停顿或通顺与否的重要原因呐!所以,硬体问题的判断比较困难点。
好~底下我们再来聊一聊软体设定的相关问题。<br /><br />
</div>
<hr /><a NAME="problems_soft"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">软体问题</span><br />
<div class=block2>
所谓的软体问题,绝大部分就是 IP 设定错误啊,路由不对啊,还有 DNS 的 IP 设定错误等等的,
这些问题都是属于软体设定啦!只要将设定改一改,利用一些侦测软体查一查,
就知道问题出在哪里了!基本的问题有∶<br />
<ol>
<li><span class=text_import1>网路卡的 IP 设定错误</span>∶<br />
例如∶同一个 IP 在同一个网段中出现造成 IP 冲突、子遮罩网路设定错误、网路卡的驱动程式使用错误、
网路卡的 IRQ、 I/O Address 的设定冲突等等;<br /><br /></li>
<li><span class=text_import1>路由的问题 (route table)</span>∶<br />
最常见的就是预设路由 (default gateway) 设定错误了!或者是路由介面不符所导致的问题,
使得资料封包没有办法顺利的送出去。<br /><br /></li>
<li><span class=text_import1>通讯协定不相符</span>∶<br />
最常发生在不同的作业系统之间的通讯传输,例如早期 Windows 98 与 Windows 2000 之间的『网芳』
若要达成沟通,则 Windows 98 必须要加装 NetBEUI 这个通讯协定才行。又例如两部 Linux
主机要透过 NFS 通讯协定传输资料时,两边都得要支援 portmap 这个启动 RPC 协定的程式才行!
这些通讯协定我们都会在后面的章节分别介绍的啦!<br /><br /></li>
<li><span class=text_import1>网路负荷的问题 (loading)</span>∶<br />
当同时有大量的资料封包涌进 Server 或者是 Hub 或者是同一个网域中,
就有可能造成网路的停顿甚至挂点!另外,如果区网内有人使用 BT (P2P 软体)
或者是有人中毒导致蠕虫充满整个区网,也会造成网路的停顿问题;<br /><br /></li>
<li><span class=text_import1>其他问题</span>∶<br />
例如∶一些 port 被防火墙挡住了,造成无法执行某些网路资源;应用程式本身的 Bug
问题;应用程式中使用者的网路设定错误;以及不同的作业系统的相容性问题等等。
</ol>
</div>
<hr /><a NAME="problems_solv"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">问题的处理</span><br />
<div class=block2>
既然问题发生了,就要去处理他啊!那如何处理呢?以上面的星形连线图示为例,把握两个原则∶
<ul><span class=text_import2>
<li>先由自身的环境侦测起,可以由自身 PC 上的网路卡查起,到网路线、到 Hub 再到 ATU-R
等等的硬体先检查完。在这个步骤当中,最好用的软体就是 ping ,
而你最好能有两部以上的主机来进行连线的测试;<br /></li>
<li>确定硬体没问题了,再来思考软体的设定问题!</span></ul>
实际上,如果网路不通时,你可以依序这样处理∶<br />
<ol>
<li><span class=text_import2>了解问题</span>∶这个问题是刚刚发生?还是因为之前我做了什么动作而导致无法连线?
<li><span class=text_import2>确认 IP</span>∶先看看自己的网卡有无驱动?能否取得正确的 IP 来连线?
<li><span class=text_import2>确认区网连线</span>∶利用 <a href="0140networkcommand.php#ping">ping</a>
来沟通两部主机,确定网路线与中继的 hub/switch 工作正常;
<li><span class=text_import2>确认对外连线</span>∶看主机或 IP 分享器能否依据
<a href="0130internet_connect.php">连上 Internet</a> 那一章的方法顺利取得 IP 参数,并以
<a href="0140networkcommand.php#ping">ping</a> 的方法确定对外连线是可以成功的;
<li><span class=text_import2>确认 DNS 查询</span>∶利用 <a href="0140networkcommand.php#nslookup">nslookup</a>
或 host 或 dig 检查 www.google.com 看看;
<li><span class=text_import2>确认 Internet 节点</span>∶可以利用
<a href="0140networkcommand.php#traceroute">traceroute</a> 检查各节点是否没问题?
<li><span class=text_import2>确认对方伺服器正常服务</span>∶是否对方伺服器忙线中?或他的机器挂了?
<li><span class=text_import2>确认我方伺服器</span>∶是否某些服务没有正确启动?可利用
<a href="0140networkcommand.php#netstat">netstat</a> 检查,
是否某些安全机制的套件没有开放,例如 SELinux 这项机制;
<li><span class=text_import2>防火墙或权限的问题</span>∶是否由于权限设定错误所致?
是否由于您的机器有防火墙忘记启用可连线的埠口所致?这个可以透过
<a href="0140networkcommand.php#tcpdump">tcpdump</a> 来处理!
</ol>
透过这些处理动作后,一般来说,应该都可以解决您无法上网的问题了!
当然啦,如果是硬体的问题,那么鸟哥也无法帮你,你可能最需要的是......
『<span class=text_import1>送修吧孩子!</span>』<br />
</div>
</div>
<hr /><a NAME="step"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">处理流程</span><br />
<div class=block1>
既然知道上面已经谈到的几个小重点了,接下来当然是一个一个的给他处理掉啊!
底下我们就得要一步一脚印的开始检查的流程啊!<br /><br />
<hr /><a NAME="step_1_nic"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">步骤一∶网路卡工作确认</span><br />
<div class=block2>
其实,网路一出问题的时候,您应该从自己可以检查的地方检查起,因此,
最重要的地方就是检查您的网路卡是否有工作的问题啦!检查网路卡是否正常工作的方法如下∶<br />
<ol>
<li><span class=text_import1>确定网路卡已经驱动成功∶</span><br />
如果网路卡没有驱动成功,其他的,免谈!!所以你当然需要驱动你的网路卡才行!
确认网路卡是否被驱动,可以利用 lspci 先看看有没有捉到 Ethernet 字样的显示资讯,再以 dmesg
来检查是否被核心侦测到,最后使用 lsmod 看看有没有相对应的模组已被载入。
整个步骤可以参考『<a href="0130internet_connect.php#note_nic">连上 Internet - Linux 网路卡</a>』那一个小节,
这里鸟哥不再说明了! ^_^!不过你要注意的是,如果上述的检测方式都无法发现你的网路卡模组,
那肯定就是核心与核心模组不支援你的网路卡啊!那该怎办?参考
『<a href="0130internet_connect.php#note_compile">连上 Internet之网卡编译</a>』就对了!<br /><br />
<li><span class=text_import1>确定可以手动直接建立 IP 参数∶</span><br />
在顺利的载入网路卡的模组,并且『取得网路卡的代号』之后,我们可以利用
<a href="0140networkcommand.php#ifconfig">ifconfig</a> 或
<a href="0140networkcommand.php#ip_cmd">ip</a> 来直接给予该网路卡一个网路位址试看看!
看能否给予 IP 设定呢?例如∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>ifconfig eth0 192.168.1.100</span>
</pre></td></tr></table>
来直接建立该网路卡的 IP ,然后直接输入 ifconfig 看能否查阅到刚刚设定好的参数即可。
如果可以建立起该 IP ,就以 ping 来检测看看∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>ping 192.168.1.100</span>
</pre></td></tr></table>
如果有回应的话,那表示这个网卡的设定应该是没有问题了!
再来则是开始检测一下区域网路内的各个连接硬体啦!</li>
</ol>
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 事实上要再次的重申,如果您的主机捉不到您主机上的网路卡 (通常是内建的网路晶片),
那么最好买一张便宜的螃蟹卡先来凑合著用,『先求有!再求完美』,
不要一开始就挑战自己的耐心啊!拜托拜托!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div> </div>
<hr /><a NAME="step_2_lan"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /> <span class="text_h2">步骤二∶区域网路内各项连接设备检测</span><br />
<div class=block2>
在确认完了最重要的网路卡设定之后,并且确定网路卡是正常的之后,
再接著下来则是区域网路内的网路连接情况了!假设您是按照
<a href="#fig_1">图一</a>所设定的星形连线区域网路架构,那么你必须要知道整个『网域』的概念!<br />
<ol>
<li><span class=text_import1>关于网域的概念</span>∶<br />
你得清楚的知道图一中各主机与伺服器可以互相沟通是因为他们在『同一个网域里面』,
所以,你要知道所谓的 192.168.1.0/24 这种网域的表达方式所代表的意义,
且子遮罩网路 (Netmask) 的意义也得了解。如果忘记了,请回去<a href="0110network_basic.php">网路基础</a>再翻一翻。
<br /><br /></li>
<li><span class=text_import1>关于 Gateway 与 DNS 的设定</span>∶<br />
Gateway 与 DNS (在 /etc/sysconfig/network-scripts/ifcfg-eth0, /etc/resolv.conf 的设定) 最容易被搞混~
这两个并非是填写你的 Linux 主机的 IP 喔!应该是要填写 IP 分享器 (或 NAT 主机) 的 IP 在 Gateway 中,
填写 168.95.1.1 在 DNS 的 IP 设定当中!不能够搞错啊!如果还是不清楚?回去网路基础看看吧!<br /><br /></li>
<li><span class=text_import1>关于 Windows 端的工作群组与电脑名称</span>∶<br />
假如您还需要资源分享,那么您就必须在 windows 系统中开放档案分享,
并且建议所有的电脑将『工作群组』设定相同,但『电脑名称』则不能相同!</li>
</ol>
假设你的区网内所有的主机 IP 都设定正确了,那么接下来你就可以使用 ping 来测试两部区网内主机的连线,
这个连线的动作可以让你测试两部主机间的各项设备,包括网路线、Hub/Switch 等等的咚咚!
如果无法测试成功,那就请了解一下∶<br />
<ol>
<li><span class=text_import1>IP 参数是否设定正确</span>∶<br />
再次强调,先决定 IP 是对的!鸟哥在上课的时候常常发现同学无法连到我的主机上,
一经使用 ifconfig 才发现他们与我的 IP 不在同一个网段内,就是会有这样的情况发生啊!唉~<br /><br /></li>
<li><span class=text_import1>连线的线材问题</span>∶<br />
包括我们前面提到的网路线本身折损、过度缠绕造成的讯号衰减问题等等,
另外,有些比较旧的 Hub/Switch 或者是 ATU-R (ADSL 数据机,俗称的小乌龟是也) 由于没有
<a href="0110network_basic.php#auto_mdi">Auto MDI/MDIX</a> 的功能,所以无法自动的分辨跳线与否,
那么当你插错网路线的时候,也就无法接通啦!这样了解乎?另外,<span class=text_import2>早期我们常常会说,
最简单判断每部主机是否顺利连接到 Hub/Switch 可以透过连接到 Switch 上的灯号来判断</span>,
不过,由于有时候网路线本身讯号不良,虽然灯号还是会亮,不过就是无法连接到 Switch 的情况
(鸟哥自己就曾发生过啊!),此时,跟朋友借一条 OK 的网路线来测试看看吧!<br /><br /></li>
<li><span class=text_import1>网卡或 Hub/Switch 本身出问题</span>∶<br />
有一次鸟哥无法在外部连接到鸟哥的主机,怀疑是挂点了,结果冲到主机所在办公室察看,咦!
主机是好好的嘛!那怎么会无法连线呢?原因是.......室内环境通风不良,加上 Switch 所在处温度过高,
加上那部旧的 switch 『刚好』风扇坏了,哈!就这样『 <span class=text_import2>switch 当机</span> 』
在重新启动 switch (拔掉再插上电源线) 后就正常了。所以棉,很多情况都是会发生的,
而区域网路内的环境也很容易影响到连线品质啊!<br /></li>
</ol>
确定自己主机的 IP 与网卡没有问题,加上内部区网透过 ping 也测试过没有问题,
接下来就是要『取得可以对外连线的 IP 参数』啦!这个重要!<br /><br />
</div>
<hr /><a NAME="step_3_ip"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">步骤三∶取得正确的 IP 参数</span><br />
<div class=block2>
什么叫『取得正确的 IP 参数』啊?还记得我们谈过如果要顺利的连接上 Internet 的话,
必须要可以跟 public IP 进行沟通才行,而与 public IP 取得沟通的方法,在台湾比较常见的有 ADSL,
Cable modem, 学术网路, 电话拨接等等,在 CentOS 当中,我们可以透过修改
/etc/sysconfig/network-scripts/ifcfg-eth0,或者是利用 rp-pppoe 来进行拨接,
无论如何,<span class=text_import2>你就是得要连接到某个 ISP 去就是了</span>~在你确认所有的区网没有问题之后,
参考一下<a href="0130internet_connect.php">连上 Internet </a>那一章的介绍,
连上之后,立即以 ifconfig 看看有没有捉到正确的 IP 啊?
在台湾如果使用 ADSL 连线的话,你应该可以顺利的取得一组正确的 Public IP 参数的!<br />
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 曾有国外的华人朋友来信说到,他们使用 ADSL 拨接之后竟然取得一组 Private IP ,
害他们没有办法架站!他们想请问这样的情况是否合理。如果您熟悉路由相关的概念之后,
当然会知道∶『这当然合理!』,因为你取得的 IP 只是为了要连接到 ISP 去而已,
而 ISP 与你的主机当然可以透过 Private IP 来连线啊!如果是这样的话,那么您就肯定无法架站了! ^_^
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
另外,最常发现无法顺利取得 IP 的错误就是『BOOTPROTO』这个设定值设定错了!
因为 static 与 hdcp 协定所产生的 IP 要求是不一样的啊!还记得吧!
要特别留在 ifcfg-eth0 里面的设定参数喔!另外,如果你是使用 ADSL 拨接的,
但是老是无法拨接成功,那么建议你可以这样试看看∶<br />
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -