天天看點

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

文章目錄

  • 1. 前言
  • 2. ifconfig
    • 2.1 配置位址
    • 2.2 檢視功能
      • 2.2.1 ifconfig
      • 2.2.2 ifconfig -a
      • 2.2.3 ip a
    • 2.3 啟用、禁用網卡
      • 2.3.1 ifconfig eth1 up、 ifconfig eth1 down
      • 2.3.2 ifdown eth0、ifip eth0
    • 2.4 掃描eth0接口的資料
    • 2.5 網卡别名
  • 3. route
    • 3.1 檢視路由表
    • 3.2 添加路由記錄
      • 3.2.1 添加到達目标主機的路由
      • 3.2.2 添加到達目标網絡的路由
      • 3.2.3 添加預設路由
    • 3.3 删除路由記錄
  • 4. ip route
    • 4.1 顯示路由:
    • 4.2 添加路由
    • 4.3 删除路由
    • 4.4 清空路由表:
  • 5. ip link
    • 5.1 檢視
    • 5.2 啟用、禁用接口
  • 6. ip addr
    • 6.1 檢視
      • 6.1.1 ip addr
      • 6.1.2 ip addr show device 檢視指定網卡的資訊
    • 6.2 作用域
    • 6.3 增加ip
    • 6.4 删除ip
    • 6.5 清空指定網卡的所有ip
    • 6.6 給網卡起别名,起别名相當于給網卡多綁定了一個ip
    • 6.7 删除别名
    • 6.8 注意事項
      • 6.8.1 使用指令的方式設定别名,重新開機服務就沒了
      • 6.8.2 使用指令的方式增加或者删除ip,如果重新開機network服務,那麼操作就失效了
      • 6.8.3 使用指令的方式增加或者删除路由記錄,如果重新開機network服務,那麼操作就失效了
  • 參考

系列文章

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一

【Linux指令】ip addr、ip link、ifconfig 用法 二

1. 前言

網絡管理是一個複雜而龐大的體系,部落客最近剛好學了一點關于網絡的知識,就跟大家分享一下如何管理網卡、配置及檢視ip位址和路由表。主要通過以下幾個指令來示範一下。

現在一些舊的指令由于功能上有欠缺,已經逐漸被新指令取代。

舊指令 新指令
ifconfig ip addr
route ip route
ip link

2. ifconfig

2.1 配置位址

比如修改eth0網卡的ip為192.168.174.100,子網路遮罩為255.255.255.0:

ifconfig eth0 192.168.174.100/24  
           
【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

使用ifconfig修改ip會直接在記憶體中生效,重新開機系統或者重新開機network服務就丢失。

重新開機服務來驗證下:Centos6:

service network restart

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

2.2 檢視功能

2.2.1 ifconfig

顯示網卡資訊,被禁用的網卡看不到.(拔了網線斷開連接配接不算禁用,仍然能看到該網卡)

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

2.2.2 ifconfig -a

不管啟用的網卡還是禁用的都能顯示出來,但是看不到禁用網卡的ip:

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

2.2.3 ip a

也是檢視網卡,但是如果網卡被down,ifconfig -a不顯示該ip,也不顯示網卡狀态,但是ip a可以顯示網卡處于down狀态:

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

2.3 啟用、禁用網卡

2.3.1 ifconfig eth1 up、 ifconfig eth1 down

ifconfig eth1 up 啟用eth1網卡

ifconfig eth1 down 禁用eth1網卡

這種禁用是從資料鍊路層斷掉,但是網絡層ip還在,也就是

仍然能ping通

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

2.3.2 ifdown eth0、ifip eth0

ifdown eth0 禁用網卡,删除了網絡層ip

ifip eth0 啟用網卡

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

2.4 掃描eth0接口的資料

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

2.5 網卡别名

ifconfig eth1:1 192.168.174.100/24 起網卡别名

ifconfig eth1:1 192.168.174.100/24 删除别名

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

3. route

通過man route檢視詳細文法

NAME
       route - show / manipulate the IP routing table

