网络技术修炼,公众号中总结普及网络基础知识,包括基础原理、网络方案、开发经验和问题定位案例等,欢迎关注。
分类 | 命令、工具 | 作用 | 备注 |
包观测 |
tcpdump |
||
wireshark&&tshark |
wireshark可视化分析,tshark命令行分析。 |
||
用于抓取 TCP 流量并保存到文件。通过 tcpflow 命令可以捕获 TCP 流量,并将每个 TCP 连接的数据保存到不同的文件中。 |
比如可以快速将每个连接的包分发到不同文件保存。 | ||
用于过滤和显示网络数据包。通过 ngrep 命令可以过滤和显示满足特定条件的数据包。 |
比如快速过滤http GET和POST请求。 | ||
ping |
ICMP 报文,可以确定网络连接是否正常。 |
||
telnet |
检查tcp握手是否ok。 |
||
|
检查http是否ok。 |
||
OpenSSL 是一个常用的加密工具库,可以用来实现 SSL/TLS 通信、数字证书签发和管理、密码学算法等功能。 |
|||
网络路径状况查看 |
用于确定数据包从一个主机到另一个主机所经过的路由路径。 |
||
用于网络故障定位和性能分析。mtr 命令可以连续发送 ICMP 报文,并在每一跳的路由器上进行网络延迟和丢包率的统计,用于找出网络故障的根源。 |
|||
netstat |
|||
ss |
|||
ifconfig |
|||
ip |
配置和管理网络接口、路由表、ARP 缓存和其他网络相关的属性。 |
||
查看网络出口地址。 |
|||
用于查看和配置网络接口的驱动程序。通过 ethtool 命令可以查看网络接口的状态、速度、双工模式等信息,并进行网络性能调优。 |
|||
用于实时监控网络流量。iftop 命令可以显示每个网络接口的实时流量、连接数、连接速度等信息,用于快速诊断网络瓶颈和流量异常。 |
|||
用于查看进程占用的网络带宽。通过 nethogs 命令可以查看每个进程占用的网络带宽、连接数和流量等信息,用于找出网络资源占用高的进程。 |
|||
nslookup |
|||
dig |
查询 DNS 服务器上的主机名和 IP 地址信息。与 nslookup 不同的是,dig 命令提供了更多的选项和功能。 | ||
dmesg |
比如oom、segment fault都可以在这里面看到相应的记录。 | ||
systemctl |
|||
journalctl |
|||
内存异常 |
检查程序在运行时的内存访问错误、泄漏等问题。 | 无需修改代码 | |
asan |
可以检测常见的内存安全问题,例如缓冲区溢出、使用未初始化的内存等。 | ||
|
实时监控系统 CPU、内存、进程等资源的使用情况,用于找出系统资源占用高的进程。 |
||
vmstat |
可快速看出上下文切换次数。 |
||
进程级别统计cpu、io、上下文切换等信息。 |
看出上下文切换中自愿切换和非自愿切换次数。 | ||
监测 CPU 使用率、磁盘 I/O、网络流量、内存使用情况、进程活动等多个方面的数据,并将这些数据保存到本地或远程系统中,以供后续分析和处理。 |
可快速统计流量。 | ||
可以用于测量和分析系统各个方面的性能数据,包括 CPU、内存、磁盘、网络等方面的数据。 |
|||
pprof |
go语言专用更强大的采样工具。 |
||
strace |
|||
bpftrace |
比如打印某个函数的系统调用栈和用户空间调用栈。脚本的方式使用ebpf工具。 | ||
bcc |
比bpftrace更灵活。 | ||
网络场景构造 |
用于设置和管理 Linux 内核的防火墙。通过 iptables 命令可以设置网络连接的规则、过滤数据包、进行网络地址转换等操作。 |
可以对特定特征进行丢包,转换。 | |
流量控制、网络流量调度和队列管理的工具,可用于实现各种 QoS(Quality of Service)和网络流量控制功能 |
|||
postman |
|||
流量复制和重放 |
goreplay |
一个 HTTP 实时流量复制工具。支持流量的放大、缩小,频率限制,还支持把请求记录到文件,方便回放和分析,也支持和 ElasticSearch 集成。 |
|
|
|||
tcpcopy |
|||
性能压测 |
iperf |
适合传输层压测、带宽压测等场景。 |
|
一个基于 Apache HTTP 服务器的性能测试工具,用于测试 Web 服务器的负载能力 |
|||
wrk |
|||
stress |