你好,游客 登录 注册 搜索
背景:
阅读新闻

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

[日期:2013-04-30] 来源:Linux社区  作者: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>

linux
相关资讯       Linux的/etc/services文件 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款