天天看点

【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 用法

继续阅读