监听网口的核心工具
tcpdump(命令行抓包)
- 安装(如未预装):
sudo apt install tcpdump # Debian/Ubuntu sudo yum install tcpdump # RHEL/CentOS
- 基础用法:
sudo tcpdump -i eth0 # 监听eth0网口的所有流量
- 常用参数:
-w file.pcap
:保存为Wireshark可读的pcap文件(如-w capture.pcap
)。port 80
:过滤特定端口(如tcpdump -i eth0 port 80
)。host 192.168.1.100
:过滤特定IP的流量。-n
:禁用域名解析(提升速度)。
- 示例:捕获eth0网口的HTTP流量并保存:
sudo tcpdump -i eth0 port 80 -w http_traffic.pcap
Wireshark(图形化分析)
- 安装:
sudo apt install wireshark # Debian/Ubuntu sudo yum install wireshark # RHEL/CentOS
- 操作步骤:
- 启动Wireshark:
sudo wireshark
。 - 选择目标网口(如eth0)。
- 点击”Start”开始捕获,使用过滤栏(如
http
)实时筛选流量。 - 通过”File > Save As”保存数据包。
- 启动Wireshark:
tshark(Wireshark命令行版)
- 安装:同Wireshark(通常捆绑安装)。
- 基础命令:
sudo tshark -i eth0 # 监听eth0 sudo tshark -i eth0 -f "tcp port 22" # 过滤SSH流量
- 保存文件:
sudo tshark -i eth0 -w output.pcap
其他工具
- ngrep:基于正则表达式匹配内容:
sudo ngrep -d eth0 "password" port 21 # 监听FTP端口包含"password"的流量
- tcpflow:按TCP会话重组数据:
sudo tcpflow -i eth0 port 80
关键注意事项
-
权限要求:
- 必须使用
sudo
或root
账户,普通用户无权访问网口。 - 将用户加入
wireshark
组可避免每次输入密码:sudo usermod -aG wireshark $USER
- 必须使用
-
网口选择:
- 查看可用网口:
ip link show
或ifconfig
。 - 监听虚拟网口(如
docker0
、vethxxx
)需指定名称。
- 查看可用网口:
-
过滤规则:
- BPF语法(Berkeley Packet Filter)是通用标准:
- 例:
tcpdump -i eth0 'src 192.168.1.5 and tcp port 443'
- 例:
- 复杂过滤建议保存到文件(如
filter.txt
)并用-F
加载。
- BPF语法(Berkeley Packet Filter)是通用标准:
-
法律与道德约束:
- 仅监听授权网络:禁止监控他人私有流量。
- 企业环境需合规:遵守公司安全政策。
- 加密流量处理:HTTPS等加密数据需解密密钥(如SSLKEYLOGFILE)才能解析内容。
典型应用场景
- 故障诊断:分析TCP重传、DNS失败等。
- 安全审计:检测异常连接(如
tcpdump -i eth0 'host malware-domain.com'
)。 - 应用调试:验证API请求是否发送正确数据。
- 初学者:用
tcpdump
快速捕获基础流量。 - 深度分析:Wireshark可视化解析协议细节。
- 自动化脚本:
tshark
或tcpdump
集成到监控系统。
引用说明基于Linux内核文档(kernel.org)、Wireshark官方指南(wireshark.org/docs)及tcpdump手册页(tcpdump.org),操作符合Linux标准协议,确保技术准确性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8957.html