Linux 常用命令(3) - 检查网络流量
检查网络流量 tcpdump Tcpdump 是用于捕获发出和收到的网络流量的工具。在日常工作中经常用来检查调试网络问题。它不单能捕获 TCP 流量,也能捕获 UDP、ARP 和 ICMP 流量。 首先,tcpdump 需要 root 权限,所以别忘了用 sudo 来执行。 常用参数及对应的命令组合 -D: 查看所有的网络接口 -i <interface>: 捕获特定网络接口,输出到屏幕 -n: 不反向解析域名。在捕获的记录里,默认情况tcpdump会反向解析所有的IP地址,然后显示域名地址。该参数可以避免这个行为。 -w <file.pcap>: 输出到文件 file.pcap。通常大家会使用.pcap扩展名,表示 packet capture。 在输出到文件的时候,内容是不会输出到屏幕的。如果希望查看,可以打开新的终端,然后使用 tcpdump -r file.pcap 命令查看。 当然,你也可以使用 tcpdump -w file.pcap & 命令。让输出到文件的命令运行在后台。或者使用 -l + tee 命令输出到文件的同时查看。 推荐使用 Wireshark 来分析捕获的流量日志。 -l: 缓存输出,用于输出到屏幕的同时保存到文件。常用命令为 tcpdump -l | tee file.out 或者 tcpdump -l > file.out & tail -f file.out -W 10 -C 200: 当需要运行很长时间并且保存日志的时候,可以指定这两个参数。-C 指定单个文件大小, 单位为MB。-W 文件数量。Tcpdump会自动切分和更新日志。 -A | -X 默认情况下,tcpdump 输出到屏幕时,仅捕获数据包的headers。如果需要检查包信息,可以加上 -A 以ASCII格式输出,或者 -X 以HEX格式输出。 过滤流量 tcpdump使用的是BPF语法用来作为过滤参数,很接近自然语言。比如,只希望捕获端口27017的TCP流量:tcpdump tcp port 27017。以下是常用的组合:...