iproute家族命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iproute家族命令相关的知识,希望对你有一定的参考价值。

参考技术A 1、iproute家族命令中常用的有:ip 和 ss 命令。

    安装包名为:iproute-3.10.0-87.el7.x86_64       

2、ip 命令

ip - show / manipulate routing, devices, policy routing and tunnels .查询/管理路由表、设备、策略路由等;

ip [ OPTIONS ] OBJECT COMMAND | help

OBJECT := link | address | route | netns

OBJECT:

        2.1     ip-address - protocol address management

                     ip [ OPTIONS ] address COMMAND | help

                      ip address add | change | replace IFADDR dev IFNAME  [label  LABEL] : 为接口IFNAME添加IP地址,一个接口可以添加多个地址

                    ip addr  show|list    [IFaceName]    ##查看接口的IP地址信息

                     ip addr del  IFADDR  dev IFNAME 

                    ip addr flush  [IFNAME]    ##清空接口上的IP地址

                    eg:   

                    >>> ip addr add 10.10.10.10/24 dev ens193      ##为接口添加第一个IP地址

                    >>> ip addr list ens193                               

                            4: ens193: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000

                            link/ether 00:50:56:8a:11:66 brd ff:ff:ff:ff:ff:ff

                            inet 10.10.10.10/24 scope global ens193

                           valid_lft forever preferred_lft forever

                            inet6 fe80::68d6:ac29:3a99:e0fd/64 scope link

                              valid_lft forever preferred_lft forever

                    >>> ip addr add 10.10.20.20/24 dev ens193    ##为接口添加第二个IP地址

                    >>> ip addr show ens193

                             4: ens193: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000

                            link/ether 00:50:56:8a:11:66 brd ff:ff:ff:ff:ff:ff

                            inet 10.10.10.10/24 scope global ens193

                            valid_lft forever preferred_lft forever

                            inet 10.10.20.20/24 scope global ens193

                           valid_lft forever preferred_lft forever

                            inet6 fe80::68d6:ac29:3a99:e0fd/64 scope link

                           valid_lft forever preferred_lft forever

                注意: ifconfg 命令无法查到第二个及以上的IP地址信息,可以通过给接口添加label标识解决:

                        >>> ip addr add  10.10.40.40/24 dev ens193 label  ens193:4    ##给接口添加IP的同时添加标签

                        >>> ip addr del 10.10.30.30/24 dev ens193    ##删除接口ens193上的IP地址10.10.30.30/24

                        >>> ip addr flush ens161

                        >>> ip addr list  ens161

                                    2: ens161: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000

                                    link/ether 00:50:56:8a:09:96 brd ff:ff:ff:ff:ff:ff

        2.2 ip  route 

            ip-route - routing table management  : 管理路由表

            ip route add | del | change | append | replace   ROUTE

            ip route  show|list   : 查看路由表

            ip route flush  : 清空路由表

              ip route add: 添加路由

                        格式: ip route add TARGET/NETMASK via  NEXTHOP  dev  IFACE  [src  IPADDR]

                                eg:   >>> ip route add 172.16.100.0/24 via 10.10.10.250 dev ens193

            ip route del :  删除路由表

                        格式: ip route del  TARGET/NETMASK   [via  NEXTHOP ]

                                eg:  >>>ip route del 172.16.100.0/24

            >>> ip route flush  192.168/16     ##清空192.168/16 网段的路由

            >>> ip route flush      ##清空路由表

            >>> ip route show       ##查看路由表  ,route -n  /netstat -rn 

                    default via 192.168.0.1 dev ens33

                    192.168.0.0/24 dev ens33 proto kernel scope link src 192.168.0.130 metric 100

                    192.168.200.0/24 dev ens37 proto kernel scope link src 192.168.200.129 metric 101

     2.3 ip  link: Manage and display the state of all network  interfaces 

            ip link:   display the state of all network  interfaces ;                      

            ip link show dev IFACE : Display information only for device IFACE

            ip -s link : Display interface statistics /显示接口数据统计

            ip  link set : Alter the status of the interface/改变接口状态

                        ip link set IFACE up : Bring IFACE online / 启用接口

                        ip link set IFACE down : Bring IFACE offline /禁用接口

                        ip link set IFACE mtu 9000 : Set the MTU on IFACE to 9000 /设置mtu值

                       ip link set IFACE promisc on :Enable promiscuous mode for IFACE /启用接口IFACE的混杂模式

3、ss命令: another utility to investigate sockets.

        ss [options] [ FILTER ]

                -t, --tcp:Display TCP sockets.

                -u, --udp:Display UDP sockets.

                -w, --raw:Display RAW sockets.

                -n, --numeric:Do not try to resolve service names./数字显示结果

                -a, --all:Display both listening and non-listening (for TCP this means established                             connections) sockets.

                -l, --listening:Display only listening sockets (these are omitted by default).

                -o, --options:Show timer information.

                -e, --extended:Show detailed socket information

                -m, --memory:Show socket memory usage.

                -p, --processes:Show process using socket

                [ state STATE-FILTER ] [ EXPRESSION ]

                        STATE-FILTER:

                                LISTEN : 监听

                                ESTABLISHED: 建立的连接

                                FIN_WAIT_1

                                FIN_WAIT_2

                                SYN_SENT

                                SYN_RECV

                                CLOSED

                                closing

                                 all

                                 ......

            常用查询组合:

                ss -nultp 

                ss -tan

                ss -uan

