• Linux系统之ip命令的基本使用


    在这里插入图片描述

    一、ip命令介绍

    1.1 ip命令简介

    IP命令是一个非常强大的命令行工具,用于管理与配置网络接口和路由表。

    1.2 ip命令的由来

    IP命令的由来可以追溯到Unix操作系统,IP命令是一个网络工具,用于配置和管理网络接口和路由表。它是从早期的Unix系统中的ifconfig命令发展而来的。ifconfig命令可以用于配置和管理网络接口,但是它的功能有限,不能管理路由表,因此IP命令应运而生。随着网络技术的不断发展,IP命令也不断进行更新和扩展,成为了一个功能强大的网络工具。现在,在许多Linux和Unix系统中,IP命令已经取代了ifconfig命令,成为管理网络接口和路由表的主要工具。

    1.3 ip命令的安装包

    ip 命令来自 iproute2 软件包,在 CentOS 7 中默认已安装(yum install -y iproute)。

    [root@jeven ~]# rpm -ql iproute |grep bin
    /usr/sbin/arpd
    /usr/sbin/bridge
    /usr/sbin/cbq
    /usr/sbin/ctstat
    /usr/sbin/devlink
    /usr/sbin/genl
    /usr/sbin/ifcfg
    /usr/sbin/ifstat
    /usr/sbin/ip
    /usr/sbin/lnstat
    /usr/sbin/nstat
    /usr/sbin/routef
    /usr/sbin/routel
    /usr/sbin/rtacct
    /usr/sbin/rtmon
    /usr/sbin/rtpr
    /usr/sbin/rtstat
    /usr/sbin/ss
    /usr/sbin/tc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    二、ip命令使用帮助

    2.1 ip命令的help帮助信息

    [root@jeven ~]# ip --help
    Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
           ip [ -force ] -batch filename
    where  OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
                       tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
                       netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |
                       vrf }
           OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                        -h[uman-readable] | -iec |
                        -f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |
                        -4 | -6 | -I | -D | -B | -0 |
                        -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
                        -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
                        -rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2.2 ip命令使用帮助

    • ip命令语法
    ip(选项)(对象)
    Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
           ip [ -force ] -batch filename
    
    • 1
    • 2
    • 3
    • ip命令对象介绍
    OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
           tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
           netns | l2tp | macsec | tcp_metrics | token }
           
    -V:显示指令版本信息;
    -s:输出更详细的信息;
    -f:强制使用指定的协议族;
    -4:指定使用的网络层协议是IPv4协议;
    -6:指定使用的网络层协议是IPv6协议;
    -0:输出信息每条记录输出一行,即使内容较多也不换行显示;
    -r:显示主机时,不使用IP地址,而使用主机的域名。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • ip命令选项介绍
    OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
            -h[uman-readable] | -iec |
            -f[amily] { inet | inet6 | ipx | dnet | bridge | link } |
            -4 | -6 | -I | -D | -B | -0 |
            -l[oops] { maximum-addr-flush-attempts } |
            -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
            -rc[vbuf] [size] | -n[etns] name | -a[ll] }
            
    网络对象:指定要管理的网络对象;
    具体操作:对指定的网络对象完成具体操作;
    help:显示网络对象支持的操作命令的帮助信息。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    三、查看网络信息

    3.1 显示当前网络接口信息

    显示当前网络接口信息

    [root@master ~]# ip addr show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 3e:85:b4:65:29:5a brd ff:ff:ff:ff:ff:ff
        inet 192.168.3.141/24 brd 192.168.3.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
        inet6 fd58:bc95:d4fb::6bd/128 scope global noprefixroute dynamic
           valid_lft 41513sec preferred_lft 41513sec
        inet6 fd58:bc95:d4fb:0:639d:3714:f9ef:bcf9/64 scope global noprefixroute
           valid_lft forever preferred_lft forever
        inet6 fe80::8c51:e8b9:1007:68ae/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    3.2 显示网络设备运行状态

    使用以下命令,显示网络设备运行状态。

    [root@master ~]# ip link list
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        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 state UP mode DEFAULT group default qlen 1000
        link/ether 3e:85:b4:65:29:5a brd ff:ff:ff:ff:ff:ff
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.3 显示详细设备信息

    使用以下命令,显示网卡的详细信息。

    [root@master ~]#  ip -s link list
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        RX: bytes  packets  errors  dropped overrun mcast
        592        8        0       0       0       0
        TX: bytes  packets  errors  dropped carrier collsns
        592        8        0       0       0       0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 3e:85:b4:65:29:5a brd ff:ff:ff:ff:ff:ff
        RX: bytes  packets  errors  dropped overrun mcast
        129963605  1427572  0       19748   0       0
        TX: bytes  packets  errors  dropped carrier collsns
        78253987   319575   0       0       0       0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3.4 查看路由表

    • 显示核心路由表
    [root@master ~]# ip route list
    default via 192.168.3.254 dev eth0 proto static metric 100
    192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.141 metric 100
    
    • 1
    • 2
    • 3
    • 查看当前路由表信息
    [root@master ~]# ip route show
    default via 192.168.3.254 dev eth0 proto static metric 100
    192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.141 metric 100
    
    • 1
    • 2
    • 3

    3.5 查看ARP缓存

    查看ARP缓存

    [root@master ~]# ip neighbour show
    192.168.3.190 dev eth0 lladdr d2:a0:fc:9d:f1:db STALE
    192.168.3.174 dev eth0 lladdr 9a:1f:bc:b6:cf:20 STALE
    192.168.3.168 dev eth0 lladdr 50:2b:73:dc:5d:d5 REACHABLE
    192.168.3.143 dev eth0 lladdr d6:6c:02:9b:8e:a3 REACHABLE
    192.168.3.238 dev eth0 lladdr 8c:7a:3d:64:ea:50 STALE
    192.168.3.254 dev eth0 lladdr 7c:10:c9:db:21:58 REACHABLE
    192.168.3.142 dev eth0 lladdr ae:5a:c7:0c:8c:1a REACHABLE
    fe80::981f:bcff:feb6:cf20 dev eth0 lladdr 9a:1f:bc:b6:cf:20 STALE
    fe80::a067:28ff:feff:a86f dev eth0 lladdr a2:67:28:ff:a8:6f router STALE
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    [root@master ~]# ip neighbour list
    192.168.3.190 dev eth0 lladdr d2:a0:fc:9d:f1:db STALE
    192.168.3.174 dev eth0 lladdr 9a:1f:bc:b6:cf:20 STALE
    192.168.3.168 dev eth0 lladdr 50:2b:73:dc:5d:d5 REACHABLE
    192.168.3.143 dev eth0 lladdr d6:6c:02:9b:8e:a3 REACHABLE
    192.168.3.238 dev eth0 lladdr 8c:7a:3d:64:ea:50 STALE
    192.168.3.254 dev eth0 lladdr 7c:10:c9:db:21:58 STALE
    192.168.3.142 dev eth0 lladdr ae:5a:c7:0c:8c:1a REACHABLE
    fe80::981f:bcff:feb6:cf20 dev eth0 lladdr 9a:1f:bc:b6:cf:20 STALE
    fe80::a067:28ff:feff:a86f dev eth0 lladdr a2:67:28:ff:a8:6f router STALE
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.6 获取主机所有网络接口

    使用以下命令,获取主机所有网络接口。

    [root@master ~]# ip link | grep -E '^[0-9]' | awk -F: '{print $2}'
     lo
     eth0
    
    • 1
    • 2
    • 3

    3.7 提取本地IP地址

    使用ip命令,提取本地网卡IP地址。

    [root@master ~]# ip addr show | grep 'inet ' | awk '{print $2}' | awk -F/ '{print $1}'
    127.0.0.1
    192.168.3.141
    
    • 1
    • 2
    • 3

    四、设置网卡IP地址

    4.1 启用或停止网卡

    使用以下命令,启用或停止网卡。

    ip link set <interface> up/down
    
    • 1

    4.2 设置默认网关

    使用以下命令设置默认网卡地址,为网关地址,为网络接口。

    ip route add default via <gateway_ip> dev <interface>
    
    • 1

    4.3 新增网卡地址

    使用以下命令,给eth0网卡,新增ip地址。

     ip addr add 192.168.1.100/24 dev eth0
    
    • 1

    查看新增的IP地址,注意新增的IP地址是临时生效,要长久生效,修改网卡配置文件或者使用nmcli命令。

    ip add show
    
    • 1

    在这里插入图片描述

    4.4 删除新增网卡的IP地址

    使用以下命令,删除新增网卡IP地址。

    ip addr del 192.168.1.100/24 dev eth0
    
    • 1

    4.5 删除默认网关

    使用以下命令,删除默认网关。

     ip route del default
    
    • 1

    五、管理路由表

    5.1 新增路由表

    使用以下命令,新增路由表。

    ip route add 192.168.80.0/24 via 192.168.1.1
    
    • 1

    查看路由表信息。

    [root@master ~]# ip route show
    default via 192.168.3.254 dev eth0 proto static metric 100
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
    192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.141 metric 100
    192.168.80.0/24 via 192.168.1.1 dev eth0
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5.2 删除路由表条目

    使用以下命令,删除路由表条目。

     ip route del 192.168.80.0/24 via 192.168.1.1
    
    • 1

    检查路由表中,该条目是否已删除。

    [root@master ~]# ip route show
    default via 192.168.3.254 dev eth0 proto static metric 100
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
    192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.141 metric 100
    
    • 1
    • 2
    • 3
    • 4

    5.3 永久设置静态路由方法

    进入网卡目录中

     cd /etc/sysconfig/network-scripts/
    
    • 1

    在网卡配置文件中,新建及编辑文件 route-eth0,内容如下:

    [root@server01 network-scripts]# vim route-eth0
    [root@server01 network-scripts]# cat route-eth0 
    172.16.10.0/24 via 192.168.3.254
    
    • 1
    • 2
    • 3

    重启network服务

    service network restart 
    
    • 1

    查看路由表

    [root@master network-scripts]# ip route
    default via 192.168.3.254 dev eth0 proto static metric 100
    172.16.10.0/24 via 192.168.3.254 dev eth0 proto static metric 100
    192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.141 metric 100
    
    • 1
    • 2
    • 3
    • 4

    六、ip命令总结

    以下是对ip命令使用的总结:

    1. ip命令是Linux下管理网络接口的主要工具之一,可以用于设置IP地址、路由表、网络接口等。
    
    2. ip命令的常见操作包括查看网络接口信息、设置IP地址、设置网络接口等。
    
    3. 查看网络接口信息的操作:
    - ip addr:显示所有网络接口的详细信息,包括接口名称、MAC地址、IPv4地址、IPv6地址等。
    - ip link:显示所有网络接口的名称和状态信息。
    
    4. 设置IP地址的操作:
    - ip addr add IP地址/掩码 dev 网络接口名:给指定网络接口添加IP地址。
    - ip addr del IP地址/掩码 dev 网络接口名:删除指定网络接口的IP地址。
    - ip -4 addr add IP地址/掩码 dev 网络接口名:给指定网络接口添加IPv4地址。
    - ip -6 addr add IPv6地址/掩码 dev 网络接口名:给指定网络接口添加IPv6地址。
    
    5. 设置网络接口的操作:
    - ip link set 网络接口名 up/down:设置指定网络接口的状态为up或down。
    - ip link set 网络接口名 name 新名称:给指定网络接口修改名称。
    - ip link set 网络接口名 mtu MTU值:设置指定网络接口的最大传输单元大小。
    - ip route add 目标地址/掩码 via 网关 dev 网络接口名:添加路由规则,指定目标地址走指定的网关。
    
    6. 其他常用操作:
    - ip neigh:显示ARP缓存表。
    - ip route:显示和管理路由表。
    - ip rule:显示和管理路由策略。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
  • 相关阅读:
    思考-贪心算法
    北斗卫星:助力森林病虫害防治监测的革新技术
    IDEA 报错:Process terminated【已解决】
    Java反序列化基础篇-JDK动态代理
    入行10年后,我总结了这份FPGA学习路线
    Docker浅尝
    Spark读取多目录
    Pycharm项目使用pyinstalle打包过程中问题及解决方案
    JSP上传文件 2
    深入解析Rivest Cipher 4:理论与实践
  • 原文地址:https://blog.csdn.net/jks212454/article/details/133774168