的用例和用法是什么/etc/protocols
?
我可以看到它列出了可用协议的数量。但这有什么意义呢?
例如,我的 Linux 计算机未运行 OSPF,但我在/etc/protocols
.
这是什么意思?该文件有何意义?我们要编辑该文件吗?
答案1
该文件记录在man 5 protocols
:
该文件是一个纯 ASCII 文件,描述了 TCP/IP 子系统中可用的各种 DARPA 互联网协议。应该查阅它,而不是使用 ARPA 包含文件中的数字,或者更糟糕的是,只是猜测它们。这些数字将出现在任何 IP 标头的协议字段中。
它是一个协议列表,与您的系统实际支持的协议无关。它相当于本地IANA 的协议号列表。可以使用以下方式进行询问的getprotobyname
和getprotobynumber
功能。
它通常用于为使用中看到的协议提供名称,或确定用户指定的协议名称的协议号;参见例如这在 Unbound DNS 解析器中使用。
不应该修改它:
保持此文件不变,因为更改会导致不正确的 IP 包。协议号和名称由 IANA(互联网号码分配机构)指定。
如果您正在通过 IP 实现新协议,而不是通过 TCP/UDP(在 参考资料中列出)上实现新协议,则只需更改它/etc/services
:类似于 SCTP,而不是 HTTP。如果您正在这样做,那么您可能需要/etc/protocols
暂时修改;但在发布之前,您需要向 IANA 请求新的分配(这非常简单),然后您的协议将被添加到 IANA 列表中,并最终进入/etc/protocols
更新。