## 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 啦, 透过以前学习的一些概念啦,遇到问题几乎都可以在一分钟内解决,同学也不会有突然不知所云的困扰!你说, 这样是不是很好呢?
![](https://box.kancloud.cn/2016-05-13_5735736501917.gif)
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 基础学习重要性的分析喔!
![](https://box.kancloud.cn/2016-05-13_5735736501917.gif)
* * *
- 鸟哥的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 参考数据与延伸阅读