第十章 网络工具--基于Linux3.10

2023-10-26

在测试io设备时,常常会用到iostat、iotop工具,在查看内存时常常用到vmstat、free、slabtop工具,在查看调度器时,常常使用mpstat、top以及ps工具。这里来说说网络相关的工具,有性能分析、网络管理、状态查看类工具。下面的一张图显示了网络相关工具和其作用的层次关系。


图10.1 网络工具

由上至下的来看该这些工具。

 ss

ss是iproute2包提供的工具,该包此外还支持非常重要的ip命令,ip命令设计的初衷是替代ifconfig(net-tools工具包,net-tools支持网络接口配置,路由表以及ARP表的管理),但是目前pc和服务器上通常对两种工具都支持,但是嵌入式环境对ip的支持需要开发者完成移植工作。ss工具由于导出套接字的统计信息,和图中的netstat作用类似,但是可以显示更过的TCP和网络状态信息。ss-h可以查看帮助信息。

1、查看所有打开的tcp端口使用如下命令:

ss-tnap

2、可以使用-4或者-6参数指定tcp端口是IPv4还是IPv6:

ss-tnap4

3、查看udp使用如下命令:

ss-unap

4、统计信息使用如下命令:

ss-s

例如如下是该命令的输出:

Total:684 (kernel 0)

TCP:  111 (estab 75, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0

 

TransportTotal     IP        IPv6

*        0         -        -        

RAW      0         0        0        

UDP      43        29       14       

TCP      111       96        15      

INET     154       125       29      

FRAG     0         0        0  

5、还可以使用连接状态过滤选项如下:

 ss-o state established '( dport = :ssh or sport = :ssh )'

netstat工具

 netstat[-vWnNcaeol] [<Socket> ...]

      netstat { [-vWeenNac] -i | [-cWnNe] -M | -s }

路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IPTCPUDPICMP协议相关的统计数据,一般用于检验本机各端口网络连接情况。

netstress

netstress是一个DDos和网络压测工具,DDos(分布式拒绝服务),对电子商务网站而言,如果这种攻击在双十一对其攻击,目前其没有很好的方法处理。测试的攻击类型包括SYN,ACK,FIN,UDP,ICMP,HTTP,Mixed,DNS。

netperf参考

netperf网络性能检测工具-嵌入式

iperf

iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能。Iperf具有多种参数和UDP特性,可以根据需要调整。Iperf可以报告带宽,延迟抖动和数据包丢失。

1)TCP测试

服务器执行:./iperf -s -i 1 -w 1M 这裏是指定Linux,如果是 iperf -s则是windows平台下命令。默认包大小为8kbyte/s

客户端执行:./iperf -c host -i 1-w 1M

其中-w表示TCP window size,host需替换成服务器地址。

2)UDP测试

服务器执行:./iperf -u -s

客户端执行:./iperf -u -c10.255.255.251 -b 900M -i 1 -w 1M -t 60

其中-b表示使用多少带宽,1G的线路你可以使用900M进行测试。

iptraf

网络流量实时监控工具,功能比nload更强大,可以监控所有的流量,IP流量,按协议分的流量,还可以设置过滤器等

源码安装

wget ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.0.tar.gz

tarzxvf iptraf-3.0.0.tar.gz

cd iptraf-3.0.0

./Setup

直接运行 iptraf,后有一个如下的菜单提示,然后进入相关的选项查看

 IP流量监视(IP traffic monitor)

网络接口的一般信息统计(General InterfaceStatistics)

网络接口的细节信息统计(Detailed InterfaceStatistics)

统计分析(StatisticalBreakdowns)

局域网工作站统计(LAN StationStatistics)

过滤器(Filters...)

配置(Configure...)

退出(Exit)

TcpDump

可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

nicstat

网络流量统计实用工具

nicstat使用

在解压包目录nicstat-1.92内,有个nicstat.sh脚本.

查看网卡速度(-l):

[root@CentOS192 nicstat-1.92]#./nicstat.sh -l

Int      Loopback  Mbit/s Duplex State

lo            Yes        -  unkn    up

eth0           No     1000  full    up

间隔3秒,查看2次结果(留意%Util和Sat):

[root@centos192nicstat-1.92]# ./nicstat 3 2

   Time     Int   rKB/s   wKB/s  rPk/s   wPk/s    rAvs   wAvs %Util    Sat

06:19:46       lo   0.72    0.72    2.15   2.15   341.2   341.2 0.00   0.00

06:19:46     eth0   0.89    0.15    1.37   0.92   660.4   163.6 0.00   0.00

   Time     Int   rKB/s   wKB/s  rPk/s   wPk/s    rAvs   wAvs %Util    Sat

