Linux /etc/services文件的作用

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的/etc/services文件的作用?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值