eg:>>>ss -nutp  ##选出已建立的连接

        Netid  State      Recv-Q Send-Q                                    Local Address:Port                                                  Peer Address:Port

        tcp    ESTAB      0      64                                        10.233.49.250:22                                                      10.14.5.169:49246              users:(("sshd",pid=1659,fd=3))

        tcp    ESTAB      0      0                                        10.233.49.250:22                                                      10.14.5.169:60216              users:(("sshd",pid=1749,fd=3))

>>>ss -t state  established   ## 选出处于已建立的TCP连接

>>>ss -o state established '( dport = :ssh or sport = :ssh )'  ##选出已建立的ssh 连接

Linux相关网络命令

1、简述osi七层模型和TCP/IP四层模型

OSI七层模型

TCP/IP四层模型

2、简述iproute家族命令

ip命令:

  ip [OPTIONS] OBJECT {COMMAND|help}

  ip link:network device configuration.

    ip link set DEV:修改设备属性

      1) up或down:启用或停用接口;示例,ip link set eth1 up/down

      2) multicast on 或 multicast off:启用或禁用多播功能;示例,ip link set eth1 multicast on/off

      3) name NAME:重命名接口;示例,ip link set eth1 name eth666

      4) mtu NUMBER:设置MTU的大小,默认为1500;(MTU,最大传输单元,某一层通信协议上所能承受的最大数据包大小;MTU越大承载的有效数据包就越大)

      5) netns PID:将指定的网卡移动到指定的虚拟网络(本地系统将看不到这块网卡)

         示例,ip netns add mynet ( 构建虚拟网络mynet )

            ip link set eth1 netns mynet ( 将接口eth1添加到虚拟网络mynet )

            ip netns exec mynet ip link show ( 查看虚拟网络mynet的接口信息 )

            ip netns del mynet ( 删除虚拟网络 )

    ip link show/list:显示设备属性

    ip link help:显示简要使用帮助

  ip netns:manage network namespaces.

  释义:netns是linux中提供网络虚拟化的一个项目,使用netns可以在本地虚拟化出多个网络环境,每个虚拟网络空间都独立于当前系统的网络空间,其中的网络设备及iptables规则等都是独立的。

    1) ip netns list:列出所有的netns

    2) ip netns add NAME:创建指定的netns

    3) ip netns del NAME:删除指定的netns

    4) ip netns exec NAME COMMAND:在指定的netns中运行命令

    5) ip netns help:显示简要使用帮助
    6) exit:退出虚拟网络

  ip address:protocol address management.

    1) ip address add IFADDR dev IFACE:给指定网卡添加多一个IP;示例,ip address add 192.168.10.2/24 dev eth1

        [label NAME]:为额外添加的地址指明接口别名;示例,ip address add 10.1.1.10/8 dev eth1 label eth1:0

        [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;

        [scope SCOPE_VALUE]:global:全局可用;link:接口可用;host:仅本机可用

    2) ip address delete IFADDR dev IFACE:删除接口的ip;示例,ip address delete 10.1.1.10/8 dev eth1

    3) ip address list/show [IFACE]:显示接口的地址信息;示例,ip address show,ip address list eth1

    4) ip address flush dev IFACE:清空接口所有的地址信息;示例,ip address flush dev eth1

  ip route:routing table management.

    1) ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]:添加路由信息;
      示例,ip route add 10.0.2.0/24 via 10.0.1.11 (到达10.0.2.0/24网络的下一跳地址为10.0.1.11)
         ip route add 10.0.2.0/24 dev eth0 (通过接口eth0到达10.0.2.0/24网络)
         ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 (到达192.168.1.0/24网络须通过接口eth1的下一跳地址10.0.0.1)

         ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 src 10.0.10.100 (通过eth1接口的10.0.10.100地址,经下一跳10.0.0.1到达网络192.168.1.0/24;此条路由的网关是本机)

         ip route add default via 172.16.0.1 dev eth0 (添加默认路由,通过eth0接口经下一跳172.16.0.1出去)

    2) ip route del:删除路由信息

      示例,ip route delete 192.168.1.0/24

         ip route show:显示路由信息

    3) ip route flush - flush routing tables

      示例,ip route flush 192.168.1.0/24

    4) ip route get:获取路由信息

      示例,ip route get 192.168.0.0/24
