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家族命令的主要内容,如果未能解决你的问题,请参考以下文章
OSI七层模型和TCP/IP五层模型iproute家族命令管理工具介绍
Linux网络属性配置“三大家族”(ifcfgiproute配置文件)