linux ip命令和ifconfig命令

net-tools 和 iproute2 對比

    如今很多系統管理員依然通過組合使用諸如ifconfig、route、arp和netstat等命令行工具(統稱爲net-tools)來配置網絡功能,解決網絡故障。net-tools起源於BSD的TCP/IP工具箱,後來成爲老版本Linux內核中配置網絡功能的工具。但自2001年起,Linux社區已經對其停止維護。同時,一些Linux發行版比如Arch Linux和CentOS/RHEL 7則已經完全拋棄了net-tools,只支持iproute2。
    作爲網絡配置工具的一份子,iproute2是linux下管理控制TCP/IP網絡和流量控制的新一代工具包,旨在替代老派的工具鏈net-tools,即大家比較熟悉的ifconfig,arp,route,netstat等命令。。net-tools通過procfs(/proc)和ioctl系統調用去訪問和改變內核網絡配置,而iproute2則通過netlink套接字接口與內核通訊。拋開性能而言,net-tools的用法給人的感覺是比較亂,而iproute2的用戶接口相對net-tools來說相對來說,更加直觀。比如,各種網絡資源(如link、IP地址、路由和隧道等)均使用合適的對象抽象去定義,使得用戶可使用一致的語法去管理不同的對象。。更重要的是,到目前爲止,iproute2仍處在持續開發中。

    所以,net-tools和iproute2都需要去學習掌握了。

    如果你仍在使用net-tools,而且尤其需要跟上新版Linux內核中的最新最重要的網絡特性的話,那麼是時候轉到iproute2的陣營了。原因就在於使用iproute2可以做很多net-tools無法做到的事情。

    對於那些想要轉到使用iproute2的用戶,有必要了解下面有關net-tools和iproute2的衆多對比。

iproute2的核心命令是ip:
linux ip命令和ifconfig命令linux ip命令和ifconfig命令
iproute2 ip 命令常用備忘ip地址管理
linux ip命令和ifconfig命令
linux ip命令和ifconfig命令linux ip命令和ifconfig命令
(一)網絡接口相關

(1) 查詢所有已連接的網絡接口(network interface)
使用net-tools:
linux ip命令和ifconfig命令
ifconfig -a顯示的是系統所有的網絡接口,不管是激活的還是未激活的。
這裏簡單對ifconfig的輸出做個解釋:
第一行:Link encap(連接類型) HWaddr(網卡的硬件地址,即MAC地址)
第二行:inet addr(網卡的IPv4地址) Bcast(廣播地址) Mask(子網掩碼)
第三行:inet6 addr(網卡的IPv6地址)
第四行:UP(代表網卡是激活狀態) BROADCAST(支持廣播) RUNNING(代表網卡的網線被接上) MULTICAST(支持組播) MTU(最大傳輸單元) Metric(用於計算路由的成本)
第五、六行: 表示網絡啓動到現在接收和發送的網絡包(packets)數量
第七行:collisions(衝突信息包的數目) txqueuelen(發送隊列的大小)
第八行:表示網絡啓動到現在接收和發送的總字節量(bytes)
linux ip命令和ifconfig命令
注:由RX和TX可以瞭解網絡是否非常繁忙
注:errors:0 dropped:0 overruns:0 frame:0,都爲0 說明網絡比較穩定
注:collisions發生太多次表示網絡狀況不太好
如果只想知道特定網絡接口的信息,可以指定具體網絡接口名稱,例如ifconfig eth0,ifconfig lo
使用iproute2:
linux ip命令和ifconfig命令![]
如果想讓輸出的結果像ifconfig那樣詳細,可以增加-s選項:
linux ip命令和ifconfig命令
這樣,就可以看到網絡接口的流量信息了。
如果只想看當前被激活的網絡接口,可以在命令後頭增加一個up:linux ip命令和ifconfig命令
(2)查詢網絡設備的IP地址
使用net-tools
linux ip命令和ifconfig命令
使用iproute2:
linux ip命令和ifconfig命令
當不指定網絡接口時,ip addr其實是ip addr show的簡略寫法。
(3)設置網絡設備的IP地址
使用net-tools:
linux ip命令和ifconfig命令

使用iproute2:
linux ip命令和ifconfig命令
這裏使用的模版是:ip addr add ip_address/net_prefix brd + devinterface
net_prefix隱含指定了子網掩碼,brd +表明是標準的廣播地址。
需要了解的一點是,通過ip addr可以非常容易地給一塊網卡添加多個地址,ifconfig同樣可以,是通過叫做“IP別名”的方式做到的。
linux ip命令和ifconfig命令
(4)刪除網絡設備的IP地址
使用net-tools:
貌似沒有什麼好辦法去做:ifconfig eth0 0 。
就IP地址的移除而言,除了給接口分配全0地址外,net-tools沒有提供任何合適的方法來移除網絡接口的IPv4地址
使用iproute2:
模版:ip addr del ip_address/net_prefix dev interface

linux ip命令和ifconfig命令
此外,iproute2提供ip addr flush可以一次性刪除一個網絡設備的所有地址:
linux ip命令和ifconfig命令
默認的,這條命令會刪除IPv4和IPv6的地址,如果想分別刪除,可以通過分別指定-4和-6選項。
(5)激活或者停用網絡接口
使用net-tools:
linux ip命令和ifconfig命令
在linux下還可以使用ifup和ifdown來達到同樣的目的。
使用iproute2:
linux ip命令和ifconfig命令(6)設置或者改變網絡接口的參數(屬性)
一個網絡接口具體有哪些參數可以供我們去設置呢?輸入ip link set eth0,然後按兩次TAB鍵,如下:linux ip命令和ifconfig命令可以看到其中的up和down就是用來激活或者停用某個網絡接口的。例如,使能或者關閉eth0的多播功能:
使用net-tools:linux ip命令和ifconfig命令
使用iproute2:
linux ip命令和ifconfig命令通常,調整最大傳輸單元MTU用的比較多。
使用net-tools:linux ip命令和ifconfig命令
使用iproute2:linux ip命令和ifconfig命令改變網卡硬件地址,即MAC地址(注意,修改MAC地址前網卡必須先關閉):
使用net-tools:linux ip命令和ifconfig命令
使用iproute2:
linux ip命令和ifconfig命令類似的,需要先關閉網卡再設置的屬性有name

linux的ip命令和ifconfig類似,但前者功能更強大,並旨在取代後者。使用ip命令,只需一個命令,你就能很輕鬆地執行一些網絡管理任務。ifconfig是net-tools中已被廢棄使用的一個命令,許多年前就已經沒有維護了。iproute2套件裏提供了許多增強功能的命令,ip命令即是其中之一。linux ip命令和ifconfig命令linux ip命令和ifconfig命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章