ss命令:

  获取socket信息,显示和netstat类似的内容,但比netstat更高效。

  ss [options] [FILTER]

  options:

    -t:TCP协议的相关连接

    -u:UDP相关的连接

    -w:仅显示raw套接字的连接

    -l:显示处于监听状态的连接

    -a:所有状态的连接

    -n:不解析服务名称

    -p:显示使用socket的进程

    -e:显示详细的信息

    -m:内存用量
    -s:显示socket使用概况

    -o:计时器信息

  FILTER:
    =[state TCP-STATE] [EXPRESSION]

    TCP-STATE包括:

        LISTEN:监听

        ESTABLISEHD:建立的连接

        FIN_WAIT_1:等待远程TCP连接中断请求

        FIN_WAIT_2:从远程TCP等待连接中断请求

        SYN_SENT:客户端发送请求连接

        SYN_RECV:服务端接收请求连接

        CLOSED:没有任何连接

        示例,ss -tan state ESTABLISHED

    EXPRESSION:

        dport=

        sport=

        示例,ss -tan \'( dport = :22 or sport = :22 )\' (注意,此命令空格不能省略)

3、详细说明进行管理工具htop、vmstat等相关命令,并举例

htop

  基于文本模式的、交互式的进程查看器,主要用于控制台或shell中,比top命令更加人性化,可以说是top的高级版。Linux系统默认不安装htop,需要自行安装,可以登录官网下载安装或配置epel源,通过yum install htop安装。

  htop的使用:

    [root@happiness ~]# htop

             

    总共分成四个区:

    1)上左区:显示CPU(1、2表示CPU的核数)、物理内存和交换分区的信息;

    2)上右区:显示任务数量(tasks)、平均负载(load average)和系统从开机到现在的运行时长;

    3)进程区域:动态显示当前系统中的所有进程;

    4)操作提示区:显示当前界面中F1~F10功能键中定义的快捷功能。

  htop常用功能键:

    F1 : 查看htop使用说明

    F2 : 设置

    F3 : 搜索进程

    F4 : 过滤器,按关键字搜索

    F5 : 显示树形结构

    F6 : 选择排序方式

    F7 : 减少nice值,这样就可以提高对应进程的优先级

    F8 : 增加nice值,这样可以降低对应进程的优先级

    F9 : 杀掉选中的进程

    F10 : 退出htop

 

    / : 搜索字符

    h : 显示帮助

    l :显示进程打开的文件

    u :显示所有用户,并可以选择某一特定用户的进程

    s : 将调用strace追踪进程的系统调用

    t : 显示树形结构

 

    H :显示/隐藏用户线程

    I :倒转排序顺序

    K :显示/隐藏内核线程

    M :按内存占用排序

    P :按CPU排序

    T :按运行时间排序

 

    上下键或PgUP,PgDn:移动选中进程

    左右键或Home,End:移动列表

    Space(空格):标记/取消标记一个进程

  htop常用选项:

    -d #:指定延迟时间间隔

    -u UserName:仅显示指定用户的进程

    -s COLUME:以指定字段进行排序

vmstat

  指定时间间隔内,动态监控系统的虚拟内存、进程、CPU活动的整体情况,属于低开销工具。命令格式:vmstat [options] [ delay [count] ]。

    delay:刷新时间间隔,如果不指定,只显示一条结果;

    count:刷新次数;如果不指定count但指定了delay,这时会一直刷新。

  常用的options选项:

    -a:显示活跃和非活跃内存

    -f:显示从系统启动至今的fork数量 

    -m:显示slab信息(slab,Linux的内存分配机制)

    -n:只在开始时显示一次各字段名称

    -s:显示内存相关统计信息及多种系统活动数量

    -d:显示磁盘相关统计信息

    -p:显示指定磁盘分区统计信息

    -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(bytes)。默认单位为K(1024 bytes)

    -V:显示vmstat版本信息

  示例:

    默认显示1次摘要信息

        

    间隔2秒刷新1次摘要,总共显示3次

         

    关键字释义:

    

4、使用while实现ping 192.168.0.0/24网络

#!/bin/bash
declare -i up=0
declare -i down=0
declare -i i=0
declare -i j=1
trap \'interrupt_trap\' INT

interrupt_trap() {
    echo "QUIT"
    echo "There are $up ips being up."
    echo "There are $down ips being down."
    exit 1
}

while [ $i -le 255 ]; do
    while [ $j -le 255 ]; do
        if [ $i -eq 255 -a $j -eq 255 ]; then
            break
        fi
        ping -W1 -c1 192.168.$i.$j &> /dev/null 
        if [ $? -eq 0 ]; then
            echo "192.168.$i.$j is up."
            let up++
        else
            echo "192.168.$i.$j is down."
            let down++
        fi
        let j++
    done
    j=0
    let i++
done

echo "There are $up ips being up."
echo "There are $down ips being down."

以上是关于iproute家族命令的主要内容,如果未能解决你的问题,请参考以下文章

iproute家族命令

iproute家族命令之ip

OSI七层模型和TCP/IP五层模型iproute家族命令管理工具介绍

Linux网络属性配置“三大家族”(ifcfgiproute配置文件)

linux 网络命令nettools 和iproute2比较

Linux网络