table of contents
SERVICES(5) | File Formats Manual | SERVICES(5) |
NAME(名稱)¶
services - Internet 網路服務列表
DESCRIPTION(描述)¶
services 是一個普通的 ASCII 碼檔案, 它在 internet 服務的友好原文名以及這些服務預先分配的 埠和協議型別之間提供了對映. 每個聯網程式必須查詢該檔案以獲取 其服務的埠號(和協議). C 庫例程 getservent(3), getservbyname(3), getservbyport(3), setservent(3), 和 endservent(3) 支援由程式查詢該檔案.
埠號由 IANA(Internet Assigned Numbers Authority) 分配, 他們當前的工作是分配埠號時, 指定 TCP 和 UDP 協議. 這樣, 大多數記錄會包括兩條子記錄, 即使只是 TCP 的服務也是如此
埠號在 1024 之下的(也稱作'低編碼'埠)只能由 root (參見 bind(2),tcp(7),和udp(7).) 繫結. 這樣連線到低編碼埠的客戶可信任執行在該埠上的服務是標準的實現, 而不是由某臺機器的使用者執行的無聊的服務.由 IANA 確定的眾所周知的埠號通常只在 root 的控制範圍之內
在 services 檔案中出現的一條服務記錄並不表示該服務當前在機器上執行.參見 inetd.conf(5) 以獲知提供的Internet服務的配置.注意不是所有聯網服務都由 inetd(8) 啟動,因而也不會出現在 inetd.conf(5) 之中. 特別地,news (NNTP)和mail (SMTP)服務程式通常由系統引導指令碼初始化.
services 檔案所存放的位置由 /usr/include/netdb.h 中的 _PATH_SERVICES 定義. 它通常設為 /etc/services.
每行描述了一個服務,其格式如下:
- 服務名 埠/協議 [別名 ...] 這裡的
- 服務名
- 是給服務所起的可供查詢的友好的名字.它是區分大小寫的.通常,客戶端程式都以 服務名 命名.
- 埠
- 為該服務所用的埠號(十進位制格式).
- 協議
- 為所使用的協議型別.該欄位應與 protocols(5) 檔案中的一條記錄相匹配.典型的值包括 tcp 和 udp.
- 別名
- 可以空缺,或者是以tab分隔的該服務的其他名字的列表(不過請檢視下面的BUGS章節).同樣, 這些名字也是區分大小寫的.
可以使用空格或者tab分隔這些欄位.
註釋以hash標識(#)開頭,一直到該行末結束.空行可跳過.
服務名 必須是該檔案的第一列,因為其前面的空格不會刪去. 服務名 可以為任何可列印的字元,包括空格和tab,但是,應該使用字元的保守選擇來最低限度地減少 操作中的問題.例如:a-z,0-9,和連字元(-)看上去就是一個合理的選擇.
不匹配該格式的行不應該在該檔案中出現.(當前情況下, getservent(3),getservbyname(3),和getservbyport(3) 可以忽略它們.不過,不應該依靠這種方法.)
為了向後相容,在 埠 號和 協議 名之間的斜槓(/)實際可以為斜槓或者是逗號(,).在現代的安裝中使用逗號是落後的.
該檔案也可以透過使用網路級命名服務如黃頁/NIS(Yellow Pages/NIS)或BIND/Hesiod來在一 個網路中釋出.
一個 services 的樣本檔案看上去如下:
netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp 21/tcp # 22 - unassigned telnet 23/tcp
BUGS¶
最大隻能有35個別名,這是由 getservent(3) 程式碼的寫入方式決定的.
比 BUFSIZ (當前為1024)個字元更長的行, getservent(3),getservbyname(3),andgetservbyport(3) 會忽略掉. 不過,這也會導致錯過下一行.
FILES(相關檔案)¶
- /etc/services
- Internet網路服務列表
- /usr/include/netdb.h
- _PATH_SERVICES 的定義
SEE ALSO(另見)¶
getservent(3), getservbyname(3), getservbyport(3), setservent(3), endservent(3), protocols(5), listen(2), inetd.conf(5), inetd(8).
分配號碼RFC,最新的RFC 1700,(AKA STD0002)
黃頁服務的指南
BIND/Hesiod服務的指南
[中文版維護人]¶
riser <boomer@ccidnet.com>
[中文版最新更新]¶
2000/11/01
《中國linux論壇man手冊頁翻譯計劃》:¶
跋¶
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
1996年1月11日 | Linux 程式設計師手冊 |