歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux的/etc/services文件的作用?

Linux的/etc/services文件的作用?

日期:2017/2/27 16:00:08   编辑:Linux教程

1)作用
/etc/services文件是記錄網絡服務名和它們對應使用的端口號及協議。

2)格式
文件中的每一行對應一種服務,它由4個字段組成,中間用TAB或空格分隔,分別表示“服務名稱”、“使用端口”、“協議名稱”以及“別名”。
服務名 "tab" 端口號/協議名 “tab” 別名

kermit 1649/udp
l2tp 1701/tcp l2f
l2tp 1701/udp l2f
h323gatedisc 1718/tcp

3)應用
很多的系統程序要使用這個文件。

如果每一個服務都能夠嚴格遵循該機制,在此文件裡標注自己所使用的端口信息,則主機上各服務間對端口的使用,將會非常清晰明了,易於管理;

在該文件中定義的服務名,可以作為配置文件中的參數使用。例如:在配置路由策略時,使用"www"代替"80",即為調用了此文件中的條目“www 80”;

且當有特殊情況,需要調整端口設置,只需要在/etc/services中修改www的定義,即可影響到服務。
例如:在文件中增加條目“privPort 55555”,在某個私有服務中多個配置文件裡廣泛應用,進行配置。當有特殊需要,要將這些端口配置改為66666,則只需修改/etc/services文件中對應行即可。
在應用程序中可以通過服務名和協議獲取到對應的端口號,通過在該文件注冊可以使應用程序不再關心端口號。

4)端口分配
Linux系統的端口號的范圍為0–65535,不同范圍有不同的意義。
0 不使用
1--1023 系統保留,只能由root用戶使用
1024---4999 由客戶端程序自由分配
5000---65535 由服務器端程序自由分配

4、如何使應用程序不再關心服務所使用的端口號?
1)確定服務程序名稱,協議,端口號
2)在/etc/services中配置1)中信息
3)應用程序可以不直接使用端口號,通過函數getservbyname("server","tcp")獲取端口號。
4)如果服務想更改端口號只要更改/etc/services中的端口號就可以了,應用程序不需要做任何更改。
注:同時可以通過函數getservbyport(htons(50),“tcp”)獲取對應端口和規約上的服務名。
使用這兩個系統函數需要包含頭文件:#include <netdb.h>
Copyright © Linux教程網 All Rights Reserved