Q: tcpdump
是干吗的 \
A: 抓包的 \
Q: 除了 tcpdump
还有啥能抓包 \
A: wireshark
\
Q: 为啥不讲 wireshark
抓包 \
A: wireshark
在 linux 上不能用 \
<!–more–>
- 原文链接: tcpdump 命令详解及示例
- 系列文章: 当我有台服务器时我做了什么
tcpdump 命令详解
关键选项
-
-c count
: 指定打印条数 -
-i interface
: 指定网络接口,如常见的eth0
,lo
,可以通过ifconfig
打印所有网络接口 -
-vv
: 尽可能多地打印信息
过滤器
过滤器,顾名思义,过滤一部分数据包, 而过滤器使用 pcap-filter
的语法
所以你可以查看 pcap-filter
手册
# 查看所有过滤器
$ man pcap-fliter
过滤器可以简单分为三类
-
type
: 有四种类型host
,net
,port
,portrange
tcpdump port 22
tcpdump port ssh
-
dir
: 源地址和目标地址,主要有src
和dst
tcpdump src port ssh
-
proto
: 协议,有ip
,arp
,rarp
,tcp
,udp
,icmp
等tcpdump icmp
tcpdump examples
- 命令:
netstat -i
\
解释: 打印所有网络接口 - 命令:
tcpdump -i eth0
\
解释: 监视网络接口eth0
的数据包 - 命令:
tcpdump host 172.18.0.10
\
解释: 监视主机地址172.18.0.10
的数据包 - 命令:
tcpdump net 172.18.0.1/24
\
解释: 监视网络172.10.0.1/24
的所有数据包 - 命令:
tcpdump tcp port 443
\
解释: 监听 https 请求 - 命令:
tcpdump tcp port 443 and host 172.18.0.10
\
解释: 监听目标地址或源地址是 172.18.0.10 的 https 请求 - 命令:
tcpdump icmp
\
解释: 监听 ICMP 协议 (比如典型的 PING 命令) - 命令:
tcpdump arp
\
解释: 监听 ARP 协议 - 命令:
tcpdump 'tcp[tcpflags] == tcp-syn'
\
解释: 监听 TCP 协议中flag
带SYN
的,可以用来监听三次握手 - 命令:
tcpdump -vv tcp port 80 | grep 'Host:'
\
解释: 找到 http 中所有的 Host
相关文章
- A tcpdump Tutorial with Examples — 50 Ways to Isolate Traffic
我是山月,一个喜欢跑步与爬山的程序员,我会定期分享全栈文章在个人公众号中。如果你对全栈面试,前端工程化,graphql,devops,个人服务器运维以及微服务感兴趣的话,可以关注我