## 6.2 處理流程
既然知道上面已經談到的幾個小重點了,接下來當然是一個一個的給他處理掉啊! 底下我們就得要一步一腳印的開始檢查的流程啊!
* * *
### 6.2.1 步驟一:網絡卡工作確認
其實,網絡一出問題的時候,你應該從自己可以檢查的地方檢查起,因此, 最重要的地方就是檢查你的網絡卡是否有工作的問題啦!檢查網絡卡是否正常工作的方法如下:
1. 確定網絡卡已經驅動成功:
如果網絡卡沒有驅動成功,其他的,免談!所以你當然需要驅動你的網絡卡才行!確認網絡卡是否被驅動,可以利用 lspci 以及 dmesg 這兩個咚咚來查詢相關的設備與模塊的對應。詳情請參考:[第四章](http://linux.vbird.org/linux_server/0130internet_connect.php#note_nic)的相關說明。 再次強調,捉不到網卡驅動程序,除了自己編譯之外,再購買一張便宜的網卡來應付著用,是不錯的想法!
2. 確定可以手動直接建立 IP 參數:
在順利的加載網絡卡的模塊,并且『取得網絡卡的代號』之后,我們可以利用 [ifconfig](http://linux.vbird.org/linux_server/0140networkcommand.php#ifconfig) 或 [ip](http://linux.vbird.org/linux_server/0140networkcommand.php#ip_cmd) 來直接給予該網絡卡一個網絡地址試看看! 看能否給予 IP 設定呢?例如:
```
[root@www ~]# ifconfig eth0 192.168.1.100
```
來直接建立該網絡卡的 IP ,然后直接輸入 ifconfig 看能否查閱到剛剛設定好的參數即可。 如果可以建立起該 IP ,就以 ping 來檢測看看:
```
[root@www ~]# ping 192.168.1.100
```
如果有響應的話,那表示這個網卡的設定應該是沒有問題了!再來則是開始檢測一下局域網絡內的各個連接硬件啦!
* * *
### 6.2.2 步驟二:局域網絡內各項連接設備檢測
在確認完了最重要的網絡卡設定之后,并且確定網絡卡是正常的之后,再接著下來則是局域網絡內的網絡連接情況了!假設你是按照 [圖 6.1-1](#fig6.1-1) 所設定的星形聯機局域網絡架構,那么你必須要知道整個『網域』的概念!
1. 關于網域的概念:
能否成功的架設出區網,與網域的概念有關!所以,你要知道所謂的 192.168.1.0/24 這種網域的表達方式所代表的意義, 且子網掩碼 (Netmask) 的意義也得了解。如果忘記了,請回去[第二章網絡基礎](http://linux.vbird.org/linux_server/0110network_basic.php)再翻一翻。
2. 關于 Gateway 與 DNS 的設定:
Gateway 與 DNS 最容易被搞混~這兩個并非是填寫你的 Linux 主機的 IP 喔!應該是要填寫 IP 分享器 (或 NAT 主機) 的 IP 在 Gateway 中,填寫 168.95.1.1 在 DNS 的 IP 設定當中!不能夠搞錯啊!
3. 關于 Windows 端的工作組與計算機名稱:
假如你還需要資源共享,那么你就必須在 windows 系統中開放檔案分享, 并且建議所有的計算機將『工作組』設定相同,但『計算機名稱』則不能相同!不過,這個只與網芳及 SAMBA 服務器有關。
假設你的區網內所有的主機 IP 都設定正確了,那么接下來你就可以使用 ping 來測試兩部區網內主機的聯機, 這個聯機的動作可以讓你測試兩部主機間的各項設備,包括網絡線、Hub/Switch 等等的咚咚! 如果無法測試成功,那就請了解一下:
1. IP 參數是否設定正確:
再次強調,先決定 IP/netmask 是對的!鳥哥在上課的時候常常發現同學無法連到我的主機上, 一經使用 ifconfig 才發現他們與我的 IP 不在同一個網段內,就是會有這樣的情況發生啊!唉~
2. 聯機的線材問題:
包括我們前面提到的網絡線本身折損、過度纏繞造成的訊號衰減問題等等, 另外,有些比較舊的 Hub/Switch 或者是 ADSL 調制解調器,由于沒有 [Auto MDI/MDIX](http://linux.vbird.org/linux_server/0110network_basic.php#auto_mdi) 的功能,所以無法自動的分辨跳線與否, 那么當你用錯網絡線的時候,也就無法接通啦!另外,早期我們常常會說, 最簡單判斷每部主機是否順利連接到 Hub/Switch 可以透過連接到 Switch 上的燈號來判斷, 不過,由于有時候網絡線本身訊號不良,雖然燈號還是會亮,不過就是無法連接到 Switch 的情況 (鳥哥自己就曾發生過啊),此時,跟朋友借一條 OK 的網絡線來測試看看吧!
3. 網卡或 Hub/Switch 本身出問題:
有一次鳥哥無法在外部連接到鳥哥的主機,懷疑是掛點了,結果沖到主機所在辦公室察看,咦! 主機是好好的嘛!那怎么會無法聯機呢?原因是...室內環境通風不良,加上 Switch 所在處溫度過高, 加上那部舊的 switch 『剛好』風扇壞了,哈!就這樣『 switch 當機 』 在重新啟動 switch (拔掉再插上電源線) 后就正常了。所以啰,很多情況都是會發生的, 而局域網絡內的環境也很容易影響到聯機質量啊!
確定自己主機的 IP 與網卡沒有問題,加上內部區網透過 ping 也測試過沒有問題,接下來就是要『取得可以對外聯機的 IP 參數』啦!這個重要!
* * *
### 6.2.3 步驟三:取得正確的 IP 參數
什么叫『取得正確的 IP 參數』啊?還記得我們談過如果要順利的連接上 Internet 的話, 必須要可以跟 public IP 進行溝通才行,而與 public IP 取得溝通的方法,在臺灣比較常見的有 ADSL, Cable modem, 學術網絡, 電話撥接等等。在 CentOS 當中,我們可以透過修改 /etc/sysconfig/network-scripts/ifcfg-eth0,或者是利用 rp-pppoe 來進行撥接, 無論如何,你就是得要連接到某個 ISP 去就是了~
在你確認所有的區網沒有問題之后,參考一下[第四章](http://linux.vbird.org/linux_server/0130internet_connect.php)的介紹,連上之后,立即以 ifconfig 看看有沒有捉到正確的 IP 啊? 在臺灣如果使用 ADSL 聯機的話,你應該可以順利的取得一組正確的 Public IP 參數的!
**Tips:** 曾有國外的華人朋友來信說到,他們使用 ADSL 撥接之后竟然取得一組 Private IP , 害他們沒有辦法架站!他們想請問這樣的情況是否合理。如果你熟悉路由相關的概念之后, 當然會知道:『這當然合理!』,因為你取得的 IP 只是為了要連接到 ISP 去而已, 而 ISP 與你的主機當然可以透過 Private IP 來聯機啊!如果是這樣的話,那么你就肯定無法架站了! ^_^

另外,最常發現無法順利取得 IP 的錯誤就是『BOOTPROTO』這個設定值設定錯了!因為 static 與 dhcp 協議所產生的 IP 要求是不一樣的啊!還記得吧!要特別留在 ifcfg-eth0 里面的設定參數喔!另外,如果你是使用 ADSL 撥接的, 但是老是無法撥接成功,那么建議你可以這樣試看看:
* 將 ADSL 的調制解調器整個關機,將 Switch/Hub 也關掉電源;
* 靜待十分鐘,等這些設備比較『涼快』一點后,再重新插上電源;
* 將 Linux 連接到 ADSL 的那塊網卡 (假設為 eth0) 在 ifcfg-eth0 內,『ONBOOT』設定為 no, 重新啟動網絡 (/etc/init.d/network restart),然后再執行 adsl-start
* 如果還是無法撥接成功,并且你已經確認內部網域沒有問題,那請中華電信的工程人員來幫忙你處理吧!
因為很多時候都是由于網絡媒體過熱,也有可能主機內部的一些網絡參數有點問題, 所以,干脆就不要啟動網卡,讓 adsl-start 自動去啟動網卡即可! 如果順利取得 IP 后,卻還是無法順利連到 Internet 上面時,你覺得還有哪些地方需要處理的呢?
**Tips:** 為了避免 switch 以及 ADSL 調制解調器熱當,鳥哥以及一些重度網絡用戶的朋友,就買了桌上型小電扇,配合定時器 (timer) 來定時的向這兩個設備吹風~為啥需要定時器?因為擔心電風扇一直開著會燒掉...

* * *
### 6.2.4 步驟四:確認路由表的規則
如果你已經順利取得正確的 IP 參數的話,那么接下來就是測試一下是否可以連上 Internet 啊! 鳥哥建議你可以嘗試使用 ping 來連連看 Hinet 的 DNS 主機,也就是 168.95.1.1 那部機器啦!
```
[root@www ~]# ping -c 3 168.95.1.1
```
如果有響應,那就表示你的網絡『基本上已經沒有問題,可以連到 Internet 了!』, 那如果沒有響應呢?明明取得了正確的 IP 卻無法連接到外部的主機,肯定有鬼!呵呵!沒錯! 還記得我們在網域內資料的傳輸可以直接透過 [MAC](http://linux.vbird.org/linux_server/0110network_basic.php#fig_mac) 來傳送, 但如果不在區網內的數據,則需要透過路由,尤其是那個預設路由 (default route) 來幫忙轉遞封包吧! 所以說,如果你的 public IP 無法連接到外部 (例如 168.95.1.1) ,可能的問題就出在路由與防火墻上面了。假設你沒有啟動防火墻,那問題就縮小到剩下路由啰~ 那路由的問題如何檢查?就用 [route -n](http://linux.vbird.org/linux_server/0140networkcommand.php#route) 來檢查啊!
例題:假設有個使用 ADSL 撥接的 Linux 主機,他的路由表如下,你覺得出了什么問題?
```
Destination Gateway Genmask Flags Metric Ref Use Iface
59.104.200.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.2 0.0.0.0 UG 0 0 0 eth0
```
答:仔細看到上面的路由輸出,第一條是 ppp0 產生的 public IP 接口,第二條是 eth0 的內部網域接口,再看到最后一條的 0.0.0.0/0.0.0.0 這個預設路由,竟然是內部網域的 eth0 為 gateway ?不合理,最大的問題應該是出在 ifcfg-eth0 里面不小心設定了『GATEWAY=192.168.1.2』 所致,解決的方法為:
1. 取消 ifcfg-eth0 內 GATEWAY=192.168.1.2 那一行,(該行亦可能出現在 /etc/sysconfig/network 內)
2. 重新啟動網絡 /etc/init.d/network restart
3. 重新進行撥接: adsl-stop; adsl-start
另外一個可能發生的情況,就是:『忘記設定預設路由』啦!例如使用 ifconfig 手動重新設定過網絡卡的 IP 之后,其實路由規則是會被更新的,所以預設路由可能就會不見了!那個時候你就得要利用 route add 來增加預設路由啰!
* * *
### 6.2.5 步驟五:主機名與 IP 查詢的 DNS 錯誤
如果你發現可以 ping 到 168.95.1.1 這個 Internet 上面的主機,卻無法使用瀏覽器在網址列瀏覽 http://www.google.com 的話,那肯定 99% 以上問題是來自于 DNS 解析的困擾!解決的方法就是直接到 /etc/resolv.conf 去看看設定值對不對啊!一般常見的內容是這樣的:
```
[root@www ~]# vim /etc/resolv.conf
nameserver 168.95.1.1
nameserver 139.175.10.20
```
最常見的錯誤是『那個 nameserver 的拼字寫錯了!』真是最常見的問題~另外,如果 client 端是 Windows 系統呢?常常初學者會搞錯的地方就是在 windows 的設定了!要注意:Windows 端的 DNS 設定與主機端 /etc/resolv.conf 的內容相同即可!很多初學者都以為 TCP/IP 內的 DNS 主機是填上自己的 Linux 主機,這是不對的 (除非你自己的 Linux 上面有 DNS 服務) !你只要填上你的 ISP 給你的 DNS 主機 IP 位置就可以了
另外,每一部主機都會有主機名 (hostname) ,預設的主機名會是 localhost ,這個主機名會有一個 127.0.0.1 的 IP 對應在 /etc/hosts 當中。如果你曾經修改過你的主機名,該主機名卻無法有一個正確 IP 的對應, 那么你的主機在開機時,[可能會有好幾十分鐘的延遲](http://linux.vbird.org/linux_server/0130internet_connect.php#problem_hosts)。 所以啰,那個 /etc/hosts 與你的主機名對應,對于內部私有網域來說,是相當重要的設定項目呢!
* * *
### 6.2.6 步驟六:Linux 的 NAT 服務器或 IP 分享器出問題
NAT 服務器最簡單的功能就是 IP 分享器啦!NAT 主機一定是部路由器,所以你必須要在 Linux 上面觀察好正確的路由信息。否則肯定有問題。另外, NAT 主機上面的防火墻設定是否合理? IP 分享器上面是否有設定抵擋的機制等等,都會影響到對外聯機是否能夠成功的問題點。 關于 NAT 與防火墻我們會在后續的章節繼續介紹的啦!
* * *
### 6.2.7 步驟七:Internet 的問題
Internet 也會出問題喔!當然啦~沒有任何東西是不會出問題的!舉例來說,好幾年前臺灣西岸因為施工的關系, 導致南北網絡骨干纜線被挖斷,結果導致整個 Internet 流量的大塞車!這就是 Internet 的問題~還有,數年前 [Study Area 網站](http://phorum.study-area.org/)放置的地點由于路由器設定出了點差錯, 結果導致連接速度的緩慢。這都不是主機本身出問題,而是 Internet 上面某個節點出了狀況。 想要確認是否問題來自 Internet 的話,就使用 [traceroute](http://linux.vbird.org/linux_server/0140networkcommand.php#traceroute) 吧! 查察看問題是來自那個地方再說!
* * *
### 6.2.8 步驟八:服務器的問題
如果上述的處理都 OK ,卻無法登入某部主機時,我想,最大的問題就是出現在主機的設定啦!這包括有:
* 服務器并沒有開放該項服務:例如主機關閉了 telnet ,那你使用 telnet 去聯機,是無法連接上的啦!
* 主機的權限設定錯誤:例如你將某個目錄設定為 drwx------ ,該目錄擁有者為 root , 你卻將該目錄開放給 WWW 來瀏覽,由于 WWW 無法進入該目錄,所以當然無法正確的給客戶端瀏覽啊! 這是最典型的權限設定錯誤的情況啊!
* 安全機制設定錯誤:例如 SELinux 是用來更細微控管主機存取的一種核心機制,結果你啟動的是系統原先不支持的類型, 那么 SELinux 反而可能會抵擋該服務的提供!而其他例如 /etc/hosts.deny, PAM 模塊等等, 都可能造成使用者無法登入的問題!這就不是網絡問題,而是主機造成聯機無法成功!
* 防火墻問題:防火墻設定錯誤也是一個很常見的問題,你可以使用 [tcpdump](http://linux.vbird.org/linux_server/0140networkcommand.php#tcpdump) 來追蹤封包的流向, 以順利的了解防火墻是否設定錯誤。
基本上,一個網絡環境的檢測工作可不是三言兩語就講的完的~而且常常牽涉到很多經驗的問題~ 請你常常到一些講座的場合去聽聽看大家的經驗,去 google 看看人家的解決方法, 都有助于讓你更輕易的解決網絡問題的喔! ^_^!鳥哥也將上述的動作規劃成一個流程圖,參考看看:

圖 6.2-1、網絡問題解決流程圖
* * *
- 鳥哥的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 參考數據與延伸閱讀