Linux:查看网络信息和网络监控命令。

2023-05-16

ifconfig

该命令用于查看机器挂载的网卡情况。

使用方式

  • ifconfig -a

命令输出

可见机器有两个网卡,一个时eth0,另一个是本地回环虚拟网卡。

另外,iproute2软件包含一个强大的网络配置工具ip,它是升级版的ifconfig命令,提供了更多的高级功能。

ping

ping命令是用于检测网络故障的常用命令,可以用来测试一台主机到另外一台主机的网络是否连通。

使用方式

  • ping www.baidu.com

命令输出

telnet

telnet是TCP/IP协议族的一员,是网络远程登录服务的标准协议,帮助用户在本地计算机上连接远程主机。

使用方式

  • telnet IP PORT

命令输出

从输出中可以看到,使用telnet协议可以直接连接Redis端口,并发送Redis命令。

nc

nc是NetCat的简称,在网络调试工具中享有“瑞士军刀”的美誉,此命令功能丰富、短小精悍、简单实用,被设计成一款易用的网络工具,可通过TCP/UDP传输数据。同时,它是一款网络应用调试分析器,因为它可以根据需要创建各种类型的网络服务和连接,在调试RESTful服务时,经常会出现不可预期的结果,在这种情况下可以使用nc模拟启动服务器,把HTTP客户端连接到nc上,在nc上会打印出RESTful服务提供的所有参数,然后一一检查参数,找到问题。

当然,它也可用于传输二进制或者文本文件。

传输文件端

接收文件端

mtr

mtr命令式Linux系统中的网络连通性测试工具,也可以用来检测丢包率。

使用方式

  • mtr -r sina.com

命令输出

其中的第2列为丢包率,可以用来判断网络中两台机器的连通质量。

nslookup

这是一款检测网络中DNS服务器能否正确解析域名的工具命令,并且可以输出。

使用方式

  • nslookup sina.com

命令输出

从输出中可以看到,sina.com域名被正确解析到IP地址66.102.251.33。

traceroute

traceroute可以提供从用户的主机到互联网另一端的主机的路径,虽然每次数据包由同一出发点到达同一目的地的路径可能会不一样,但通常来说大多数情况下路径是相同的。

使用方式

  • traceroute sina.com

命令输出

在输出中记录按序列号从1开始,每个记录代表网络一跳,每跳一次表示经过一个网关或者路由;我们看到每行有是哪个时间,单位是毫秒,指的是这一跳需要的时间。

sar

sar是一个多功能的监控工具,使用简单,不需要管理员权限,可以输出每秒的网卡存取速度,适合线上排查问题时使用。

使用方式

  • sar -n DEV 1 1

命令输出

从输出中可以看到网卡的读写速度和流量,在应急过程中可以用来判断服务器是否上量。

此命令除了可以用于查看网卡的信息,还可以用来收集如下服务的状态信息。

  • -A:所有报告的总和。
  • -u:CPU利用率。
  • -v:进程、I节点、文件和锁表状态。
  • -d:硬盘的使用报告。
  • -r:没有使用的内存页面和硬盘快。
  • -g:串口I/O的情况。
  • -b:缓冲区的使用情况。
  • -a:文件的读写情况。
  • -c:系统的调用情况。
  • -R:进程的活动情况。
  • -y:终端设备的活动情况。
  • -w:系统的交换活动。

netstat

此命令显示网络连接、端口信息等,另外一个命令ss与netstat命令类似,不再单独介绍。

根据进程查找端口

根据进程名查找进程ID

  • ps -elf | grep 进程

输出

获得进程ID为2862。

根据进程ID查找进程开启的端口

  • netstat -nap | grep 2862

输出

获取监听端口为8080。

根据端口查找进程

根据使用端口的进程号

  • netstat -nap | grep 8080

输出

获得进程ID为2862。

根据进程ID查找进程的详细信息

  • ps -elf | grep 2862

输出

iptraf

iptraf是一个实时监控网络流量的交互式的彩色文本屏幕界面。它监控的数据比较全面,可以输出TCP连接、网络接口、协议、端口、网络包大小等信息,但是耗费的系统资源比较多,且需要管理员权限。

使用方式

  • sudo iptraf

在进入主界面之前可以选择不同的选项,在不同的选项下可以查看不同维度的网络信息。

tcpdump

tcpdump是网络状况分析和跟踪工具,是可以用来抓包的实用命令,使用前需要对TCP/IP有所熟悉,因为过滤使用的信息都是TCP/IP格式。

显示来源IP或者目的IP为192.168.1.102的网络通信

  • sudo tcpdump -i eth0 host 192.168.1.102

显示去往192.168.1.102的所有FTP会话信息

  • sudu tcpdump -i eth1 'dst 192.168.1.102 and (port 21 or 20)'

显示去往192.168.1.102的所有HTTP会话信息

  • sudu tcpdump -ni eth0 'dst 192.168.1.102 and tcp and port 8080'

nmap

扫描某一主机打开的端口及端口提供的服务信息,通常用于查看本机有哪些端口对外提供服务,或者服务器有哪些端口对外开放。

使用方式

  • nmap -v -A localhost

从上面的输出中可以看到,有如下端口对外提供服务。

  • Discovered open port 22/tcp on 127.0.0.1
  • Discovered open port 8080/tcp on 127.0.0.1
  • Discovered open port 25/tcp on 127.0.0.1
  • Discovered open port 3306/tcp on 127.0.0.1
  • Discovered open port 631/tcp on 127.0.0.1

其中,8080是Vesta发号器对外提供的服务,3306是MySQL对外提供的服务。

ethtool

ethtool用于查看网卡的配置情况。

使用方式

  • ethtool 网卡名称

命令输出

输出模型中包含1000baseT/Full,所以eth0网卡为千兆网卡。

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

Linux:查看网络信息和网络监控命令。 的相关文章

  • 每个进程每个线程的时间量

    我有一个关于 Windows 和 Linux 中进程和线程的时间量子的问题 我知道操作系统通常为每个线程提供固定的时间量 我知道时间量根据前台或后台线程而变化 也可能根据进程的优先级而变化 每个进程有固定的时间量吗 例如 如果操作系统为每个
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • Linux shell 脚本中的 while 循环超时

    这工作正常 无限循环 while TRUE do printf done 我在尝试着timeout this while loop与timeout命令 所有这些都不起作用 timeout 5 while TRUE do printf don
  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • 嵌入式Linux poll()不断返回

    我有一个特别的问题 当我知道没有什么可读时 民意调查不断返回 因此设置如下 我有 2 个文件描述符 它们构成fd设置民意调查监视 一种用于引脚从高到低的变化 GPIO 另一个用于代理输入 代理输入出现问题 处理的顺序是 启动main函数 然
  • ansible 重新启动 2.1.1.0 失败

    我一直在尝试创建一个非常简单的 Ansible 剧本 它将重新启动服务器并等待它回来 我过去在 Ansible 1 9 上有一个可以运行的 但我最近升级到 2 1 1 0 并且失败了 我正在重新启动的主机名为 idm IP 为 192 16
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while

随机推荐