ip
Ip工具可以查看当台主机的一些基本信息。
场景
- 查看基本信息: 查看网络接口、mtu等。
- 查看docker虚拟网络相关信息。
Ping
ping 是 Linux 下一个非常常用且基础的网络工具,用于测试网络连接的可达性。
场景
- 测试网络连通性: 判断本机是否能够到达目标主机。分别ping lo地址、本机对外地址、gateway地址、公网地址,可以一步一步的进行问题的排查。
- 测量网络性能: 查看RTT、丢包等信息,即数据包从发送到接收到回复所花费的时间。
- 域名解析验证: 当使用域名作为目标时,ping 命令会先解析域名为 IP 地址,可以间接验证 DNS 解析是否正常。
- 压测:ping 可以使用-f 进行Flood ping,可以配合-s(设置package size)来进行简单的对目标主机的压测。
Dig
Dig是 Linux 命令行下用于查询 DNS信息的强大工具。dig 允许用户直接与 DNS 服务器交互,查询各种 DNS 记录,并显示从服务器返回的详细信息。
场景
- 检查域名是否能够被解析: 这是dig最基本的功能,通过查询 A、AAAA、CNAME 等记录,可以确认域名是否在 DNS 系统中存在并指向正确的 IP 地址或别名。
- 查看DNS解析信息: 包括DNS解析时长、最大超时时间等。
- 检查指定的 DNS 服务器是否正常工作: 可以通过指定不同的 DNS 服务器进行查询,判断特定的 DNS 服务器是否响应查询或返回正确的结果。
- 检查DNS 记录是否正确传播: 在 DNS 记录更新后,可以使用 dig 查询不同的 DNS 服务器,检查新的记录是否已经在全球范围内生效。
- 查看DNS解析过程: DNS 缓存问题可能导致用户无法访问某些网站。使用 dig 的 +trace 选项可以帮助跟踪 DNS 解析过程,查找可能的缓存问题。
- 查看DNS策略是否生效: dig baidu.com的时候可以发现有两个ip地址,可以通过dig来查看DNS 配置策略状态。
nmap
namp是一个网络扫描工具,主要用于发现网络上的主机、探测开放的端口、识别运行的服务以及操作系统类型等。
场景
- 端口扫描: 扫描主机的端口,查看是否开放,可以指定全连接或半连接扫描。
- 网段范围的主机探测: 本质上是ping命令,但是可以指定范围,通过ip ranges来进行主机的存活探测。
- Flood Testing: 基本原理同ping。
- 暴力破解测试: 不细说。
- 检测远程主机OS信息(估测): 原理是根据一些网络协议信息进行os版本的推测。
netstat & ss
netstat
netstat 用于显示 Linux 系统上的网络连接、路由表、接口统计信息、伪装连接、多播成员关系等。它提供了一个实时的网络活动快照,对于监控网络状态、诊断网络问题以及了解系统上的网络配置非常有用。
ss
ss 是另一个用于显示 Linux 系统上的套接字统计信息的命令行工具。它被认为是 netstat 的现代替代品,能够显示更多的 TCP 和套接字信息。两个工具在功能上有一些重叠。
场景
- 查看所有活动的网络连接: 显示所有 TCP 和 UDP 连接,以及正在监听的端口;查找占用特定端口的服务。
- 查看套接字相关信息: 包括 TCP 窗口大小、拥塞控制算法等。
traceroute
traceroute 是一个网络诊断工具,用于跟踪数据包从计算机到目标主机所经过的路由(路径)。
场景
- 诊断网络连接问题: 无法访问某个网站或服务时,traceroute 可以帮助确定问题出在本地网络、ISP 网络还是目标服务器的网络路径上。
- 识别网络瓶颈: 观察每个跃点的延迟,可以找到网络中可能导致速度缓慢的瓶颈节点。
speedtest-cli
一个简单的网络测试工具,可以快速获取最近的网络测试节点并且测试网速。
Vnstat
Vnstat 是一个轻量级的命令行网络流量监控工具。它在后台运行,记录网络接口的接收和发送数据量,并提供各种报告,记录网络的历史使用情况。
场景
- 网卡流量监控: 基于proc,针对网卡的流量监控,可以分时进行查询,还可以导出图片进行分析。
nethogs
类似于 top 命令,但专注于按进程实时显示网络带宽使用情况。它可以让你看到哪个进程正在消耗最多的上传和下载带宽。缺点就是不能够查询一些内核级别的进程的通信信息。
场景
- 网卡实时流量监控: 针对网卡的实时流量监控,可以达到进程级别。
iftop
实时监控网络接口的带宽使用情况,但它按网络连接(主机对)显示流量,并尝试解析主机名。可以查看哪些主机之间正在进行大量的网络通信。
场景
- 实时流量监控: 针对主机级别的实时流量监控,和nethogs有点类似。
wireshark
一个强大的网络分析可视化工具。
场景
- 详细分析网络协议: 可以深入分析 TCP/IP 协议栈的各个层次,查看每个数据包的详细头部信息和数据内容。
- 性能分析: 分析网络延迟、丢包、重传等性能指标,帮助优化网络性能。
tcpdump
一个命令行抓包工具。它可以捕获指定接口上的网络数据包,并将数据包信息输出到终端或保存到文件中。
场景
- 作为数据源: tcpdump 的一个常用的用处就是将dump下的数据导入到wireshark中进行详细分析。tcpdump可以快速抓取数据包。
- 数据分析: 可以进行一些简单的数据分析,当然可视化方面还是wireshark比较好。
bcc
BCC 是一个围绕 eBPF 构建的强大工具包,里面有很多关于网络抓包的工具。
没有接触过,皓哥这里有详细的介绍:coolshell.cn/articles/22...