1 ping
- ping —Packet Internet Groper(因特网包探索器);
- 原理:发送一个ICMP(Internet Control Messages Protocol,因特网信报控制协议),请求消息给目的地并报告是否收到所洗完的ICMP echo(ICMP回声应答);
- 作用:用来检查网络是否通畅或者网络连接速度
- 使用ping检查连通性有以下6个步骤:
1.使用ifconfig/all观察本地网络设置是否正确;
2.ping 127.0.0.1,来检查本地的TCP/IP协议有没有设置好;
3.ping 本机IP地址,这样是为了检查本机的IP地址是否设置有误;
4.ping 本网网关或本网IP地址,这样是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常。(在非局域网中这一步可以忽略);
5.ping 本地DNS地址,这样做是为了检查本地DNS服务器是否工作正常;
6.ping 远程IP地址,这主要是检查本网或本机与外部的连接是否正常 - 差异:
linux的ping数据包是64Byte,而Windows的是32Byte, Windows下默认发送4次数据包后结束,Linux下的ping程序默认不停发送数据包,直到用户手动停止(停止命令是Ctrl+C)
2 tcpdump
tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助去掉无用的信息。
- 参数:
-i:指定tcpdump监听的网络几面
-c:指定要监听的数据包数量
-w:指定将监听到的数据写入文件中保存 - 示例:
1.截取某主机相关的包
a.想要截获所有210.27.48.1的主机收到的和发出的所有数据包:
tcpdump host 210.27.48.1
b.想要截获主机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)
c.如果想要获取主机210.27.48.1除了和主机210.27.48.2之外的所有主机通信的ip包:
tcpdump ip host 210.27.48.1 and !210.27.48.2
2.截取某端口相关的包
tcpdump port 6666
3.截取某网卡的包
tcpdump -ieth1
3 netstat
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
- 实例:
1.列出所有端口(包括监听和未监听的):netstat -a
2.列出所有TCP端口:netstat -at
3.列出所有UDP端口:netstat -au
4.列出所有处于监听状态的socket:netstat -l
5.列出所有监听TCP端口的socket:netstat -lt
6.列出所有监听UDP端口的socket:netstat -lu
7.列出所有监听UNIX端口的socket:netstat -lx
8.在netstat输出中显示PID和进程名称:netstat -p
9.当你不想让主机,端口和用户名显示,使用netstat -n,将会使用数字代替那些名称
10.持续输出netstat信息:netstat -c
11.找出程序运行的端口:netstat -ap | grep ssh
12.找出运行在指定端口的进程:netstat -an | grep ‘:80’
13.显式网络接口列表:netstat -i
14.IP和TCP的分析,如查看链接某服务器端口最多的IP地址命令是:
netstat -nat | grep “192.168.1.15:22” |awk ‘{print $5}’|awk -F:’{print $1}’|sort|uniq -c |sort -nr|head -20
15.TCP各自状态列表:netstat -nat | awk ‘{print $6}’
16.先把各种TCP状态全取出来,然后使用uniq -c统计,之后再进行排序:netstat -nat | awk ‘{print $6}’ | sort | uniq -c
4 lsof
lsof(list open file)是一个列出当前系统打开文件的工具。
通过lsof工具能够查看这个列表对系统监测
- 语法格式:lsof [options] filename
- 参数列表:
1.lsof filename 显示打开指定文件的所有进程
2.lsof -a 表示两个参数都必须满足时才显示结果
3.lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
4.lsof -u username 显示所属user进程打开的文件
5.lsof -g gid 显示归属gid的进程情况
6.lsof +d /DIR/ 显示目录下被进程打开的文件
7.lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
8.lsof -d FD 显示指定文件描述符的进程
9.lsof -n 不将IP转换为hostname,缺省是不加上-n参数
10.lsof -i 用以显示符合条件的进程情况 - 常用命令:
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.监控用户。如查看指定用户root打开的文件:lsof -u root.