linux 网络故障排查工具

1.ping

ping命令可用于测试网络是否连通。

ping 192.169.2.2

2.telnet

命令使用格式:

telnet  ip或域名 port

例如:

telnet 192.168.2.2 8888 

3.host命令

host 命令可以解析域名得到对应的ip地址。

host www.baidu.com

4 .netstat命令

常见的选项有:

-a (all)显示所有选项,netstat默认不显示LISTEN相关

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 拒绝显示别名,能显示数字的全部转化成数字。(重要)

-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名(macOS中表示协议 -p protocol)

-r 显示路由信息,路由表

-e 显示扩展信息,例如uid等

-s 按各个协议进行统计 (重要)

-c 每隔一个固定时间,执行该netstat命令。

实例1:列出所有端口

netstat -a      # 列出所有端口

netstat -at     # 列出所有TCP端口

netstat -au    # 列出所有UDP端口

netstat -ax    # 列出所有unix端口

netstat -atnlp    # 直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名

实例2:显示每个协议的统计信息

netstat -s     # 显示所有端口的统计信息

netstat -st    # 显示所有TCP的统计信息

netstat -su    # 显示所有UDP的统计信息

 5.pstack

用来查看某个进程的线程数量和线程调用堆栈是否运行正常。指令使用格式:

pstack pid

即,pstack 进程号,如:

pstack 23331

6. lsof命令

lsof,列出当前操作系统中打开的所有文件描述符,socket也是一种file descriptor,常见的选项是:

-i 列出系统打开的socket fd

-P 不要显示端口号别名

-n 不要显示ip地址别名(如localhost会用127.0.0.1来代替)

+c w 程序列名称最大可以显示到w个字符。

常见的选项组合为lsof –i –Pn:

lsof -i -Pn

7.nc命令

即netcat命令,常见的用法如下:

  • 模拟服务器端在指定ip地址和端口号上侦听
nc –l 0.0.0.0 8888
  • 模拟客户端连接到指定ip地址和端口号
nc 0.0.0.0 8888

客户端连接服务器一般都是操作系统随机分配一个可用的端口号连接到服务器上去,这个指令可以指定使用哪个端口号连接,如:

nc –p 12345 127.0.0.1 8888

客户端使用端口12345去连接服务器127.0.0.1::8888。

  • 使用nc命令发消息和发文件

客户端

nc -v -p 1234 127.0.0.1 5678

服务器

nc -v -l 0.0.0.0 1234

8 .tcpdump

这个是linux系统自带的抓包工具,默认需要开启root权限才能使用。

其常见的选项有:

-i 指定网卡

-X –XX 打印十六进制的网络数据包

-n –nn 不显示ip地址和端口的别名

-S 以绝对值显示包的ISN号(包序列号)

例1:过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头

tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24

例2:截获所有127.0.0.1的主机收到的和发出的所有的数据包

tcpdump host 127.0.0.1

《伤寒论》

猜你喜欢

转载自blog.csdn.net/kan_Feng/article/details/127230850