06:19:49       lo   0.00    0.00    0.00   0.00    0.00    0.00 0.00   0.00

06:19:49     eth0   0.02    0.12   0.33    0.33   66.00  354.0  0.00   0.00

Time列:表示当前采样的响应时间.

lo and eth0 : 网卡名称.

rKB/s : 每秒接收到千字节数.

wKB/s : 每秒写的千字节数.

rPk/s : 每秒接收到的数据包数目.

wPk/s : 每秒写的数据包数目.

rAvs : 接收到的数据包平均大小.

wAvs : 传输的数据包平均大小.

%Util : 网卡利用率(百分比).

Sat : 网卡每秒的错误数.网卡是否接近饱满的一个指标.尝试去诊断网络问题的时候,推荐使用-x选项去查看更多的统计信息.

ethtool工具:

ethtool ethX /

ethtool –h //显示ethtool的命令帮助(help)

ethtool –i ethX //查询ethX网口的相关信息

ethtool –d ethX //查询ethX网口注册性信息

ethtool –r ethX //重置ethX网口到自适应模式

ethtool –S ethX //查询ethX网口收发包统计

ethtool –s ethX [speed10|100|1000]\ //设置网口速率10/100/1000M

[duplex half|full]\ //设置网口半/全双工

[autoneg on|off]\ //设置网口是否自协商

[port tp|aui|bnc|mii]\//设置网口类型

ip命令,对OBJECT 中的对象进行配置,命令功能很强大。源于iproute2工具,默认已安装,使用内核的Netlink机制和内核交互。

Usage: ip [ OPTIONS ]OBJECT { COMMAND | help }

      ip [ -force ] -batch filename

