网络通信故障排查命令

网络通信故障排查命令

5.1 ifconfig 命令

ifconfig 命令是查看当前系统的网卡和IP地址信息的常用命令。包含ifconfig命令的安装包。

yum install net-tools

查看:
ifconfig
-s 查看精简列表:
在这里插入图片描述
-a 显示所有的网卡信息:
ifconfig -a
激活或者禁用网卡:

ifconfig 网卡名 up
ifconfig 网卡名 down

解绑或者绑定网卡:

# 将指定的IP地址绑定到某一个网卡
ifconfig 网卡名 add IP地址
# 从某一个网卡上解绑指定的IP地址
ifconfig 网卡名 del IP地址

5.2 ping 命令

ping命令用于侦测本机到目标主机的网络通畅度:
使用格式:

ping ip 地址

也可使用域名格式:

ping 域名

5.3 telnet 命令

5.3.1 telnet安装:

yum install telnet

5.3.2 使用

  1. 检测指定的IP地址和端口号的监听服务是否存在
    • telnet ip 地址 端口
  2. 访问web服务器(支持HTTP协议)
    • telnet 域名 端口
  3. 访问邮箱系统(支持SMTP协议 )

5.4 netstat命令

netstat用于查看网络连接状态,常见的命令选项如下:

选项 说明
-a 表示所有选项,不使用该选项时,netstat默认不显示LISTEN相关选项
-t 表示仅显示tcp相关选项
-u 仅显示udp相关选项
-n 不显示别名,将能显示数字的全部转换为数字
-l 仅列出处于监听(listen)状态的服务
-p 显示建立相关链接的程序名
-r 显示路由信息、路由表
-e 显示扩展信息,列如uid等
-s 按各个协议进行统计(重要)
-c 每隔一个固定的时间执行该netstat命令

详细介绍:https://linux.cn/article-2434-1.html

5.5 lsof命令

lsof(list opened filedesciptor,列出已经打开的文件描述符)命令是Linux的扩展命令

5.5.1 lsof命令的基本用法

  1. 安装

    yum install lsof
    
  2. 使用
    详细介绍:https://www.itbiancheng.com/article/5481.html

5.5.2 lsof命令恢复被删除的文件

注意使用lsof命令恢复文件时需要注意:如果想成功恢复文件,则使用文件的进程必须处于存活状态,如果进程已退出或者杀死,就无法用这种方式恢复;使用这种方式恢复的文件后,再次用lsof命令查看时,该文件仍然时delete状态,虽然能够手工恢复,但是进程将不会再使用这个恢复的文件。

5.6 nc命令

nc(netcat)命令,用于再排查网络故障时使用。
常见用途:

  1. 模拟服务器程序。使用-l 选项(单词listen的首字母)在某一个IP地址和端口上开启一个监听服务,以便让其他客户端连接。
    在这里插入图片描述
  2. 模拟一个客户端程序。使用nc命令模拟一个客户端程序时,直接写上IP地址(或者域名,nc命令可以自动解析域名)和端口号即可。
    • 客户端:
      在这里插入图片描述
    • 服务器
      在这里插入图片描述
  3. nc命令不禁可以发送消息还能发送文件:

5.7 tcpdump 命令

tcpdump 是Linux系统下的一个强大的命令,可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

  1. 语法:
tcpdump [ -AdDefIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
               [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
               [ -Q|-P in|out|inout ]
               [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
               [ -W filecount ]
               [ -E spi@ipaddr algo:secret,...  ]
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
               [ expression ]
  1. 参数介绍:
  • -A 以ASCII格式打印出所有分组,并将链路层的头最小化。
  • -c 在收到指定的数量的分组后,tcpdump就会停止。
  • -C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size
    的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
  • -d 将匹配信息包的代码以人们能够理解的汇编格式给出。
  • -dd 将匹配信息包的代码以c语言程序段的格式给出。
  • -ddd 将匹配信息包的代码以十进制的形式给出。
  • -D 打印出系统中所有可以用tcpdump截包的网络接口。
  • -e 在输出行打印出数据链路层的头部信息。
  • -E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。
  • -f 将外部的Internet地址以数字的形式打印出来。
  • -F 从指定的文件中读取表达式,忽略命令行中给出的表达式。
  • -i 指定监听的网络接口。
  • -l 使标准输出变为缓冲行形式。
  • -L 列出网络接口的已知数据链路。
  • -m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
  • -M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。
  • -n 不把网络地址转换成名字。
  • -N 不输出主机名中的域名部分。例如,link.linux265.com 只输出link。
  • -t 在输出的每一行不打印时间戳。
  • -O 不运行分组分组匹配(packet-matching)代码优化程序。
  • -P 不将网络接口设置成混杂模式。
  • -q 快速输出。只输出较少的协议信息。
  • -r 从指定的文件中读取包(这些包一般通过-w选项产生)。
  • -S 将tcp的序列号以绝对值形式输出,而不是相对值。
  • -s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。
  • -T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。
  • -t 不在每一行中输出时间戳。
  • -tt 在每一行中输出非格式化的时间戳。
  • -ttt 输出本行和前面一行之间的时间差。
  • -tttt 在每一行中输出由date处理的默认格式的时间戳。
  • -u 输出未解码的NFS句柄。
  • -v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息
  • -vv 输出详细的报文信息。
  • -w 直接将分组写入文件中,而不是不分析并打印出来。
  • -x 以16进制数形式显示每一个报文 (去掉链路层报头) . 可以显示较小的完整报文, 否则只显示snaplen个字节.
  • -xx 以16进制数形式显示每一个报文(包含链路层包头)。
  • -X 以16进制和ASCII码形式显示每个报文(去掉链路层报头)。
  • -XX 以16进制和ASCII吗形式显示每个报文(包含链路层报头)。
  • -y 设置tcpdump 捕获数据链路层协议类型
  • -Z 使tcpdump 放弃自己的超级权限(如果以root用户启动tcpdump, tcpdump将会有超级用户权限), 并把当前tcpdump的用户ID设置为user, 组ID设置为user首要所属组的ID
  1. 使用实例:
    01、抓取所有网络包,并在terminal中显示抓取的结果,将包以十六进制的形式显示。

    tcpdump
    

    02、抓取所有的网络包,并存到 result.cap 文件中。

    tcpdump -w result.cap
    

    03、抓取所有的经过eth0网卡的网络包,并存到result.cap 文件中。

    tcpdump -i eth0 -w result.cap
    

    04、抓取源地址是192.168.1.100的包,并将结果保存到 result.cap 文件中。

    tcpdump src host 192.168.1.100 -w result.cap
    

    05、抓取地址包含是192.168.1.100的包,并将结果保存到 result.cap 文件中。

    tcpdump host 192.168.1.100 -w result.cap
    

    06、抓取目的地址包含是192.168.1.100的包,并将结果保存到 result.cap 文件中。

    tcpdump dest host 192.168.1.100 -w result.cap
    

    07、抓取主机地址为 192.168.1.100 的数据包

    tcpdump -i eth0 -vnn host 192.168.1.100
    

    08、抓取包含192.168.1.0/24网段的数据包

    tcpdump -i eth0 -vnn net 192.168.1.0/24
    

    09、抓取网卡eth0上所有包含端口22的数据包

    tcpdump -i eth0 -vnn port 22
    

    10、抓取指定协议格式的数据包,协议格式可以是「udp,icmp,arp,ip」中的任何一种,例如以下命令:

    tcpdump udp  -i eth0 -vnn
    

    11、抓取经过 eth0 网卡的源 ip 是 192.168.1.100 数据包,src参数表示源。

    tcpdump -i eth0 -vnn src host 192.168.1.100
    

    12、抓取经过 eth0 网卡目的 ip 是 192.168.1.100 数据包,dst参数表示目的。

    tcpdump -i eth0 -vnn dst host 192.168.1.100
    

    13、抓取源端口是22的数据包

    tcpdump -i eth0 -vnn src port 22
    

参考文档:https://zhuanlan.zhihu.com/p/74812069

posted @ 2021-11-18 23:45  lihaihui199102  阅读(510)  评论(0编辑  收藏  举报