在/etc/services
中,服务名称可以有多个(传输协议、端口号)对。例如,Linux编程接口说:
/etc/services文件由包含三列的行组成,如以下示例所示:#服务名称端口/协议http 80/tcp #超文本传输协议http 80/udp ssh 22/tcp # Secure Shell ssh 22/udp telnet 23/tcp # Telnet telnet 23/udp smtp 25/tcp#简单邮件传输协议smtp 25/udp
哪个领域(S)可以成为一个关键的表?
该示例显示一个服务名称可以对应多个传输协议。
给定服务名称和传输协议,它们能对应多个端口号吗?换句话说,服务可以在同一传输协议中的两个端口侦听吗?
谢谢。
发布于 2019-02-13 21:47:58
该文件用这个services(5)
命令页描述,并在相关功能手册中使用。后者显示,预期下列对为键:
请注意,服务可以有别名(您的示例没有说明这一点)。例如,www
通常是http
的别名:
http 80/tcp www # WorldWideWeb HTTP
关于服务可以做什么,/etc/services
只提供一个映射,它不限制任何事情。因此,在TCP上请求http
的人将被告知相应的分配端口为80,但是HTTP mon可以侦听它想要的任何端口(并且是允许的);同样,在TCP上请求端口80的人将被告知相应的名称是http
,但这并不意味着监听端口80的服务器必须是D13
服务器。此外,从内核3.9开始,单个进程可以在多个端口上侦听,而在BSD和Linux上,多个进程可以侦听同一个端口。
https://unix.stackexchange.com/questions/500497
复制相似问题