Linux 网络排障
netstat
netstat是一个常用的命令行网络工具,用于显示与网络连接、路由表和网络接口相关的信息。以下是一些常用的netstat命令:
netstat -tunlp:显示所有TCP和UDP端口的监听情况,以及对应的进程信息。netstat -tuln:显示所有TCP端口的监听情况,包括本地地址、外部地址和状态。netstat -a:显示所有活动的网络连接,包括监听和非监听状态。netstat -r:显示路由表,包括目标地址、网关、子网掩码和接口。netstat -s:显示网络统计信息,包括传输的数据包数量、错误数量和丢失数量等。netstat -i:显示网络接口信息,包括接口名称、MAC地址、IP地址和状态等。netstat -c:持续输出网络连接的信息,每隔一段时间刷新一次。
sar
sar(System Activity Reporter)是一个性能监控工具,它可以提供系统资源使用情况的历史数据。以下是一些常用的sar命令和相应的使用场景:
sar -u:显示CPU使用情况。
- 使用场景:了解系统CPU的平均负载、用户空间CPU使用率、系统空间CPU使用率,以及等待I/O的CPU使用率。
sar -r:显示内存使用情况。
- 使用场景:查看主要的内存指标,如总内存、可用内存、内存利用率、缓存和缓冲区。
sar -n DEV:显示网络接口的数据传输情况。
- 使用场景:监测网络流量、带宽使用情况,识别网络瓶颈。
sar -q:显示系统负载情况。
- 使用场景:通过观察平均负载、运行队列长度和就绪进程数,了解系统性能和负载情况。
sar -b:显示系统的I/O使用情况。
- 使用场景:监测磁盘IO的情况,包括块读写次数、块传输速率,查找磁盘性能问题。
sar -W:显示系统交换空间的使用情况。
- 使用场景:了解交换空间的使用情况,识别系统内存不足导致的交换瓶颈。
sar -d:显示块设备的I/O统计信息。
- 使用场景:查看块设备(硬盘)的读写操作、传输速率和请求队列长度。
Example
统计sockets连接新
- sar -n SOCK
|
|
- totsck 当前被使用的socket总数
- tcpsck 当前正在被使用的TCP的socket总数
- udpsck 当前正在被使用的UDP的socket总数
- rawsck 当前正在被使用于RAW的skcket总数
- if-frag 当前的IP分片的数目
- tcp-tw TCP套接字中处于TIME-WAIT状态的连接数量
这些sar命令可用于监控系统资源的使用情况,帮助诊断性能问题和优化系统配置。您可以通过调整命令的参数来获取特定的监控数据,并结合其他工具和命令进行综合分析
telnet
telnet是一个用于远程登录和管理远程主机的网络协议和工具。以下是一些常用的telnet命令和相应的使用场景:
1.telnet host:连接到指定的远程主机。
- 使用场景:远程登录到其他计算机,进行命令行管理和操作。
2.telnet host port:连接到指定主机的特定端口。
- 使用场景:检查特定服务的可用性,如通过telnet测试SMTP服务器是否能够连接。
3.Ctrl + ]:进入telnet控制台。
- 使用场景:在telnet会话中,按下Ctrl + ]键后,可以进入控制台,执行一些附加功能,如终止会话、更改设置等。
4.send string:发送字符串到远程主机。
- 使用场景:在telnet会话中,可以使用send命令发送特定的字符串至远程主机,用于模拟用户输入等情景。
5.display或toggle options:显示或切换选项状态。
- 使用场景:在telnet会话中,可以使用这两个命令查看或切换当前会话的选项状态,例如回显、行编辑等。
6.quit:退出当前telnet会话。
- 使用场景:在完成telnet会话后,使用该命令退出并关闭连接。
telnet命令可以用于远程登录和管理远程主机,但由于安全性较差,已逐渐被SSH等更安全的协议取代。在实际应用中,建议使用更加安全的远程连接方法,如SSH(Secure Shell)。
ss
ss(Socket Statistics)是一个Linux系统中用于显示当前活动套接字(socket)信息的命令。它可以提供更详细和全面的套接字统计数据。以下是一些常用的ss命令和相应的使用场景:
1.ss -t:显示TCP套接字信息。
- 使用场景:查看当前系统上的TCP连接信息,包括本地地址和端口、远程地址和端口、连接状态等。
2.ss -u:显示UDP套接字信息。
- 使用场景:查看当前系统上的UDP连接信息,包括本地地址和端口、远程地址和端口等。
3.ss -l:显示监听套接字信息。
- 使用场景:查看当前系统上正在监听的套接字信息,包括监听的协议、本地地址和端口等。
4.ss -p:显示套接字及其关联进程信息。
- 使用场景:查看每个套接字对应的关联进程的详细信息,包括进程ID、用户、命令等。
5.ss -n:以数字形式展示套接字信息。
- 使用场景:显示IP地址和端口号时不进行反向解析,加快输出速度。
6.ss -s:显示套接字统计摘要(包含IPv6)。
- 使用场景:显示系统级别的套接字统计信息,包括打开的套接字数、活动连接数、侦听套接字数等。
7.ss -o:显示定时器相关信息。
- 使用场景:查看系统中的定时器事件相关信息,如计时器名称、超时时间、重复间隔等。
这些ss命令可用于监控和诊断网络连接和套接字的状态,帮助定位网络问题并进行性能调优。在实际应用中,可以结合其他命令和工具(如grep、netstat等)进行更深入的分析和排查。