1. 程式人生 > >linux網路工具iproute2的使用簡介 ip addr

linux網路工具iproute2的使用簡介 ip addr

一、寫本文的目的 本文完全是自己在學習iproute2的過程中搜集的大雜燴,記錄在這裡,方便以後自己查詢學習,圖片都是來自網路,在此表示感謝! 二、簡單瞭解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地址、路由和隧道等)均使用合適的物件抽象去定義,使得使用者可使用一致的語法去管理不同的物件。 所以,net-tools和iproute2都需要去學習掌握了。 iproute2的核心命令是ip:
三、iproute2的典型應用 本小節,我會使用net-tools和iproute2的命令做對比,做到簡單明瞭,分別演示如何去獲取、配置和作業系統網路資訊。 以下是net-tools和iproute2的大致對比: (一)網路介面相關 (1) 查詢所有已連線的網路介面(network interface) 使用net-tools: [email protected]:~# ifconfig -a   eth0  Link encap:Ethernet  HWaddr 00:0c:29:0d:ce:93   inet addr:192.168.6.138  Bcast:192.168.6.255  Mask:255.255.255.0   inet6 addr: fe80::20c:29ff:fe0d:ce93/64 Scope:Link   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1   RX packets:202741 errors:1 dropped:3312 overruns:0 frame:0   TX packets:60730 errors:0 dropped:0 overruns:0 carrier:0   collisions:0 txqueuelen:1000   RX bytes:27472662 (27.4 MB)  TX bytes:51025509 (51.0 MB)   Interrupt:18 Base address:0x2000    eth0:1Link encap:Ethernet  HWaddr 00:0c:29:0d:ce:93   inet addr:192.168.6.139  Bcast:192.168.6.255  Mask:255.255.255.0   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1   Interrupt:18 Base address:0x2000    loLink encap:Local Loopback   inet addr:127.0.0.1  Mask:255.0.0.0   inet6 addr: ::1/128 Scope:Host   UP LOOPBACK RUNNING  MTU:65536  Metric:1   RX packets:5 errors:0 dropped:0 overruns:0 frame:0   TX packets:5 errors:0 dropped:0 overruns:0 carrier:0   collisions:0 txqueuelen:0   RX bytes:512 (512.0 B)  TX bytes:512 (512.0 B)   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) HWaddr :網絡卡的硬體地址,即MAC地址 inet addr:IPv4的IP 地址 Bcast:廣播地址 mask:子網掩碼 inet6 addr:IPv6地址 MTU:最大傳輸單元 Metric:用於計算路由的成本 RX:表示網路啟動到現在的封包接受情況 (Receive) packets:表示接包數 errors:表示接包發生錯誤的數量 dropped:表示丟棄的包數量 overruns:表示接收時因過速而丟失的資料包數 frame:表示發生frame錯誤而丟失的資料包數 TX:從網路啟動到現在傳送的情況 (Transmit) collisions:衝突資訊包的數目 txqueuelen:傳送佇列的大小 RX byte、TX byte:總傳送/接受的量 注:由RX和TX可以瞭解網路是否非常繁忙 注:errors:0 dropped:0 overruns:0 frame:0,都為0 說明網路比較穩定 注:collisions發生太多次表示網路狀況不太好 如果只想知道特定網路介面的資訊,可以指定具體網路介面名稱,例如ifconfig eth0,ifconfig lo 使用iproute2:
[email protected]
:~# ip link show   1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00   2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000   link/ether 00:0c:29:0d:ce:93 brd ff:ff:ff:ff:ff:ff   同樣的,想檢視特定網路介面的資訊,直接指定網路介面名稱即可。
[email protected]
:~# ip link show eth0   2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000   link/ether 00:0c:29:0d:ce:93 brd ff:ff:ff:ff:ff:ff   如果想讓輸出的結果像ifconfig那樣詳細,可以增加-s選項: [email protected]:~# ip -s link show eth0   2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000   link/ether 00:0c:29:0d:ce:93 brd ff:ff:ff:ff:ff:ff   RX: bytes  packets  errors  dropped overrun mcast   40288764   244422   1   36510   0   TX: bytes  packets  errors  dropped carrier collsns   51239397   621160   0   0   0   這樣,就可以看到網路介面的流量資訊了。 如果只想看當前被啟用的網路介面,可以在命令後頭增加一個up: [email protected]:~# ip link show up   1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00   2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000   link/ether 00:0c:29:0d:ce:93 brd ff:ff:ff:ff:ff:ff   (2)查詢網路裝置的IP地址 使用net-tools: [email protected]:~# ifconfig eth0   使用iproute2: [email protected]:~# ip addr show dev eth0   2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000   link/ether 00:0c:29:0d:ce:93 brd ff:ff:ff:ff:ff:ff   inet 192.168.6.138/24 brd 192.168.6.255 scope global eth0   valid_lft forever preferred_lft forever   inet 192.168.6.139/24 brd 192.168.6.255 scope global secondary eth0:1   valid_lft forever preferred_lft forever   inet6 fe80::20c:29ff:fe0d:ce93/64 scope link   valid_lft forever preferred_lft forever   當不指定網路介面時,ip addr其實是ip addr show的簡略寫法。 (3)設定網路裝置的IP地址 使用net-tools: [email protected]:~# ifconfig eth0:1 192.168.6.140   [email protected]:~# ifconfig eth0:1 192.168.6.140 netmask 255.255.255.0   [email protected]:~# ifconfig eth0:1 192.168.6.140 netmask 255.255.255.0 broadcast 192.168.6.255   使用iproute2: [email protected]:~# ip addr add 192.168.6.140/24 brd + dev eth0:1   這裡使用的模版是:ip addr add ip_address/net_prefix brd + devinterface  net_prefix隱含指定了子網掩碼,brd +表明是標準的廣播地址。 需要了解的一點是,通過ip addr可以非常容易地給一塊網絡卡新增多個地址,ifconfig同樣可以,是通過叫做“IP別名”的方式做到的。 [email protected]:~# ip addr add 192.168.6.140/24 broadcast 192.168.6.255 dev eth0   [email protected]:~# ip addr add 192.168.6.141/24 broadcast 192.168.6.255 dev eth0   [email protected]:~# ip addr add 192.168.6.142/24 broadcast 192.168.6.255 dev eth0   (4)刪除網路裝置的IP地址 使用net-tools: 貌似沒有什麼好辦法去做。 使用iproute2: 模版:ip addr del ip_address/net_prefix dev interface [email protected]:~# ip -4 addr show dev eth0   2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000   inet 192.168.6.138/24 brd 192.168.6.255 scope global eth0   valid_lft forever preferred_lft forever   inet 192.168.6.141/24 brd 192.168.6.255 scope global secondary eth0   valid_lft forever preferred_lft forever   [email protected]:~# ip addr del 192.168.6.141/24 dev eth0   [email protected]:~# ip -4 addr show dev eth0   2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000   inet 192.168.6.138/24 brd 192.168.6.255 scope global eth0   valid_lft forever preferred_lft forever   此外,iproute2提供ip addr flush可以一次性刪除一個網路裝置的所有地址: [email protected]:~# ip addr flush dev eth0   預設的,這條命令會刪除IPv4和IPv6的地址,如果想分別刪除,可以通過分別指定-4和-6選項。 (5)啟用或者停用網路介面 使用net-tools: [email protected]:~# ifconfig eth0 up   [email protected]:~# ifcofig eth0 dow   在linux下還可以使用ifup和ifdown來達到同樣的目的。 使用iproute2: [email protected]:~# ip link set eth0 up   [email protected]:~# ip link set eth0 down   (6)設定或者改變網路介面的引數(屬性) 一個網路介面具體有哪些引數可以供我們去設定呢?輸入ip link set eth0,然後按兩次TAB鍵,如下: 可以看到其中的up和down就是用來啟用或者停用某個網路介面的。例如,使能或者關閉eth0的多播功能: 使用net-tools: [email protected]:~# ifconfig eth0 multicast   [email protected]:~# ifconfig eth0 -multicast   使用iproute2: [email protected]:~# ip link set eth0 multicast on   [email protected]:~# ip link set eth0 multicast off   通常,調整最大傳輸單元MTU用的比較多。 使用net-tools: [email protected]:~# ifconfig eth0 mtu 1400   [email protected]:~# ip link show eth0   2: eth0: <BROADCAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000   link/ether 00:0c:29:0d:ce:93 brd ff:ff:ff:ff:ff:ff   使用iproute2: [email protected]:~# ip link set eth0 mtu 1500   [email protected]:~# ip link show eth0   2: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000   link/ether 00:0c:29:0d:ce:93 brd ff:ff:ff:ff:ff:ff   改變網絡卡硬體地址,即MAC地址(注意,修改MAC地址前網絡卡必須先關閉): 使用net-tools: [email protected]:~# ifconfig eth0 down   [email protected]:~# ifconfig eth0 hw ether 00:0c:29:0d:ce:95 up   使用iproute2: [email protected]:~# ip link set eth0 down   [email protected]:~# ip link set eth0 address 00:0c:29:0d:ce:95   [email protected]:~# ip link set eth0 up   類似的,需要先關閉網絡卡再設定的屬性有name。

