ip link
輸出中「狀態未知」是什麼意思?例如
10: enp56s0f3u4u2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/ether X:X:X:X:X:X brd ff:ff:ff:ff:ff:ff
據我所知,網路介面可以是 UP 或 DOWN 的。
答案1
每個介面至少有兩種不同的狀態:
管理狀態(介面是否已啟用)。這只是向上/向下,由您或網路軟體控制;使用
ip link set eth0 up
或啟用介面後,您可以在範例開頭附近ifconfig eth0 up
看到它指示為標誌。<UP>
運行狀態(介面是否作品)。僅僅因為它已啟用,並不意味著它已經可以傳輸資料 - 乙太網路需要連接電纜; Wi-Fi需要關聯AP;基本上它需要一個載體。對於實體介面來說,這顯然是一個外部因素,無法透過命令控制;它僅顯示在輸出中,就像
<LOWER_UP>
存在載體一樣。這些比現實中的向上/向下更複雜,例如使用 WPA-Enterprise 的 Wi-Fi 網絡做關聯後有一個運營商,但在執行 WPA 握手之前還無法發送數據,因此存在第三級「操作」狀態:「休眠」。
(對於 VLAN 等虛擬接口,還有另一個“lowerlayerdown”。)
因此,「狀態未知」不是管理「向上/向下」開關,它是來自系統本身的操作狀態,顯示了整個值的選擇。此狀態需要由驅動程式提供 - 並且(至少根據 Linux 文件)並非所有驅動程式都具有設定實際操作狀態所需的位元。因此,如果您的乙太網路驅動程式沒有這樣做,您將看到預設值 IF_OPER_UNKNOWN (0)。
答案2
的輸出ip
可能會產生誤導。
當介面啟動時,您看到的部分從 DOWN 變為 UNKNOWN,而當建立實際連接時,則從 UP 變為 UP。
那個部分裡面尖括號告訴您介面本身何時開啟。