Iproute

如何理解 ifconfig 或 ip addr show(的輸出)

  • April 28, 2022

ifconfig命令會向您轉儲大量資訊,特別是如果您有很多介面,並且您不知道它們來自哪裡。我已通讀“Ifconfig 命令 - 詳細說明”教程頁面,該頁面對ifconfig. 但它不包含我想要的所有資訊(也可能會過時 16 年)。

使用ip addr show eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 08:00:27:e2:80:18 brd ff:ff:ff:ff:ff:ff
  inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0 valid_lft forever preferred_lft forever

我發現很難解析一些輸出。

  • eth0

    • <…>描述……介面功能?不確定在哪裡可以找到全套選項,不確定它們的名稱,不知道Google搜尋什麼。還有什麼其他選擇?
    • state UP– 我知道還有state DOWNstate RUNNING。這些都是軟體結構,對吧?當我跑步時,身體沒有任何變化ip link set dev eth0 down,對吧?那麼當這種狀態發生變化時,核心的行為有何不同呢?這種狀態會改變嗎?
    • group default– 介面組。他們解決的獨特問題是什麼?
  • 在下面inet

    • 是什麼scope global意思?– 私有 IP 如何具有全域範圍?我錯過了什麼?

該命令輸出的語法是什麼?

從主機的角度來看,具有全域範圍的地址是全域的,即它們不限於主機或本地連結。如果地址落在 RFC1819(專用 Internet 的地址分配)中指定的範圍內,主機並不關心,也沒有什麼不同。“私有”地址僅按照慣例是私有的。主機不關心哪個路由器進行 NAT,以及從主機到從私有地址到公共地址的地址轉換完成了多少跳。此外,您也可以使用其他地址實現 NAT。

這是我已經可以解析的部分,供其他有相同問題的人參考。

  • eth0是介面名稱。它可以是任何字元串:

    • mtu 1500最大傳輸單元 = 1500 字節,這是通過此介面發送的幀的最大大小。這個數字通常受到乙太網協議上限 1500 的限制。如果您發送較大的數據包並到達乙太網介面,則該幀將被分段,並且其有效負載以 2 個或更多數據包的形式傳輸。對此並沒有任何好處,因此最好遵循標準。
    • qdiscpfifo_fast排隊規則=先進先出的三個管道,這決定了介面在過載時如何選擇下一個要傳輸的數據包。
    • group default介面組通過組合客戶端上聚合介面的功能,為客戶端提供單個介面。
    • qlen 1000傳輸隊列長度 = 1000 個數據包。第 1000 個數據包將排隊,第 1001 個數據包將被丟棄。
  • link/ether表示鏈路層協議是ethernet

    • brd是廣播的意思。這是設備destination在發送廣播時設置的地址。一個介面可以看到它所在的線路上的所有流量,但它足夠禮貌,只讀取發送給它的數據。定址介面的方式是使用它的特定地址或廣播地址。
  • inet表示網路層協議為internet( ipv4)

    • lft代表一生。如果您通過 獲得此地址dhcp,那麼您的 IP 地址租約將有一個有效的生命週期。只是為了讓切換更容易一點,(可能)更短的首選生命週期。

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