SERVICES - Linux手册页
Linux程序员手册 第5部分
更新日期: 2020-04-11
名称
服务-Internet网络服务列表
说明
services是一个简单的ASCII文件,提供Internet服务的人性化文本名称与其基础分配的端口号和协议类型之间的映射。每个网络程序都应调查此文件以获取其服务的端口号(和协议)。 C库例程getservent(3),getservbyname(3),getservbyport(3),setservent(3)和endservent(3)支持从程序查询此文件。
端口号是由IANA(互联网号码分配机构)分配的,其当前策略是在分配端口号时同时分配TCP和UDP协议。因此,即使对于仅TCP服务,大多数条目也会有两个条目。
低于1024的端口号(所谓的"低编号"端口)只能由root绑定(请参阅bind(2),tcp(7)和udp(7))。这样,连接到编号较低的端口的客户端可以信任该端口上运行的服务是标准实现,而不是由计算机用户运行的恶意服务。由IANA指定的知名端口号通常位于此仅根目录空间中。
服务文件中服务条目的存在并不一定意味着该服务当前正在计算机上运行。有关提供的Internet服务的配置,请参见inetd.conf(5)。请注意,并非所有联网服务都由inetd(8)启动,因此不会出现在inetd.conf(5)中。特别是,新闻(NNTP)和邮件(SMTP)服务器通常从系统启动脚本中进行初始化。
服务文件的位置由中的_PATH_SERVICES定义。通常将其设置为/ etc / services。
每行描述一种服务,其格式为:
- 服务名称端口/协议[别名...]
- where:
- service-name
- 是服务已知并在其下查找的友好名称。区分大小写。通常,客户端程序以服务名称命名。
- port
- 是用于此服务的端口号(十进制)。
- protocol
- 是要使用的协议类型。该字段应与protocols(5)文件中的条目匹配。典型值包括tcp和udp。
- aliases
- 是此服务其他名称的可选空格或制表符分隔的列表。同样,名称区分大小写。
空格或制表符均可用于分隔字段。
注释以井号(#)开头,一直持续到该行的末尾。空行被跳过。
服务名称应从文件的第一列开始,因为前导空格不会被删除。服务名称可以是任何可打印的字符(空格和制表符除外)。但是,应使用保守的字符选择以最大程度地减少兼容性问题。例如,a-z,0-9和连字符(-)似乎是明智的选择。
与该格式不匹配的行不应出现在文件中。 (当前,它们被getservent(3),getservbyname(3)和getservbyport(3)默默地跳过。但是,不应依赖此行为。)
可以使用网络范围内的命名服务(例如黄页/ NIS或BIND / Hesiod)在网络上分发此文件。
示例服务文件可能如下所示:
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
文件
- /etc/services
- 互联网网络服务列表
- <netdb.h>
- _PATH_SERVICES的定义
另外参见
listen(2),endersvent(3),getservbyname(3),getservbyport(3),getservent(3),setservent(3),inetd.conf(5),协议(5),inetd(8)
分配的编号RFC,最近更新为RFC 1700(AKA STD0002)。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。