首先使用tcpdump抓取数据包并保存为pcap文件,再通过Wireshark进行图形化分析,结合iptables与nflog实现定向捕获,最后利用tshark命令行工具完成脚本化分析与字段提取。

如果您需要对网络通信进行深入分析,了解数据包的传输过程,可以通过抓取网络中的数据包来获取详细信息。这在排查网络故障、检测异常流量或分析协议行为时非常有用。
本文运行环境:Dell XPS 13,Ubuntu 24.04
tcpdump 是 Linux 系统中最常用的命令行抓包工具,能够捕获经过指定网络接口的数据包,并支持复杂的过滤规则。
1、打开终端,输入以下命令以查看系统中可用的网络接口:
ip link show
2、选择需要监听的网络接口(如 eth0 或 wlan0),执行基本抓包命令:
sudo tcpdump -i eth0
3、若要将抓取的数据包保存到文件以便后续分析,可添加 -w 参数:
sudo tcpdump -i eth0 -w capture.pcap
4、停止抓包后,可通过 -r 参数读取保存的文件:
sudo tcpdump -r capture.pcap
Wireshark 提供了强大的图形界面和深度协议解析能力,适合对抓包结果进行细致分析。
1、安装 Wireshark 工具:
sudo apt install wireshark
2、启动 Wireshark 图形界面:
wireshark
3、在主界面中选择要监听的网络接口,点击“Start”开始抓包。
4、抓包过程中可使用显示过滤器(如 http、dns、ip.addr == 192.168.1.1)筛选特定流量。
5、将 tcpdump 生成的 .pcap 文件拖入 Wireshark 即可进行可视化分析。
当需要仅捕获特定类型的数据包(如被防火墙丢弃的包)时,可结合 iptables 和 nflog 实现精准捕获。
1、加载 nflog 模块:
sudo modprobe nfnetlink_log
2、配置 iptables 规则,将目标流量导向 nflog 组:
sudo iptables -A INPUT -p tcp --dport 80 -j NFLOG --nflog-group 100
3、使用命令行工具 ulogd 或 tcpdump 监听指定日志组:
sudo tcpdump -i nflog:100
4、完成测试后,清除规则以避免影响正常网络策略:
sudo iptables -F
tshark 是 Wireshark 的命令行版本,适用于自动化任务或服务器环境下的批量处理。
1、使用 tshark 捕获指定数量的数据包:
tshark -c 100 -i eth0
2、将输出结果保存为 JSON 格式便于程序解析:
tshark -c 50 -T json -w output.json
3、结合过滤表达式只捕获 DNS 请求:
tshark port 53
4、从已有 pcap 文件提取特定字段内容:
tshark -r capture.pcap -Y "http.request" -T fields -e http.host
以上就是LINUX系统如何抓取网络数据包_Linux网络抓包与分析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号