《Linux Shell脚本攻略》学习笔记-第十一章
11.1 简介
本章将会讲述如何获取相关网络分组。CPU占用率、磁盘使用情况以及东台调用的更多信息。
11.2 使用tcpdump跟踪分组
tcpdump需要以root身份运行。
关键字port可以只显示出发往或者来自特定端口的分组
src修饰符配合特定的“关键字-值”就可以指定源文件中的这类分组。dst修饰符可以指定目的地址
选项-X可以将分组的内容也一并输出;关键字hose结合端口可以对发往护着来自特定主机的特定端口数据进行输出限制
11.3 使用ngrep查找分组
ngrep是grep和tcpdump的综合体。它能够监视网络端口并显示匹配特定模式的分组。
下面的例子会监视端口80上的流量并输出内容包含字符串Linux的分组:
选项-q指示ngrep只打印分组头部和载荷;选项-c定义了以几列的形式显示分组的载荷;跟随在选项之后的是要匹配的字符串,然后是分组过滤表达式
11.4 使用ip跟踪网络路由
ip route命令输出中包含的关键字如下:
via:指明下一跳的地址
proto:该路由所使用的的协议
scope:地址的有效范围,如果取值为link,则表明地址仅对该设备有效
dev:与该地址关联的设备
ip neighbour命令可以输出IP地址、设备和硬件MAC地址之间的已知关系
当前状态REACHABLE 表明该arp表项是最新的,主机拥有远程系统的MAC地址。这里的STALE状态并不是说系统不可达,只是表明该arp表项已经过时了。
route get可以输出当前主机的下一跳地址
- 跟踪路由
- 跟踪最近的IP连接和ARP表
- 使用ip route输出路由
- 查看分组载荷以及头部
- 只显示本机生成的HTTP分组
- 只显示HTTP分组
- 如果不想在终端上显示输出,选项-w可以将输出发送到文件只能。输出格式是二进制格式,可以使用选项-r读取。
- Flags分组所具有的的标志如下:S代表SYN发起连接;F代表FIN终止连接;P代表PUSH推送数据;R代表RST重置连接;点号.表示没有对应的标志
- seq指的是分组的额序列号,这个序列号会回显在ack中确认接收到的分组
- ack作用是确认已接收到某个分组,这个值是上一组的序列号
- win指明了目的端缓冲区大小
- options指明了分组中定义的TCP选项
- tcpdump是wireshark以及其他网络嗅探程序的前端
- 安装