Linux ip 命令

Linux 命令大全 Linux 命令大全

Linux ip 命令與 ifconfig 命令類似,但比 ifconfig 命令更加強大,主要功能是用于顯示或設置網絡設備。

ip 命令是 Linux 加強版的的網絡配置工具,用于代替 ifconfig 命令。

語法

ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT 為常用對象,值可以是以下幾種:

 
OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }

常用對象的取值含義如下:

  • link:網絡設備
  • address:設備上的協議(IP或IPv6)地址
  • addrlabel:協議地址選擇的標簽配置
  • route:路由表條目
  • rule:路由策略數據庫中的規則

OPTIONS 為常用選項,值可以是以下幾種:

OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }

常用選項的取值含義如下:

  • -V:顯示命令的版本信息;
  • -s:輸出更詳細的信息;
  • -f:強制使用指定的協議族;
  • -4:指定使用的網絡層協議是IPv4協議;
  • -6:指定使用的網絡層協議是IPv6協議;
  • -0:輸出信息每條記錄輸出一行,即使內容較多也不換行顯示;
  • -r:顯示主機時,不使用IP地址,而使用主機的域名。
  • help 為該命令的幫助信息。

    實例

    ip link show                     # 顯示網絡接口信息
    ip link set eth0 up             # 開啟網卡
    ip link set eth0 down            # 關閉網卡
    ip link set eth0 promisc on      # 開啟網卡的混合模式
    ip link set eth0 promisc offi    # 關閉網卡的混個模式
    ip link set eth0 txqueuelen 1200 # 設置網卡隊列長度
    ip link set eth0 mtu 1400        # 設置網卡最大傳輸單元
    ip addr show     # 顯示網卡IP信息
    ip addr add 192.168.0.1/24 dev eth0 # 設置eth0網卡IP地址192.168.0.1
    ip addr del 192.168.0.1/24 dev eth0 # 刪除eth0網卡IP地址
    
    ip route show # 顯示系統路由
    ip route add default via 192.168.1.254   # 設置系統默認路由
    ip route list                 # 查看路由信息
    ip route add 192.168.4.0/24  via  192.168.0.254 dev eth0 # 設置192.168.4.0網段的網關為192.168.0.254,數據走eth0接口
    ip route add default via  192.168.0.254  dev eth0        # 設置默認網關為192.168.0.254
    ip route del 192.168.4.0/24   # 刪除192.168.4.0網段的網關
    ip route del default          # 刪除默認路由
    ip route delete 192.168.1.0/24 dev eth0 # 刪除路由

    用 ip 命令顯示網絡設備的運行狀態:

    [root@localhost ~]# ip link list
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
        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 qlen 1000
        link/ether 00:16:3e:00:1e:51 brd ff:ff:ff:ff:ff:ff
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
        link/ether 00:16:3e:00:1e:52 brd ff:ff:ff:ff:ff:ff

    顯示更加詳細的設備信息:

    [root@localhost ~]# ip -s link list
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        RX: bytes  packets  errors  dropped overrun mcast   
        5082831    56145    0       0       0       0      
        TX: bytes  packets  errors  dropped carrier collsns
        5082831    56145    0       0       0       0      
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
        link/ether 00:16:3e:00:1e:51 brd ff:ff:ff:ff:ff:ff
        RX: bytes  packets  errors  dropped overrun mcast   
        3641655380 62027099 0       0       0       0      
        TX: bytes  packets  errors  dropped carrier collsns
        6155236    89160    0       0       0       0      
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
        link/ether 00:16:3e:00:1e:52 brd ff:ff:ff:ff:ff:ff
        RX: bytes  packets  errors  dropped overrun mcast   
        2562136822 488237847 0       0       0       0      
        TX: bytes  packets  errors  dropped carrier collsns
        3486617396 9691081  0       0       0       0    
    

    顯示核心路由表:

    [root@localhost ~]# ip route list 
    112.124.12.0/22 dev eth1  proto kernel  scope link  src 112.124.15.130
    10.160.0.0/20 dev eth0  proto kernel  scope link  src 10.160.7.81
    192.168.0.0/16 via 10.160.15.247 dev eth0
    172.16.0.0/12 via 10.160.15.247 dev eth0
    10.0.0.0/8 via 10.160.15.247 dev eth0
    default via 112.124.15.247 dev eth1

    顯示鄰居表:

    [root@localhost ~]# ip neigh list
    112.124.15.247 dev eth1 lladdr 00:00:0c:9f:f3:88 REACHABLE
    10.160.15.247 dev eth0 lladdr 00:00:0c:9f:f2:c0 STALE

    獲取主機所有網絡接口:

    ip link | grep -E '^[0-9]' | awk -F: '{print $2}'

    Linux 命令大全 Linux 命令大全