Linux

/etc/protocols 在 Linux 中的意義是什麼?

  • December 8, 2021

的案例和用法是/etc/protocols什麼?

我可以看到它列出了可用的協議數量。但意義何在?

例如,我的 Linux 機器沒有執行 OSPF,但我在/etc/protocols.

這是什麼意思?那個文件有什麼意義?我們編輯那個文件嗎?

該文件記錄在man 5 protocols

該文件是一個純 ASCII 文件,描述了 TCP/IP 子系統提供的各種 DARPA 網際網路協議。應該查閱而不是使用 ARPA 包含文件中的數字,或者更糟糕的是,只是猜測它們。這些數字將出現在任何 IP 標頭的協議欄位中。

它是協議列表,與系統實際支持的協議無關。它是IANA 協議編號列表的本地等價物。可以使用函式對其進行查詢。getprotobyname``getprotobynumber

它通常用於為使用中看到的協議提供名稱,或確定使用者指定協議名稱的協議編號;例如,請參見Unbound DNS resolver 中的這種用法

它不應該被修改:

保持此文件不變,因為更改會導致不正確的 IP 包。協議編號和名稱由 IANA(網際網路編號分配機構)指定。

如果您在 IP 上實現新協議,您只需要更改它 - 而不是 TCP/UDP 上的新協議(在 中列出/etc/services):類似於 SCTP,而不是 HTTP。如果您這樣做,那麼您可能需要/etc/protocols臨時修改;但在發布之前,您需要向 IANA 請求新的分配(這很簡單),然後您的協議將被添加到 IANA 的列表中,並最終進入/etc/protocols更新。

引用自:https://unix.stackexchange.com/questions/680494