首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/etc/协议和/etc/服务的来源?

/etc/协议和/etc/服务的来源?
EN

Unix & Linux用户
提问于 2019-03-26 12:58:56
回答 1查看 2.1K关注 0票数 3

这些文件是包含IP协议号、别名和服务映射的数据库。作为一个用户,我通常不以任何直接的方式与这些用户交互,但是需要创建特殊的Linux/GNU发行版,而且我注意到perl测试套件由于无法从/etc/protocols数据库中获取所需的数字而失败,因为它不存在于我的自定义系统中。

例如,我选择的桌面发行版(SMPDebian4.17.17-1 (2018-08-18) x86_64 GNU/Linux):

/etc/protocol声称是从IANA列表中创建的。

代码语言:javascript
复制
# Internet (IP) protocols
#
# Updated from http://www.iana.org/assignments/protocol-numbers and other
# sources.
# New protocols will be added on request if they have been officially
# assigned by IANA and are not historical.
# If you need a huge list of used numbers please install the nmap package.

对/etc/服务也是如此。

代码语言:javascript
复制
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn't support UDP operations.
#
# Updated from http://www.iana.org/assignments/port-numbers and other
# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.

事实上,它们提供的数据看起来是来自指定的来源(但并非全部,这些数据库似乎是部分的)。这种专一性让我完全糊涂了。

有用于访问它们的posix函数调用(3),IEEE 1003.1-2008对它们进行了如下描述:

endprotoent、getprotobyname、getprotobynumber、getprotoent、setprotoent -网络协议数据库函数这些函数将检索有关协议的信息。这些信息被认为存储在可以顺序或随机访问的数据库中。此数据库的实现未指定。

格式相对简单,提供这些文件会很好,但我不想手工填充数据库,也不想在没有正确理解的情况下复制其他工作:这些文件有什么中央来源吗?谁负责填写数据库?

  • 库,它公开getprotoent(3)调用,从而定义格式(例如,glibc)?
  • 是否有现行POSIX规范中指定的标准内容映像?
  • 它所属的发行版维护人员?
  • 或者其他人/其他什么东西?
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-03-26 13:13:35

由于您正在创建您自己的发行版,所以安装的/etc/protocols/etc/services文件的内容由您负责。

控制协议和服务编号分配的权威是IANA,正如您引用的文件头中所记录的那样;相应的列表可在其网站上获得,用于协议号服务名称和端口号。但是,发行版维护人员通常添加使用但尚未提交给IANA的条目,或尚未批准的条目,并删除他们认为过时的条目。对于Debian,这两个文件的来源都在这个netbase存储库中。

POSIX定义了可用于检索协议和服务信息的函数,但它没有指定如何存储或检索数据,如您的引号所示:

此数据库的实现未指定。

数据库中包含的信息也未指定;POSIX实际上只对架构施加了要求。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/508732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档