# 6.1 无法联机原因分析
## 6.1 无法联机原因分析
老是看到有朋友在网络上哀嚎说:『我的网络不通啊!』还有比较奇怪的是『啊!怎么网络时通时不通』之类的问题, 这类的问题其实主要可以归类为硬件问题与软件设定问题。硬件的问题比较麻烦,因为需要透过一些专门的装置来分析硬件; 至于软件方面,绝大部分都是设定错误或者是观念错误而已,比较好处理啦 (第四章谈到的就是软件问题)! OK!我们先来看看网络在哪里可能会出问题吧!
- - - - - -
### 6.1.1 硬件问题:网络线材、网络设备、网络布线等
在[第二章的网络基础](http://linux.vbird.org/linux_server/0110network_basic.php)当中我们曾提到很多的网络基础概念, 以及一些简单的硬件维护问题。以一个简单的星形联机来说,我们可以假设他的架构如同下图所示:
![](https://box.kancloud.cn/2016-05-13_5735da4eb46a4.jpg)
图 6.1-1、局域网络的联机状态示意图
在上面的图示当中,"Linux PC3" 要连到 Internet 上面去的话,需要透过网络线、交换器、 NAT 主机 (Linux 服务器或 IP 分享器)、ADSL 调制解调器,附挂电话线路、ISP 自己的机房交换器,以及 Internet 上面的所有媒体设备 (包括路由器、网桥、其他网络线等等);那么哪些地方可能会出问题啊?
1. 网络线材的问题:
在上面的图示中,可以发现,其实网络接口设备中,使用最多的就是网络线啦!要注意网络线分成并行线与跳线 (RJ-45接头),而并不是所有的设备都支持自动分辨跳线与并行线的功能的! 所以你必须要了解到你的设备 (Hub/Switch/调制解调器) 所支持的网络线;另外,如果你的网络线有经过门缝处或者是容易凹折处, 那很有可能由于经常性的凹折导致电子讯号不良,所以你需要注意一下这些事情:
- 网络线被截断;
- 网络线过度扭曲变形造成讯号不良;
- 自制网络接头 (如 RJ-45 跳线头) 品质不良;
- 网络接头与设备 (如 Hub) 接触不良;
2. 网络卡、Hub 及 Router 等网络设备的问题:
另外,还有一些网络设备也会有问题,常见的问题如下:
- 网络卡不稳定、质量不佳,或者与整体系统的兼容度不佳 (网络卡也是会坏的);
- 各网络设备的接头不佳,接触不良,造成讯号衰减 (经常的拔插就有可能发生);
- 由于网络设备所在环境恶劣 (例如过热) 导致的当机问题 (鸟哥经常遭遇到 switch 热当的问题);
- 各网络设备使用方法不良,造成设备功能衰减 (switch 常常插电/断电容易坏喔);
3. 设备配置的规则:
在各个设备的配置上是有一定的规则的,而最容易发生的问题就是太长的网络线会造成讯号的衰减, 导致网络联机的时间太长甚至无法联机。我们曾在网络基础当中谈过以太网络最长的支持距离 (10BASE5 最长可达 500m), 还有一些其他网络媒体配置的问题你必须晓得的:
- 使用错误的网络线,最常发生在并行线与跳线的分别 (现在比较少见这个问题了)!
- 架设的网络线过长,导致讯号衰减太严重。例如以太网络 CAT5e 的线理论限制长度大概是在 90 公尺左右 (虽然 10BASE5 可达 500m),若两个设备 (Hub/主机之间) 长度大于 90 公尺时,自然就容易出现讯号发生问题了!
- 其他噪声的干扰,最常发生在网络线或者网络设备旁边有太强的磁波;
- 局域网络上面,节点或者其他的设备太多,过去我们常以所谓的 543 原则来说明:([注1](#ps1))
- 5 个网段 (segment)。所谓 segment 就在物理连接上最接近的一组计算机,在一个 BNC 网段里面最多只能接 30 台计算机﹐且网线总长不能超过 185m。
- 4 个增益器 (repeater)。也就是将信号放大的装置。
- 3 个计算机群体 (population)。这个不好理解﹐也就是说前面所说的 5 个 segment 之中, 只能有 3 个可以装计算机,其它两个不行。
上述是一些最常见的硬件问题,当然啦,有的时候是设备本身就有问题,而我们在网络基础里面谈到的那个很重要的『 [网络布线](http://linux.vbird.org/linux_server/0110network_basic.php#tcpip_link_hw) 』的情况,也是造成网络停顿或通顺与否的重要原因吶!所以,硬件问题的判断比较困难点。 好~底下我们再来聊一聊软件设定的相关问题。
- - - - - -
### 6.1.2 软件问题:IP 参数设定、路由设定、服务与防火墙设定等
所谓的软件问题,绝大部分就是 IP 参数设定错误啊,路由不对啊,还有 DNS 的 IP 设定错误等等的, 这些问题都是属于软件设定啦!只要将设定改一改,利用一些侦测软件查一查,就知道问题出在哪里了!基本的问题有:
1. 网络卡的 IP/netmask 设定错误:
例如:同一个 IP 在同一个网段中出现造成 IP 冲突、子网掩码设定错误、网络卡的驱动程序使用错误、网络卡的 IRQ、 I/O Address 的设定冲突等等;
2. 路由的问题 (route table):
最常见的就是预设路由 (default gateway) 设定错误了!或者是路由接口不符所导致的问题, 使得数据封包没有办法顺利的送出去。
3. 通讯协议不相符:
最常发生在不同的操作系统之间的通讯传输,例如早期 Windows 98 与 Windows 2000 之间的『网芳』 若要达成沟通,则 Windows 98 必须要加装 NetBEUI 这个通讯协议才行。又例如两部 Linux 主机要透过 NFS 通讯协议传输数据时,两边都得要支持 rpcbind 这个启动 RPC 协议的程序才行! 这些通讯协议我们都会在后面的章节分别介绍的啦!
4. 网络负荷的问题 (loading):
当同时有大量的数据封包涌进 Server 或者是 Hub 或者是同一个网域中, 就有可能造成网络的停顿甚至挂点!另外,如果区网内有人使用 BT (P2P 软件) 或者是有人中毒导致蠕虫充满整个区网,也会造成网络的停顿问题;
5. 其他问题:
例如:一些 port 被防火墙挡住了,造成无法执行某些网络资源;应用程序本身的 Bug 问题;应用程序中用户的网络设定错误;以及不同的操作系统的兼容性问题等等。
- - - - - -
### 6.1.3 问题的处理
既然问题发生了,就要去处理他啊!那如何处理呢?以上面的星形联机图示为例,把握两个原则:
- 先由自身的环境侦测起,可以由自身 PC 上的网络卡查起,到网络线、到 Hub 再到调制解调器等等的硬件先检查完。 在这个步骤当中,最好用的软件就是 ping ,而你最好能有两部以上的主机来进行联机的测试;
- 确定硬件没问题了,再来思考软件的设定问题!
实际上,如果网络不通时,你可以依序这样处理:
1. 了解问题:这个问题是刚刚发生?还是因为之前我做了什么动作而导致无法联机? 例如之前鸟哥曾经更新过一个核心,结果该核心并不能驱动鸟哥的新网卡...
2. 确认 IP:先看看自己的网卡有无驱动?能否取得正确的 IP 相关参数来联机?
3. 确认区网联机:利用 [ping](http://linux.vbird.org/linux_server/0140networkcommand.php#ping) 来沟通两部主机 (路由器或 IP 分享器),确定网络线与中继的 hub/switch 工作正常;
4. 确认对外联机:看主机或 IP 分享器能否依据[第四章](http://linux.vbird.org/linux_server/0130internet_connect.php)的方法顺利取得 IP 参数,并以 [ping](http://linux.vbird.org/linux_server/0140networkcommand.php#ping) 的方法确定对外联机是可以成功的 (例如 ping 168.95.1.1);
5. 确认 DNS 查询:利用 [nslookup](http://linux.vbird.org/linux_server/0140networkcommand.php#nslookup) 或 host 或 dig 检查 www.google.com 看看;
6. 确认 Internet 节点:可以利用 [traceroute](http://linux.vbird.org/linux_server/0140networkcommand.php#traceroute) 检查各节点是否没问题?
7. 确认对方服务器正常服务:是否对方服务器忙线中?或他的机器挂了?
8. 确认我方服务器:如果是别人连不上我这部主机,那检查主机某些服务正确启动否?可利用 [netstat](http://linux.vbird.org/linux_server/0140networkcommand.php#netstat) 检查。或是否某些安全机制的软件没有设定好,例如 SELinux 这项机制;
9. 防火墙或权限的问题:是否由于权限设定错误所致? 是否由于你的机器有防火墙忘记启用可联机的埠口所致?这个可以透过 [tcpdump](http://linux.vbird.org/linux_server/0140networkcommand.php#tcpdump) 来处理!
透过这些处理动作后,一般来说,应该都可以解决你无法上网的问题了!当然啦,如果是硬件的问题,那么鸟哥也无法帮你, 你可能最需要的是......『送修吧孩子!』
- - - - - -
- 鸟哥的Linux私房菜:服务器架设篇 第三版
- 第一部份:架站前的进修专区
- 作者序
- 第一章、架设服务器前的准备工作
- 1.1 前言: Linux 有啥功能
- 1.2 基本架设服务器流程
- 1.3 自我评估是否已经具有架站的能力
- 1.4 本章习题
- 第二章、基础网络概念
- 2.1 网络是个什么玩意儿
- 2.2 TCP/IP 的链结层相关协议
- 2.3 TCP/IP 的网络层相关封包与数据
- 2.4 TCP/IP 的传输层相关封包与数据
- 2.5 连上 Internet 前的准备事项
- 2.6 重点回顾:
- 2.7 本章习题
- 2.8 参考数据与延伸阅读
- 第三章、局域网络架构简介
- 3.1 局域网络的联机
- 3.2 本书使用的内部联机网络参数与通讯协议
- 第四章、连上 Internet
- 4.1 Linux 连上 Internet 前的注意事项
- 4.2 连上 Internet 的设定方法
- 4.3 无线网络--以笔记本电脑为例
- 4.4 常见问题说明
- 4.5 重点回顾
- 4.6 本章习题
- 4.7 参考数据与延伸阅读
- 第五章、 Linux 常用网络指令
- 5.1 网络参数设定使用的指令
- 5.2 网络侦错与观察指令
- 5.3 远程联机指令与实时通讯软件
- 5.4 文字接口网页浏览
- 5.5 封包撷取功能
- 5.6 重点回顾
- 5.7 本章习题
- 5.8 参考数据与延伸阅读
- 第六章、 Linux 网络侦错
- 6.1 无法联机原因分析
- 6.2 处理流程
- 6.3 本章习题
- 6.4 参考数据与延伸阅读
- 第二部分:主机的简易资安防护措施
- 第七章、网络安全与主机基本防护:限制端口, 网络升级与 SELinux
- 7.1 网络封包联机进入主机的流程
- 7.2 网络自动升级软件
- 7.3 限制联机埠口 (port)
- 7.4 SELinux 管理原则
- 7.5 被攻击后的主机修复工作
- 7.6 重点回顾
- 7.7 课后练习
- 7.8 参考数据与延伸阅读
- 第八章、路由观念与路由器设定
- 8.1 路由
- 8.2 路由器架设
- 8.3 动态路由器架设:quagga (zebra + ripd)
- 8.4 特殊状况:路由器两边界面是同一个 IP 网段: ARP Proxy
- 8.5 重点回顾
- 8.6 本章习题
- 8.7 参考数据与延伸阅读
- 第九章、防火墙与 NAT 服务器
- 9.1 认识防火墙
- 9.2 TCP Wrappers
- 9.3 Linux 的封包过滤软件:iptables
- 9.4 单机防火墙的一个实例
- 9.5 NAT 服务器的设定
- 9.6 重点回顾
- 9.7 本章习题
- 9.8 参考数据与延伸阅读
- 第十章、申请合法的主机名
- 10.1 为何需要主机名
- 10.2 注册一个合法的主机名
- 10.3 重点回顾
- 10.4 本章习题
- 10.5 参考数据与延伸阅读
- 第三部分:局域网络内常见的服务器架设
- 第十一章、远程联机服务器SSH / XDMCP / VNC / RDP
- 11.1 远程联机服务器
- 11.2 文字接口联机服务器: SSH 服务器
- 11.3 最原始图形接口: Xdmcp 服务的启用
- 11.4 华丽的图形接口: VNC 服务器
- 11.5 仿真的远程桌面系统: XRDP 服务器
- 11.6 SSH 服务器的进阶应用
- 11.7 重点回顾
- 11.8 本章习题
- 11.9 参考数据与延伸阅读
- 第十二章、网络参数控管者: DHCP 服务器
- 12.1 DHCP 运作的原理
- 12.2 DHCP 服务器端的设定
- 12.3 DHCP 客户端的设定
- 12.4 DHCP 服务器端进阶观察与使用
- 12.5 重点回顾
- 12.6 本章习题
- 12.7 参考数据与延伸阅读
- 第十三章、文件服务器之一:NFS 服务器
- 13.1 NFS 的由来与其功能
- 13.2 NFS Server 端的设定
- 13.3 NFS 客户端的设定
- 13.4 案例演练
- 13.5 重点回顾
- 13.6 本章习题
- 13.7 参考数据与延伸阅读
- 第十四章、账号控管: NIS 服务器
- 14.1 NIS 的由来与功能
- 14.2 NIS Server 端的设定
- 14.3 NIS Client 端的设定
- 14.4 NIS 搭配 NFS 的设定在丛集计算机上的应用
- 14.5 重点回顾
- 14.6 本章习题
- 14.7 参考数据与延伸阅读
- 第十五章、时间服务器: NTP 服务器
- 15.1 关于时区与网络校时的通讯协议
- 15.2 NTP 服务器的安装与设定
- 15.3 客户端的时间更新方式
- 15.4 重点回顾
- 15.5 本章习题
- 15.6 参考数据与延伸阅读
- 第十六章、文件服务器之二: SAMBA 服务器
- 16.1 什么是 SAMBA
- 16.2 SAMBA 服务器的基础设定
- 16.3 Samba 客户端软件功能
- 16.4 以 PDC 服务器提供账号管理
- 16.5 服务器简单维护与管理
- 16.6 重点回顾
- 16.7 本章习题
- 16.8 参考数据与延伸阅读
- 第十七章、区网控制者: Proxy 服务器
- 17.1 什么是代理服务器 (Proxy)
- 17.2 Proxy 服务器的基础设定
- 17.3 客户端的使用与测试
- 17.4 服务器的其他应用设定
- 17.5 重点回顾
- 17.6 本章习题
- 17.7 参考数据与延伸阅读
- 第十八章、网络驱动器装置: iSCSI 服务器
- 18.1 网络文件系统还是网络驱动器
- 18.2 iSCSI target 的设定
- 18.3 iSCSI initiator 的设定
- 18.4 重点回顾
- 18.5 本章习题
- 18.6 参考数据与延伸阅读
- 第四部分:常见因特网服务器架设
- 第十九章、主机名控制者: DNS 服务器
- 19.1 什么是 DNS
- 19.2 Client 端的设定
- 19.3 DNS 服务器的软件、种类与 cache only DNS 服务器设定
- 19.4 DNS 服务器的详细设定
- 19.5 协同工作的 DNS: Slave DNS 及子域授权设定
- 19.6 DNS 服务器的进阶设定
- 19.7 重点回顾
- 19.8 本章习题
- 19.9 参考数据与延伸阅读
- 第二十章、WWW 伺服器
- 20.1 WWW 的簡史、資源以及伺服器軟體
- 20.2 WWW (LAMP) 伺服器基本設定
- 20.3 Apache 伺服器的進階設定
- 20.4 登錄檔分析以及 PHP 強化模組
- 20.5 建立連線加密網站 (https) 及防砍站腳本
- 20.6 重點回顧
- 20.7 本章習題
- 20.8 參考資料與延伸閱讀
- 第二十一章、文件服务器之三: FTP 服务器
- 21.1 FTP 的数据链路原理
- 21.2 vsftpd 服务器基础设定
- 21.3 客户端的图形接口 FTP 联机软件
- 21.4 让 vsftpd 增加 SSL 的加密功能
- 21.5 重点回顾
- 21.6 本章习题
- 21.7 参考数据与延伸阅读
- 第二十二章、邮件服务器: Postfix
- 22.1 邮件服务器的功能与运作原理
- 22.2 MTA 服务器: Postfix 基础设定
- 22.3 MRA 服务器: dovecot 设定
- 22.4 MUA 软件:客户端的收发信软件
- 22.5 邮件服务器的进阶设定
- 22.6 重点回顾
- 22.7 本章习题
- 22.8 参考数据与延伸阅读