## 6.1 無法聯機原因分析
老是看到有朋友在網絡上哀嚎說:『我的網絡不通啊!』還有比較奇怪的是『啊!怎么網絡時通時不通』之類的問題, 這類的問題其實主要可以歸類為硬件問題與軟件設定問題。硬件的問題比較麻煩,因為需要透過一些專門的裝置來分析硬件; 至于軟件方面,絕大部分都是設定錯誤或者是觀念錯誤而已,比較好處理啦 (第四章談到的就是軟件問題)! OK!我們先來看看網絡在哪里可能會出問題吧!
* * *
### 6.1.1 硬件問題:網絡線材、網絡設備、網絡布線等
在[第二章的網絡基礎](http://linux.vbird.org/linux_server/0110network_basic.php)當中我們曾提到很多的網絡基礎概念, 以及一些簡單的硬件維護問題。以一個簡單的星形聯機來說,我們可以假設他的架構如同下圖所示:

圖 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 參考數據與延伸閱讀