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及路由记录的小命令,临时起作用的命令一般用在测试环境中,想要永久生效就需要写在文件里。希望这篇博文能对大家有所帮助,欢迎留言,共同探讨。

                      j_0078.gif     

在了解这些之后,可以自己



















本文转自lc0108131451CTO博客,原文链接:http://blog.51cto.com/13150617/1963833 ,如需转载请自行联系原作者



相关文章
|
7月前
|
网络协议 Linux
route 或 ip route命令详解
【4月更文挑战第9天】`route`和`ip route`是Linux下管理IP路由的命令,用于查看和配置路由表。`route`命令简单,可查看、添加和删除路由,而`ip route`更现代且功能强大,支持路由可信度和距离设置。`ip route show`类似于`route -n`用于显示路由信息。路由类型包括主机、网络和默认路由。在现代Linux系统中,推荐使用`ip route`。
684 1
|
4月前
|
Linux 网络安全 网络架构
Route命令
【8月更文挑战第15天】Route命令
68 2
|
4月前
DHCP "No subnet declaration for xxx (no IPv4 addresses)" 报错
DHCP "No subnet declaration for xxx (no IPv4 addresses)" 报错
|
5月前
|
Linux Docker 容器
ip addr命令解析
ip addr命令解析
668 1
route命令小结
route命令小结
82 1
|
网络协议
|
JavaScript 前端开发
|
网络协议