where  OBJECT :={ link | addr | addrlabel | route | rule | neigh | ntable |

                  tunnel | tuntap | maddr |mroute | mrule | monitor | xfrm |

                  netns }

      OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |

                   -f[amily] { inet | inet6 | ipx| dnet | link } |

                   -l[oops] {maximum-addr-flush-attempts } |

                   -o[neline] | -t[imestamp] |-b[atch] [filename] |

                   -rc[vbuf] [size]}

 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十章 网络工具--基于Linux3.10 的相关文章

  • 如何在 Python 中将列表变量传递给 subprocess.call 命令

    我有一个清单 apps apps append wq35a5huqlja45jsyukrpmwuiayovrmh apps append q7mimvgduueernwvw4y22t5huemykntw apps append pmudbp
  • 无法在 Linux 中阻止从命名管道 (FIFO) 读取

    很奇怪 我似乎无法完成这项工作 这是我的架构 我有一个命名管道 它将在永远运行 root读取器进程和多个应用程序编写器进程 读者进程必须是blocking当作家们在nonblocking 因此 这就是我在阅读器进程中所做的 该进程将运行ro
  • 如果执行 shell 失败,jenkins 构建不会失败

    作为构建过程的一部分 我运行 git commit 作为执行 shell 步骤 但是 如果工作区中没有任何更改 Jenkins 将导致构建失败 这是因为当没有要提交的更改时 git 返回错误代码 如果是这种情况 我想要么中止构建 要么将其标
  • Ansible 权限问题

    我正在尝试将当前用户添加到系统中的某个组 然后执行需要该组权限的命令 我的剧本是这样的 name Add this user to RVM group sudo true user state present name vagrant ap
  • 变量名称后面的“-”(破折号)在这里有什么作用?

    if n BASH o n ZSH VERSION then hash r 2 gt dev null fi 我在哪里可以找到这方面的参考资料 谢谢 a 内的变量 称为 参数扩展 搜索该词在在线手册中 https man cx bash h
  • Linux 上的最大子进程数

    下面的代码将产生尽可能多的子级 自己不会进一步fork 一旦父进程退出就会变成僵尸 父进程将产生多少个子进程 int main int argc char arg while fork gt 0 子进程的数量可以通过以下方式限制设置限制 2
  • Linux 上的 Chrome - 查询浏览器以查看打开了哪些选项卡?

    我在 Ubuntu Linux 上运行 Chromium 开源 chrome 版本 我可以编写一个程序来查看我打开了哪些选项卡吗 我想编写一个程序来监控我在事情上花费了多少时间 是否有命令行程序 某种调用 chromium browser
  • php.ini 更改,但在 Ubuntu 上无效

    我想更改 PHP 上传文件大小的限制 这是我的输出的一些信息phpinfo https www php net manual en function phpinfo php Configuration File php ini Path e
  • 从 Linux 内核模块的文件描述符获取文件名/路径?

    在Linux内核模块中 有没有一种方法可以从文件名 路径中获取文件名 路径 unsigned int fd 我知道这个答案 如何从内核模块内的文件描述符获取文件名 https stackoverflow com questions 8250
  • 获取后台进程的退出代码

    我有一个从我的主 bourne shell 脚本中调用的命令 CMD 该命令需要很长时间 我想修改脚本如下 作为后台进程并行运行命令 CMD CMD 在主脚本中 有一个循环每隔几秒监视生成的命令 该循环还向标准输出回显一些消息 指示脚本的进
  • c 中的分叉和管道过程

    所以我有一个项目要做 但我完全被难住了 我花了十个小时却一无所获 我并不是特别想要答案的代码 但是一些伪代码和正确方向的良好提示将有帮助 它分叉多个进程 k 命令行参数 通过管道连接 每个进程都连接到下一个进程 最后一个进程连接到第一个进程
  • 无法使用 sysctl 更改每个进程的最大打开文件数

    我的实际极限是1024 ulimit a core file size blocks c 0 data seg size kbytes d unlimited scheduling priority e 0 file size blocks
  • 为什么我的 Linux 应用程序引入了错误的 .so 库?

    我正在构建一个使用 NetCDF C 库的应用程序 并且 NetCDF 正在引入 HDF 4 库 然而 它正在拉动wrongHDF 4 库 我的应用程序的链接方式如下 apps1 intel bin icpc gxx name apps1
  • 使用 cmake 和 opencv 对符号“gzclose”的未定义引用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我尝试构建该项目 doppia https bitbucket org rodrigob doppia 但发生链接错误 我想这是一
  • “排序文件名 | uniq”不适用于大文件

    我可以从小文本文件中删除重复条目 但不能从大文本文件中删除重复条目 我有一个 4MB 的文件 文件的开头如下所示 aa aah aahed aahed aahing aahing aahs aahs aal aalii aalii aali
  • Bash 变量:区分大小写?

    Bash shell 脚本区分大小写吗 是可变的date与DATE 是的 它区分大小写 就像 UNIX 的其余部分一样 date and DATE是两个不同的变量 makefile and Makefile是两个不同的文件 h and H是
  • 为多线程 UDP 客户端执行“close ()”时套接字描述符未释放

    我在下面编写了 UDP 客户端 它基本上生成一个单独的线程来接收数据报 但是数据报仅在主线程中发送 现在 在 Linux 发行版上实例化 udpClient 1 UDP 客户端后按 ctrl D 实现退出循环 围绕 getline 调用 并
  • 查找系统日志最大消息长度

    大多数 Unix 程序员都会习惯由syslog h 并且许多实现 例如 glibc 对发送给它的 syslog 消息的大小没有真正的限制 但通常对侦听的应用程序有限制 dev log 我想知道是否有人知道如何找到系统日志的最大消息大小 或者
  • Linux 缓冲区溢出环境变量

    我一直在审查不同类型的缓冲区溢出 并遇到了一个我不记得为什么会发生的问题 下面的代码是我尝试执行缓冲区溢出的程序 include
  • /etc/php5/conf.d 文件夹中的 .ini 文件有什么用?

    我知道 ini 文件位于 etc php5 cli与 PHP 的 CLI 使用有关 文件位于 etc php5 fpm是关于 PHP 的 FastCGI FPM 方面 但是位于以下位置的 ini 文件又如何呢 etc php5 conf d

