深色模式
tcpdump 抓包入门
摘要:当应用层日志看不出问题时,抓包能看清「线线上到底发了什么」。本文教你在 tcpdump 里用 host/port 过滤器精准抓 SSH 流量,并安全落盘。
适用环境
bash
which tcpdump || sudo apt install tcpdump
sudo tcpdump --version | head -11
2
2
操作步骤
1. 抓某主机相关流量
bash
sudo tcpdump -nn host 192.168.1.10
# -n 不解析名字(更快更直观) -nn 主机和端口都不解析1
2
2
2. 抓某端口(SSH=22)流量
bash
sudo tcpdump -nn port 221
3. 组合过滤器:主机 + 端口
bash
sudo tcpdump -nn "host 192.168.1.10 and port 22"1
4. 抓包并写文件,事后用 Wireshark 分析
bash
sudo tcpdump -nn -i any -w ssh.pcap "host 192.168.1.10 and port 22"
# Ctrl+C 停止;文件用 Wireshark 打开分析1
2
2
5. 看包内容(ASCII),适合排错明文协议
bash
sudo tcpdump -nn -A "tcp port 22 and host 192.168.1.10"
# -A 以 ASCII 打印负载(SSH 已加密,仅示意义;HTTP 明文可见)1
2
2
6. 限制抓包数量,避免刷屏
bash
sudo tcpdump -nn -c 20 "port 22"1
验证
bash
# 本机抓自己到某服务器的 22 连接
sudo tcpdump -nn -c 10 "port 22 and host 192.168.1.10" &
ssh 192.168.1.10 echo ok
# 抓到 SYN / SYN-ACK / ACK 三段即一次成功三次握手1
2
3
4
2
3
4
常见坑
WARNING
-i any 在某些内核上抓不到回环(lo)流量细节,本机自连排错建议显式指定 -i lo 或具体网卡名(用 ip -br link 查)。
DANGER
抓包文件可能含明文凭证/业务数据。不要把它存到公共目录或对外分享;排错完及时删除。在他人系统抓包前确认已获授权。