相關推薦

linux網路工具iproute2的使用簡介 ip addr

一、寫本文的目的 本文完全是自己在學習iproute2的過程中搜集的大雜燴,記錄在這裡,方便以後自己查詢學習,圖片都是來自網路,在此表示感謝! 二、簡單瞭解iproute2工具套裝 iproute2是linux下管理控制TCP/IP網路和流量控制的新一代工具包,旨在替代老派的工具鏈net-tools,即大

linux網路工具iproute2

文章來源: https://blog.csdn.net/edu_enth/article/details/58065987 沒找到轉載功能,只好複製到這裡了,很食用的文章,感謝作者“汙湖洞主” 一、寫本文的目的 本文完全是自己在學習iproute2的過程中搜集的大雜燴,記錄在這裡,方

Linux網路基礎命令ifconfig,ip,ss

ifcfg家族:         ifconfig:配置IP,NETMASK         route:路由         netstat:狀態及統

Linux 網路程式設計之通過IP或者主機名獲取資訊

struct hostent { char *h_name; /* 主機的正式名稱*/ char **h_aliases; /* 主機的別名列表*/ int h_addrtype; /* 主機的地址型

Linux 網路基礎知識之IP地址和子網掩碼詳解

部分內容圖片截自慕課網 1. TCP/IP四層模型會對資料逐層打包,其中網路層負責打包IP包頭,而IP包頭拆開內容格式如下圖 注意:一般情況下IP包頭為20個位元組,160個bit大小,包括5行資料,但在IPV4協議下並非一定如此,可能包含其他資訊,

linux網路程式設計之TCP/IP基礎(二):利用ARP和ICMP協議解釋ping命令

一、MTU 乙太網和IEEE 802.3對資料幀的長度都有限制,其最大值分別是1500和1492位元組,將這個限制稱作最大傳輸單元(MTU,Maximum Transmission Unit)。如果I

嵌入式linux網路程式設計,TCP、IP協議原理,wireshark抓包工具,乙太網頭(Ethernet header),IP頭,TCP頭,三次握手,四次握手,UDP頭

文章目錄 1,wireshark抓包工具 1.1,wireshark安裝 1.2,wireshark啟動 1.2.1,出現錯誤警告 1.2.2,解決方案 2,常用除錯測試工具 3,TCP

Linux網路程式設計:socket程式設計簡介網路位元組序及相關函式

Socket(套接字) socket可以看成是使用者程序與核心網路協議棧的程式設計介面(API函式)。 socket不僅可以用於本機的程序間通訊,還可以用於網路上不同主機的程序間通訊。 IPv4套接字地址結構 IPv4套接字地址結構通常也稱為“網際套接字地址結構”,它以

Linux網路作業系統安裝工具UNetbootin

UNetbootin (Universal Netboot Installer)為一種跨平臺工具軟體,可以用來建立Live USB 系統,也可以載入各種系統工具,或安裝各種Linux作業系統(Linux套件)和其他作業系統,不需使用安裝光碟(自 動透過網路下載)。 USB安裝模式 這種

linux網路ip配置

NAT:把物理機為路由器進行上網 橋接:通過使用物理機網絡卡 具有單獨ip 配置網路:/etc/sysconfig/network-scripts/(一般為第一個)ifcfg-eth0 ONBOOT(是否隨機器啟動網絡卡服務)=yes NM—CONTRO

Linux網路程式設計——TCP/IP協議概述

我們每天使用網際網路,你是否想過,它是如何實現的? 全世界幾十億臺電腦,連線在一起,兩兩通訊。北京的某一塊網絡卡送出訊號,深圳的另一塊網絡卡居然就收到了,兩者實際上根本不知道對方的物理位置,你不覺得這是很神奇的事情嗎?   為了使各種不同的計算機之間可以互聯,ARP

嵌入式Linux網路程式設計,網路基礎,套接字socket(SOCK_STREAM、SOCK_DGRAM、SOCK_RAW),IP地址,埠號,位元組序,位元組序轉換函式,IP地址的轉換

文章目錄 1,socket 1.1,socket的型別(SOCK_STREAM、SOCK_DGRAM、SOCK_RAW) 1.2,socket的位置 2,IP地址 2.1,特殊IP地址: 3,埠號

嵌入式Linux網路程式設計,網路基礎,OSI七層模型,TCP/IP四層模型,TCP/IP通訊模型、協議結構、封包與拆包,TCP/UDP協議特點及適用情況

文章目錄 1,TCP協議分成了兩個不同的協議----->TCP/IP協議誕生 2,網路的體系結構 2.1,OSI開放系統互聯模型 2.2,TCP/IP協議族的體系結構 3,TCP/IP協議通訊模型 3.1

Linux網路TCP/IP開發

網路OSI(7層協議): 物理層 資料鏈路層:單個鏈路上如何傳輸資料。這些協議與被討論的各種介質有關。 網路層 傳輸層:TCP / UDP 會話層 表示層 應用層:FTP HTTP TCP的三次握手(

ip addr add和ifconfig的區別看linux網絡卡ip地址的結構

                今天一個老外在郵件列表上問了一個問題,就是ip addr add和ifconfig的區別,我給他進行了解答,可能因為英語不好吧,解答的很簡單,因此我還是要在這裡詳細說明一下。其實它們之間沒有什麼區別,只 是表述方式不同罷了。如果你非常理解網路協議的原理以及網路的分層架構那麼我想

linux中資料倉庫工具hive簡介及安裝部署詳解

簡介: Apache Hive是一個建立在Hadoop架構之上的資料倉庫。它能夠提供資料的精煉,查詢和分析。 hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提

Linux學習筆記(10)linux網路管理與配置之一——主機名與IP地址

Linux學習筆記(10)linux網路管理與配置之一——主機名與IP地址 大綱目錄 0.常用linux基礎網路命令 1.配置主機名 2.配置網絡卡資訊與IP地址 3.配置DNS客戶端 4.配置名稱解析順序 5.配置路由與預設閘道器 6.雙網絡卡繫結   1.配置主機名 1.1

十個不錯的 Linux 網路監視工具

沒用過 留著備用 保持對我們的網路的管理,防止任何程式過度使用網路、導致整個系統操作變慢,對管理員來說是至關重要的。有幾個網路監視工具可以用於不同的作業系統。在這篇文章中,我們將討論從 Linux 終端中執行的 10 個網路監視工具。它對不使用 GUI 而希望通過

Linux網路程式設計--IP地址與域名解析(DNS)

在日常生活中,人們往往知道主機的域名而不知道主機的IP地址,而socket的API均基於IP地址,所以需要使用DNS域名解析伺服器進行解析。 那麼首先簡單介紹一下DNS的原理,DNS伺服器系統是按樹形的結構構造,頂級域名伺服器下分多個二級域名伺服器,二級域名伺

linux網路程式設計 TCP/IP簡述

IP協議介紹: 網際層的IP協議是TCP/IP體系中的核心協議,他提供無連線的傳輸服務,不能保證資料報的可靠傳輸。 IP資料報的完整格式如下: 版本:4位 ,如果建立該資料報的IP協議的版本資訊,如果版本是4,對應是IPv4 首部長度:除了IP選型及及相關的填充欄位以外,首