## 1.1 前言: Linux 有啥功能
很多剛接觸 Linux 的朋友常常會問的一句話就是:『我學 Linux 就是為了架設服務器,既然只是為了架設服務器,為什么我還要學習 Linux 的其他功能?例如:例行性工作排程、Bash Shell ,又干嘛去認識所有的登錄檔等等,我又用不到!此外,既然有好用的 Web 接口的 Server 設定軟件,可以簡單的將網站架設起來,為什么我還要去學習 vim 手動的編輯一些配置文件?干嘛還需要去理解服務器的工作的原理?』上面這些話對于剛剛學會架設網站的人來說,真是替他們道出了一個新手的心聲啊!不過,對于任何一個曾經有過架設公開網站的朋友來說,上面這些話,真的是會害死人!為什么呢?底下我們就來分析一下。
* * *
### 1.1.1 只想用 Linux 架設服務器需要啥能力?
如果有人問你:『Linux 最強大的功能是什么』?大概大家都會回答『是網絡功能啊!』,接下來,如果對方再問:『所以學 Linux 就是為了架設服務器啰?』呵呵!這個問題可就見仁見智啰!說穿了, Linux 其實就是一套非常穩定的操作系統,任何工作只要能在 Linux 這個操作系統上面跑,那他就是 Linux 可以達成的功能之一啰!所以 Linux 的作用實在不止于網絡服務器的架設吶。
舉例來說,在 Linux 上面開發跨平臺的數值模式 (model) 諸如大型的大氣仿真模式,由于 Linux 的穩定與完善的資源分配功能,使得在 Linux 上面開發出來的程序運作的又快又穩定。此外,諸如 KDE, GNOME 等漂亮的圖形接口,搭配諸如 Open Office 等辦公室軟件,Linux 立刻搖身一變而成為優秀的辦公室桌面計算機了 (Desktop)。此外,Google 制作出專門給手機系統用的 Android 也是以 Linux 為底開發的。所以說,千萬不要小看了 Linux 的多樣功能吶。
不過,不管怎么說, Linux 的強大網絡功能確實是造成 Linux 能夠在服務器領域內占有一席之地的重要項目。 既然如此,我們就好好的來探索一下 Linux 的網絡世界吧!首先, Linux 到底可以達成哪些網絡功能呢?這可就多著咯!不論是 [WWW](http://linux.vbird.org/linux_server/0360apache.php), [Mail](http://linux.vbird.org/linux_server/0380mail.php), [FTP](http://linux.vbird.org/linux_server/0410vsftpd.php), [DNS](http://linux.vbird.org/linux_server/0350dns.php), 或者是 [DHCP](http://linux.vbird.org/linux_server/0340dhcp.php), [NAT](http://linux.vbird.org/linux_server/0250simple_firewall.php#nat) 與 [Router](http://linux.vbird.org/linux_server/0230router.php) 等等,Linux 系統都可以達到,而且,只要一部 Linux 就能夠達到上面所有的功能了!當然,那是在不考慮網絡安全與效能的情況下,你可以使用一部 Linux 主機來達成所有的網絡功能。
但是你得要知道,『架站容易維護難』啊!更深一層來說,『維護還好、除錯更難啊!』架設一個網站有什么難的?即使你完全沒有摸過 Linux ,只要參考鳥哥的書籍或者是網站,而且一步一步照著做,包準你一個下午就可以架設完成五個以上的網絡服務了!所以說, 架設服務器有什么難的?但要曉得的是,這樣的一個網站,多則三天,少則數小時,立刻就會被入侵了! 此外,被入侵之后,或許可以藉由一些工具來幫你將 root 的密碼救回來,可惜的是, 這樣的一個網站還是有被做為中繼站的危險存在的!
另外,如果你使用工具 (例如 Webmin) 卻怎么也架設不起來某個網站時,要怎么解決?如果你不懂該 Server 的運作原理與 Linux 系統的除錯訊息,那么難道只能無語問蒼天?不要懷疑這種情況的可能性, 參考一下各大論壇上面的留言就可以很清楚的知道這種情況的存在有越來越明顯的趨勢呢!
所以說,架設服務器之前還是有一些基本的技能需要學會的!而且這些技能是『一旦學會之后,真正是終身受用啊!』只要花一個學期 (三~六個月) 就能學會一輩子可以使用的技能,這個學習的投資報酬率真是太高了! 所以,一開始的學習不要覺得苦,那真的是值得的喔!^_^
**Tips:** 舉例來說,鳥哥在 2003 ~ 2005 年跑去當兵了,當兵期間很少碰 Linux 啦!等到退伍后接到的第一個班要帶 Linux 國際證照時,幾乎所有的指令都在看不起鳥哥 @_@~不過,懂得學習的方法的鳥哥,透過 man 啦,透過 google 啦, 透過以前學習的一些概念啦,遇到問題幾乎都可以在一分鐘內解決,同學也不會有突然不知所云的困擾!你說, 這樣是不是很好呢?

Linux 不是很好學,根據鳥哥過去教學的經驗,很多同學在學 Linux 時真是非常的痛苦,不過學完之后, 以前在 Windows 上面遇到的困難卻也自然而然的迎刃而解!因為 Linux 訓練我們時,是要我們去解決一個發現的問題, 這過程需要很多基礎知識的培養,所以學完他之后,你會覺得很多事情都變的很簡單而單純。但如果使用 Windows 的懶人方案,很多問題就不可能了解為啥會發生與為啥可以這樣處理了!我們會在下一節分析一下架設服務器的流程, 也會提供相對應的你應該要會的 Linux 技能喔!
* * *
### 1.1.2 架設服務器難不難呢?
不管是 Windows 還是 Linux ,要架設好一部堪稱完美的服務器,『基本功課』還是得做的,這包括了:
1. 基礎網絡的基本概念,以方便進行聯網與設定及除錯;
2. 熟悉操作系統的簡易操作:包括登錄分析、賬號管理、文書編輯器的使用等等的技巧;
3. 信息安全方面:包括防火墻與軟件更新方面的相關知識等等;
4. 該服務器協議所需軟件的基本安裝、設定、除錯等,才有辦法實作。
而且,每一個項目里面所需要學習的技巧可多著呢!『什么?要學的東西那么多啊!』是啊! 所以,不要以為信息管理人員整天閑閑沒事干的吶,大家可是天天在出賣知識的,同時, 還得天天應付隨時可能會發生的各種漏洞與網絡攻擊手法呢!真不是人干的工作~~
這么說的話,架設服務器真的是挺難的喔!事實上,架設服務器其實蠻簡單的哩!咦!~怎么又說架設服務器簡單了? 不是說架設服務器難嗎?呵呵!其實『架設服務器很難』是由于朋友們學習的角度有點偏差的原因啦! 還記得當初進入理工學院的時候,天天在念的東西是基礎物理、基礎化學、工程數學與流體力學等基礎科目, 這些科目花了我們一至兩學期的時間,而且內容還很難吶~都是一大堆的理論背不完。 怪了?我們進理工學院是為了求取更高深的知識,那么這些基礎知識學了有什么用吶? 呵呵!更高深的知識都是建構在這些基本科目的理論上面的,所以 萬一你基礎的科目沒有讀好,那么專業科目里面提到的基本理論怎么可能聽的懂?
這樣說應該就不難了解了吧!沒錯!認識操作系統與該操作系統的基本操作,還有那個重要的網絡基礎, 就是我們在架設服務器前的『基礎科目』啦!所以說,在進入 Linux 的服務器世界之前,真的不能夠略過網絡基礎的相關知識,同時, Linux 系統的基本技能也必需要能夠理解吶!
好了,或許你還是對于 Linux 系統里面『什么是很重要的知識』不甚了解, 果真如此的話,那么我們就舉個簡單的例子來說明一下啰!底下列出一般的架設服務器流程, 我們由架設服務器的流程當中,來看一看什么是重要的 Linux 相關技能吧! ^_^。
**Tips:** 在這一章當中,鳥哥不再就 linux 基礎指令進行解析,因為在 『[鳥哥的 Linux 私房菜 -- 基礎學習篇](http://linux.vbird.org/linux_basic/)』里面已經詳細的介紹過了! 如果持續的介紹指令,簡直是浪費篇幅~所以底下僅介紹一個 Linux 基礎學習重要性的分析喔!

* * *
- 鳥哥的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 參考數據與延伸閱讀