SYNOPSIS
       route [-CFvnNee] [-A family |-4|-6]

       route  [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]

       route  [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]

       route  [-V] [--version] [-h] [--help]

           

3.1 檢視路由表

route 或route -n ,多用後者

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

這裡的網關是指下一跳位址

預設是檢視

ipv4

路由,如果想檢視

ipv6

的:

3.2 添加路由記錄

是臨時添加的記錄,重新開機network服務就失效

3.2.1 添加到達目标主機的路由

如果你想添加一個目标位址的話,可以采用這個方法,[]表示可選

route add -host 目标主機 gw 網關 [ dev 接口 ]

比如 給eth0網卡添加一條到達10.1.111.111的路由記錄,網關是10.2.111.111

route add -host 10.1.111.111 gw 10.2.111.111 dev eth0
           
【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

3.2.2 添加到達目标網絡的路由

如果你想把某個網絡的全部位址都加入路由的話,可以采用這個方法

route add -net 目标網絡 netmask 子網路遮罩 gw 網關 dev 接口

或者 CIDR格式: route add -net 目标網絡/子網路遮罩 gw 網關 dev 接口

比如 給eth0網卡添加一條到達網絡10.1.0.0/16的路由,網關是10.2.111.111

route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.2.111.111 dev eth0
           

或者 CIDR格式:

route add -net 10.1.0.0/16 gw 10.2.111.111 dev eth0
           
【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

3.2.3 添加預設路由

route add default gw 網關

比如給eth0添加一條預設路由,網關是10.2.111.111

route add default gw 10.2.111.111
           
【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

3.3 删除路由記錄

删除路由記錄隻需要把添加路由記錄指令中的add改成del就可以了,不過删除路由記錄可以省略接口

1)删除到達目标主機的路由記錄

route del -host 主機名

2)删除到達目标網絡的路由記錄

route del -net 目标網絡/子網路遮罩

3)删除預設路由

route del default

4. ip route

ip route 的用法與route大同小異

4.1 顯示路由:

ip route [show | list]

ip route顯示的路由記錄與route顯示的格式不一樣

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

4.2 添加路由

1)添加到達目标主機的路由記錄

ip route add 目标主機 via 網關

2)添加到達網絡的路由記錄

ip route add 目标網絡/掩碼 via 網關

3)添加預設路由

ip route add default via 網關

下面隻舉一個例子說明一下。

比如增加一條到達主機10.2.111.112的路由,網關是10.1.111.112

ip route add 10.2.111.112 via 10.1.111.112
           
【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

4.3 删除路由

ip route del 目标網絡/掩碼

ip route del default [via 網關]

4.4 清空路由表:

ip route flush

5. ip link

ip link (show) 表示鍊路層的資訊,更底層,偏向于實體層,主要是操作網卡,如你可以設定網卡的up down,而

ip addr 側重ip層

5.1 檢視

ip link隻能看鍊路層的狀态,看不到ip位址

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

5.2 啟用、禁用接口

ip link set device down 禁用指定接口

ip link set device up 啟用指定接口

比如禁用eth0就是ip link set eth0 down

說明:

  • ip link不支援tab鍵補齊
  • 在centos6中有的指令不支援tab鍵補齊,那麼使用需要安裝bash-completion包,安裝完之後,可以檢視包裡都支援哪些指令補齊,但是發現ip link不包括在内。

6. ip addr

ip link (show) 表示鍊路層的資訊,更底層,偏向于實體層,主要是操作網卡,如你可以設定網卡的up down,而

ip addr 側重ip層

6.1 檢視

6.1.1 ip addr

縮寫為 ip a ,可以檢視網卡的ip、mac等,即使網卡處于down狀态,也能顯示出網卡狀态,但是ifconfig檢視就看不到。

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

6.1.2 ip addr show device 檢視指定網卡的資訊

比如檢視eth的資訊,就是ip addr show eth0

6.2 作用域

scope {global|link|host}]:指明作用域

①global: 全局可用,即兩個接口進來的資料我都可以響應。是預設狀态。

        ②link: 僅連結可用,進來的資料隻有直接相連的那個接口能夠響應

        ③host: 本機可用,即隻能自己通路
           