随机推荐

  • ipad怎么修改服务器,ipad怎么设置ipv6网络

    ipad怎么设置ipv6网络 内容精选 换一换 本文将为您介绍如何快速搭建IPv4网段或IPv6网段的VPC 以及搭建前的准备工作 IPv4 创建VPC及子网时 默认创建的网段为IPv4类型 IPv4网络无法访问Internet上的IPv6
  • 计算机组成原理实验四 微程序控制器实验报告

    我班算是几乎最后一个做实验的班级了 报告参考了一些朋友提供的数据加上一些自己的主观拙见 本人水平有限加之制作仓促难免有错误 望大家批评指正 4 1 微程序控制器实验 一 实验目的 1 掌握微程序控制器的组成原理 2 掌握微程序的编制 写入
  • 关于安装MinGw的问题

    前段时间电脑很卡 重装了系统 换了两条内存 电脑瞬间满血复活 不过重装各种东西就很麻烦了 安装个MinGW搞了我半天 所以今天记录一下怎么安装MinGW 1 哪下 MinGW w64GCC for Windows 64 32 bitshtt
  • Linux下配置java环境版本opencv

    安装gcc等编译环境 yum install gcc yum install python3 8 yum install cmake yum groupinstall Development Tools 去官方网站下载使用的压缩包4 5 0
  • nerf训练自己的数据,过程记录十分详细

    之前跑很多项目没有记录 后来再弄就不行了 这次特别记录一下 在梳理流程的同时希望给大家带来小小的帮助 我自己是在cuda11 2 windows环境下成功的 过程十分详细 有需要的朋友耐心看完 有问题可以评论区交流 首先 本文nerf是基于
  • Ubuntu 查看系统资源占用(CPU、内存、网络)

    系统监视器 CPU 内存 网络图 仅限当前桌面登录用户 gnome system monitor 查看内存占用 free h w 主要参数 b k m 分别以字节 KB MB 为单位显示内存使用情况 h 以合适的单位显示内存使用情况 最大为
  • SpringBoot+easypoi+vue导出word文档

    因为项目需求需要 临时写的有什么错误的地方望各位见谅 可以借鉴参考 easypoi依赖包
  • 在 Kylin 中实现异常值检测 UD(A)F

    本文讲解了时间序列数据异常值检测的基本概念和在 Kylin 中开发使用异常值检测 UDF 的方法 可以作为其他 UDF 开发的参考 通过在 Kylin 中移植 Hivemall 的 UDF 我们可以充分利用 Kylin 的优势 减少直接使用
  • TrafficMonitor安装报错

    由于找不到VCRUNTIME140 dll 无法继续执行代码 重新安装程序可能会解决次问题 解决方法 安装完 Visual Studio 2019后 就可以安装上了
  • STM32——一文完全读懂IIC通信

    文章目录 I2C基本概念 硬件线路 通信结构 I2C设备地址 I2C数据传输 I2C时钟速度和通信速度 I2C应答机制 I2C设备之间的冲突检测 I2C设备规格 主机读取数据 IIC通信过程 实际编程和应用 IO 口模拟 IIC 总线 常见
  • 服务器常用命令

    服务器常用命令 1 查看安装的软件 ps ef grep nginx 2 端口被占用 netstat anp grep 8801 2 2 通过程序名查询进程号 ps aux grep 程序名 2 3 通过进程号查询进程详细信息 ps ef
  • 【js】Object的常用方法

    Object assign target source 查看 Object entries 返回一个键值对数组查看 Object prototype toString call 查看
  • Redis的内存淘汰机制和删除策略

    Redis内存淘汰机制 Redis内存淘汰指的是用户存储的一些键被可以被Redis主动地从实例中删除 内存的淘汰机制的初衷是为了更好地使用内存 配置 我们可以通过配置redis conf中的maxmemory这个值来开启内存淘汰功能 这个值
  • 【Python函数】——sort,sorted

    1 sorted和sort的常规使用 2 关于自定义比较函数 3 试验 from functools import cmp to key ll 2 3 10 1 2 3 5 6 7 2 5 10 2 4 10 根据一个维度进行排序 这里根据
  • sqli-labs Less-25、25a(sqli-labs闯关指南 25、25a)

    目录 Less 25 Less 25a Less 25 GET 基于错误 您所有的OR AND都属于我们 字符串单引号 源码 本关主要将 or and 进行了大小写的过滤 将其换成空 如何绕过 or 和 and 过滤 一般性提供以下几种思路
  • 国内第一篇讲解减少卡顿的代码级详细文章

    原文链接 原文链接 系统网站应用出现过卡顿 但却不知道如何优化 国内第一篇讲如何减少卡顿的代码级别详细文章 也是性能优化系列文章中的一篇 欢迎点赞 关注 也欢迎对其中的内容进行评论 经常听人说 不要阻塞主线程 或者 减少长耗时 该如何做呢
  • SQL Server 数据分页查询

    最近学习了一下SQL的分页查询 总结了以下几种方法 首先建立了一个表 随意插入的一些测试数据 表结构和数据如下图 现在假设我们要做的是每页5条数据 而现在我们要取第三页的数据 数据太少 就每页5条了 方法一 select top 5 fro
  • 火星数字

    火星人是以 13 进制计数的 地球人的 0 被火星人称为 tret 地球人数字 1 到 12 的火星文分别为 jan feb mar apr may jun jly aug sep oct nov dec 火星人将进位以后的 12 个高位数
  • attr 'explicit_paddings',tensorflow迁移到安卓报错不能载入模型

    attr explicit paddings tensorflow迁移到安卓报错不能载入模型 Android Stdio中报错 Caused by java io IOException Not a valid TensorFlow Gra
  • 第十章 网络工具--基于Linux3.10

    在测试io设备时 常常会用到iostat iotop工具 在查看内存时常常用到vmstat free slabtop工具 在查看调度器时 常常使用mpstat top以及ps工具 这里来说说网络相关的工具 有性能分析 网络管理 状态查看类工