原文:
http://cn.linux.vbird.org/linux_basic/0560daemons_1.php#daemon
从第十七章与前一小节对服务的说明后,你应该要知道的是, 系统所有的功能都是某些程序所提供的,而程序则是透过触发程序而产生的。同样的,系统提供的网络服务当然也是这样的! 只是由于网络牵涉到 TCP/IP 的概念,所以显的比较复杂一些就是了。
玩过因特网 (Internet) 的朋友应该知道 IP 这玩意儿,大家都说 IP 就是代表你的主机在因特网上面的『门牌号码』。 但是你的主机总是可以提供非常多的网络服务而不止一项功能而已,但我们仅有一个 IP 呢!当客户端联机过来我们的主机时, 我们主机是如何分辨不同的服务要求呢?那就是透过埠号 (port number) 啦!埠号简单的想象,他就是你家门牌上面的第几层楼! 这个 IP 与 port 就是因特网联机的最重要机制之一啰。我们拿底下的网址来说明:
有没有发现,两个网址都是指向 ftp.isu.edu.tw 这个义守大学的 FTP 网站,但是浏览器上面显示的结果却是不一样的? 是啊!这是因为我们指向不同的服务嘛!一个是 http 这个 WWW 的服务,一个则是 ftp 这个文件传输服务,当然显示的结果就不同了
图 1.2.1、 port 与 daemon 的对应,客户端连接协议不同,服务导向端口号亦不同
事实上,为了统一整个因特网的端口号对应服务的功能,好让所有的主机都能够使用相同的机制来提供服务与要求服务, 所以就有了『通讯协议』这玩意儿。也就是说,有些约定俗成的服务都放置在同一个埠号上面啦!举例来说, 网址列上面的 http 会让浏览器向 WWW 服务器的 80 埠号进行联机的要求!而 WWW 服务器也会将 httpd 这个软件激活在 port 80, 这样两者才能够达成联机的!
嗯!那么想一想,系统上面有没有什么配置可以让服务与埠号对应在一起呢?那就是 /etc/services 啦!
像上面说的是,第一栏为 daemon 的名称、第二栏为该 daemon 所使用的端口号与网络数据封包协议, 封包协议主要为可靠联机的 TCP 封包以及较快速但为非面向连接的 UDP 封包。 举个例子说,那个远程联机机制使用的是 ssh 这个服务,而这个服务的使用的埠号为 22 !就是这样啊!
Tips:
请特别注意!虽然有的时候你可以藉由修改 /etc/services 来更改一个服务的埠号,不过并不建议如此做, 因为很有可能会造成一些协议的错误情况!这里特此说明一番呦!(除非你要架设一个地下网站,否则的话,使用 /etc/services 原先的配置就好啦!)