网络分析的小工具介绍

ping命令

1)介绍:是win,unix,linux系统下的命令,也属于一个网络协议

2)使用:使用ping检查连通性,主要有6个步骤

a.使用ipconf  / all 来观察本地TCP/IP协议有没有设置好

b.ping 本机ip地址,检查是否本机的ip地址设置有误

c.ping本网网关或者ip,这样检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常

d.ping远程ip,检查本网与外网连接是否正常,如ping www.baidu.com

Linux和win的ping差不多,但是注意一点Linux的ping的数据包是64bytes,win的数据包是32bytes,win下默认发送4次之后主动结束,Linux下的ping程序不停的发送数据包,直到用户手动结束


tcpdump

1)介绍:可以将网络中传送的数据包的头完全截获,它支持对协议,主机,网络或者端口的过滤,并提供and,or,not等逻辑语句来帮助去掉无用的信息 ,它存在于基本的FreeBSD系统,由于需要将网络界面设置成混杂模式,普通用户不能执行,它不会危害本机,但是会对网络上的其它计算机产生安全性威胁

2)使用:

tcpdump [-adeflnNOpqStvx] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接口 ]  [ -r 文件名 ]  [ -s sanplen ]  [ -T 类型 ] [ -w 文件名 ] [ 表达式 ]

tcpdump -i  指定要监听的网络界面

tcpdump -c  指定要监听的数据包的数量

tcpdump -w 指定将监听到的数据包写入文件保存

确定类型的关键字:host  port  net

tcpdump host 192.168.15.130  指定主机

tcpdump net 200.0.0.0  指定网络地址

tcpdump port 23  指定端口


确定传输方向的关键字:src , dst , dst or src 等

tcpdump src 192.168.15.130 表明要截获源地址是192.168.15.130的


协议的关键字:fddi,ip,arp,rarp,tcp,udp

fddi指明是在FDDI(分布式网络光纤数据接口)上的特定的网络协议,实际上是ether的别名

如果没有任何信息指定,tcpdump将会监听所有的数据包

eg:

1)tcpdump host 210.27.48.1 要截获 210.27.48.1 的主机收到和发出的所有数据包


2)想要截获 210.27.48.1 和 210.27.48.2 或者 210.27.48.3 主机的通信:

tcpdump host 210.27.48.1 and \(210.27.48.2 or 210.27.48.3\)使用括号时一定加\


3)想要截获210.27.48.1除了和210.27.48.2之外的所有主机的通信:

tcpdump host 210.27.48.1 and !210.27.48.2


4)想要截获 210.27.48.1接收或者发出的telnet包

   tcpdump tcp port 23 host 210.27.48.1


5)想要截获某个端口相关的包  tcpdump port 23


6)想要截获某个网卡的包,比如 eth1:tcpdump -ieth1



netstat:

1)介绍:用于显示与IP,TCP,UDP和ICMP协议相关的统计数据,一般用于本机各端口的网络连接状况,从整体来看netstat的输出可以分为2个部分:

a.Active Internet connections称为有源TCP连接,其中Recv-Q Send-Q分别表示接收队列和发送队列,一般是0,如果不是则表示请求包和回包正在队列大量堆积

b.Active UNIX domain sockets称为有源unix域套接口,和网络套接字一样,只能和本机通信,性能可以提高一倍

Proto:表示协议

RefCnt:表示连接到本套接口的进程号

Type:显示套接字的类型

State:显示套接口当前的状态

Path:表示连接到套接口的其它进程使用的路径名


常见参数说明

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

-t (tcp)仅显示TCP相关

-u (udp)仅显示UDP相关

-n 拒绝显示别名

-l 仅列出有在listen(监听)状态的

-p 显示建立相关连接的程序名

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

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

-s 按照各个协议进行统计

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

注意 listen 和 listening状态,只有在-a  或者 -l 时才可以看到


使用示例:

netstat -a  列出所有端口的=

netstat -at 列出所有TCP端口

netstat -at 列出所有UDP端口

netstat -l  列出所有处于监听状态的socket

netstat -lu 列出所有监听UDP的socket

netstat -lt 列出所有监听TCP的socket

netstat -lx 列出所有监听UXIX的socket

netstat -p  在输出中显示PID和进程名称

netstat -n  不让显示主机 端口和用户名信息,会用数字代替

netstat -c  持续显示netstat信息

netstat -ap | grep ssh  找出程序正在运行的端口

netstat -an | grep "80" 找出运行在指定端口的进程

netstat -i  显示网络接口列表

查看链接某个服务端口最多的ip地址:

netstat -nat | grep "192.168.15.130:22" | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -20

TCP各自状态列表:

netstat -nat | awk -F: '{print $6}'

先把TCP状态提取,然后用uniq -c统计,之后再排序:

netstat -nat | awk -F: '{print $6}' | sort | uniq -c



lsof:(list open file)列出当前系统打开文件的工具

lsof | more 每行显示一个进程打开的文件,若不指定,默认打开所有

各信息的意义:

1)command 进程名称

2)PID进程标识符

3)USER进程所有者

4)FD文件描述符

5)TYPE文件类型,如DIR REG等

6)DEVICE指定磁盘的名称

7)SIZE文件的大小

8)NODE索引节点

9)NAME打开文件的确切名称


语法:lsof [options] filename

常用的参数列表:

lsof filename 显示打开指定文件的所有进程

lsof -a  表示2个参数都必须满足时才显示

lsof -c string 显示command列中包含指定字符串的进程所打开的文件

lsof -u username 显示所属user所打开的进程

lsof -g gid  显示归属gid的进程的情况

lsof +d /DIR/ 显示目录下被进程打开的文件

lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,相对时间较长

lsof -d FD  显示文件描述符的进程

lsof -n 不将IP转换为hostname

lsof -i 用以显示符合条件的进程情况


4)常用举例:

1) 查看6666端口现在的运行状况 lsof -i :6666

2) 查看root用户进程打开的文件,文件类型为txt  lsof -a -u root -d txt

3) 监控打开的文件和设备,查看 /dev/tty1被哪些进程占用  lsof /dev/tty1

4) 监控程序,如 查看指定程序server打开的文件 lsof -c server

5) 监控用户,如 查看指定用户nj打开的文件  lsof -u nj










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值