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

 網絡管理是一個複雜而龐大的體系,博主最近剛好學了一點關於網絡的知識,就跟大家分享一下如何管理網卡、配置及查看ip地址和路由表。主要通過以下幾個命令來演示一下。

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

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

j_0057.gif一、ifconfig   

      1)配置地址:

        比如修改eth0網卡的ip爲192.168.174.100,子網掩碼爲255.255.255.0

        ifconfig eth0 192.168.174.100/24  

 

wKiom1mzN8eilU5oAABFCO4poUc060.jpg

   使用ifconfig修改ip會直接在內存中生效,重啓系統或者重啓network服務就丟失。

   重啓服務:Centos6:service network restart

          Centos7:systemctl restart network

wKioL1mzN6SwixD6AADFelk9KNU149.jpg

    2)具有查看功能:

      ①ifconfig

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

wKiom1mzN8exSvJVAAEW_cxy4TM456.jpg

      ②ifconfig -a  

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

wKioL1mzN6WiVRZmAACcb0Rx8E8825.jpg

   ③ip a

         也是查看網卡,但是如果網卡被down,ifconfig -a不顯示該ip,也不顯示網卡狀態,但是ip a可以顯示網卡處於down狀態

wKioL1mzN6XwLfKpAABgsT1fWJ0242.jpg

    3)啓用、禁用網卡

      ①ifconfig eth1 up   啓用eth1網卡

       ifconfig eth1 down  禁用eth1網卡

          這種禁用是從數據鏈路層斷掉,但是網絡層ip還在,也就是仍然能ping通

wKiom1mzN8jQG6rVAADyQeZUqYI692.jpg

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

      ifip  eth0     啓用網卡    

wKiom1mzN8jirRzgAAAtjWz8ujE678.jpg

    4)掃描eth0接口的數據

                 ifconfig -s eth0    

wKioL1mzOPqznaEQAAAcGdNzg6Q130.jpg

   5)網卡別名

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

        ifconfig eth1:1 192.168.174.100/24   刪除別名

wKioL1mzN6XDTUgJAAChEzdm4yA757.jpg

j_0057.gif二、route

  1、 查看路由表:

             route -n

wKiom1mzO1jSPkbqAAA1aw8fAqg254.jpg

  2、添加路由記錄:是臨時添加的記錄,重啓network服務就失效

     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

wKioL1mzOzbBceHbAABgGEGyRUI479.jpg

     2)添加到達目標網絡的路由

       route add -net 目標網絡 netmask 子網掩碼 gw 網關 dev 接口

   或者 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  或者  route add -net 10.1.0.0/16 gw 10.2.111.111 dev eth0

wKiom1mzO1nwJ4X5AABtycNYlXA147.jpg

      3)添加默認路由

              route add default gw 網關

              比如給eth0添加一條默認路由,網關是10.2.111.111

              route add default gw 10.2.111.111

wKioL1mzOzahcalUAABzSJPY3kc912.jpg

  3、 刪除路由記錄:

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

             1)刪除到達目標主機的路由記錄

             route del -host 主機名

          2)刪除到達目標網絡的路由記錄

             route del -net 目標網絡/子網掩碼

             3)刪除默認路由

             route del default

j_0057.gif三、ip route

      ip route 的用法與route大同小異

       1、顯示路由:

                ip route [show | list]

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

wKiom1mzO1mz7qOmAACKMqyjztQ284.jpg

       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

wKioL1mzOzbC0O-DAABIBllHaqc860.jpg

       3、刪除路由

                ip route del 目標網絡/掩碼

                ip route del default [via 網關]

       4、清空路由表:

                ip route flush

j_0057.gif四、ip link  

       1)查看

            ip link只能看鏈路層的狀態,看不到ip地址

wKiom1mzO1mSc_wGAACnTpqP2tw781.jpg

       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不包括在內。   

j_0057.gif五、ip addr

       1)查看

         ①ip addr 即ip a ,可以查看網卡的ip、mac等,即使網卡處於down狀態,也能顯示出網卡狀態,但是ifconfig查看就看不到。

wKiom1mzPA2zStdHAAAg2oZoUPc334.jpg

         ②ip addr show device  查看指定網卡的信息

         比如查看eth的信息,就是ip addr show eth0

       2)作用域

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

        ①global: 全局可用,即兩個接口進來的數據我都可以響應。是默認狀態。

        ②link: 僅鏈接可用,進來的數據只有直接相連的那個接口能夠響應

        ③host: 本機可用,即只能自己訪問

wKioL1mzO-visbUtAADIr0luh9w921.jpg

     3)增加ip

            ip addr add ip/netmask dev 接口  

         比如給eth0增加一個2.2.2.2/16 地址

       ip addr add 2.2.2.2/16 dev eth0

wKiom1mzPA6i9xyvAABjwwOp5dY519.jpg

     4)刪除ip

              ip addr del ip/netmask dev 接口   

     5)清空指定網卡的所有ip

              ip addr flush dev 接口        

     6)給網卡起別名,起別名相當於給網卡多綁定了一個ip     

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

              ip addr add 3.3.3.3/16 dev eth0 label eth0:1  

  wKioL1mzO-ugnUuoAABv1cSzvmw479.jpg

     7)刪除別名              

            ip addr del ip/netmask dev eth0 [label eth0: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

      如果不想要這個別名了,直接刪除該文件,然後重啓服務即可 。      

說明二:

       使用命令的方式增加或者刪除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

說明三: 

     使用命令的方式增加或者刪除路由記錄,都是臨時的,如果重啓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及路由記錄的小命令,臨時起作用的命令一般用在測試環境中,想要永久生效就需要寫在文件裏。希望這篇博文能對大家有所幫助,歡迎留言,共同探討。

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