【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

6.3 增加ip

ip addr add ip/netmask dev 接口

ip addr add 2.2.2.2/16 dev eth0

【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

6.4 删除ip

ip addr del ip/netmask dev 接口

6.5 清空指定網卡的所有ip

ip addr flush dev 接口

6.6 給網卡起别名,起别名相當于給網卡多綁定了一個ip

用法: 比如給網卡eth0增加别名

ip addr add 3.3.3.3/16 dev eth0 label eth0:1  
           
【Linux指令】ifconfig、route、ip route、ip addr、 ip link 用法 一1. 前言2. ifconfig3. route4. ip route5. ip link6. ip addr參考

6.7 删除别名

ip addr del ip/netmask dev eth0 [label eth0:1]

6.8 注意事項

6.8.1 使用指令的方式設定别名,重新開機服務就沒了

使用指令的方式設定别名,重新開機服務就沒了,若要永久生效,需要寫配置檔案,步驟如下:

1、確定NetworkManager服務是停止的

Centos6: service NetworkManager status  檢視服務狀态

               service NetworkManager stop    臨時停止

               chkconfig NetworkManager off  下次開機即停止服務  

         Centos7: systemctl status NetworkManager 檢視服務狀态

               systemctl stop NetworkManager   臨時停止

               systemctl disable NetworkManager 下次開機即停止服務
           

2、 編輯配置檔案

cd /etc/sysconfig/network-scripts/

vim ifcfg-eth1:1 至少寫入以下内容:

DEVICE=eth1:1

                  BOOTPROTO=static

                  IPADDR=           ==》ip位址

                  PREFIX=           ==》掩碼

                  GATEWAY=              ==》網關
           

設定别名時必須是靜态ip,不能是自動擷取

3、 重新開機服務

Centos6: service network restart

Centos7: systemctl restart network

如果不想要這個别名了,直接删除該檔案,然後重新開機服務即可 。

6.8.2 使用指令的方式增加或者删除ip,如果重新開機network服務,那麼操作就失效了

使用指令的方式增加或者删除ip,都是臨時的,如果重新開機network服務,那麼操作就失效了。想要永久生效可以修改配置檔案

/etc/sysconfig/network-scripts/ifcfg-eth*

,這個檔案是用來設定網卡參數,這個檔案内的所有設定,基本上就是bash的變量設定規則(都應該要大寫),否則我們的scropt會誤判。

步驟如下:

1) 編輯檔案

vim /etc/sysconfig/network-scripts/ifcfg-eth0 至少要有如下幾項:

DEVICE=eth0

                 BOOTPROTO=static

                 IPADDR=           ==》ip位址

                 PREFIX=           ==》掩碼

                 GATEWAY=              ==》網關
           

2)生效:重新開機服務

Centos6: service network restart

Centos7: systemctl restart network

6.8.3 使用指令的方式增加或者删除路由記錄,如果重新開機network服務,那麼操作就失效了

使用指令的方式增加或者删除路由記錄,都是臨時的,如果重新開機network服務,那麼操作就失效了。想要永久生效可以編輯配置檔案

/etc/sysconfig/network-scripts/route-eth*

,步驟如下:

1、 vim etc/sysconfig/network-scripts/route-eth0

檔案内容有兩種寫法:

  • 1)單行

    netid/mask via gw 比如2.2.2.2/16 via 10.0.0.0

  • 2)多行
ADDRESS#=目标網絡

                NETMASK#=子網路遮罩

                GATEWAY#=網關
           

注意:

同一路由記錄的#數字必須一樣,因為可能會添加多條路由,數字一樣的為同一組。

同一個檔案裡,兩種格式不能混合着寫。

2、重新開機服務

Centos6: service network restart

Centos7: systemctl restart network

以上就是一些關于增加或者删除ip及路由記錄的小指令,臨時起作用的指令一般用在測試環境中,想要永久生效就需要寫在檔案裡。

參考

ifconfig、route、ip route、ip addr、 ip link 用法

繼續閱讀