Linux中tcpdump抓包怎么分析FTP控制通道报文

老萱酱_9034

老萱酱_9034

2026-09-22

596人浏览

原创

ftp控制通道使用tcp 21端口明文传输命令,可用tcpdump -i eth0 -nn -a -s 0 port 21抓取并以ascii格式查看user、pass等命令及响应码,推荐先保存为pcap文件再过滤分析。

linux中tcpdump抓包怎么分析ftp控制通道报文

FTP 控制通道使用 TCP 21 端口,明文传输命令(如 USERPASSPWDLISTRETR 等),非常适合用 tcpdump 抓取并分析。关键在于精准捕获 + 可读输出 + 定向过滤

明确目标:只抓 FTP 控制连接(端口 21)的交互内容

默认 tcpdump 只显示包头,而 FTP 命令是 ASCII 文本,需用 -A 参数以 ASCII 方式打印载荷:

sudo tcpdump -i eth0 -nn -A port 21
  • -i eth0:指定网卡(可用 tcpdump -D 查看所有接口)
  • -nn:不解析 IP 和端口为域名/服务名(避免延迟,确保显示 192.168.3.100.54321 > 192.168.3.14.21 这类原始格式)
  • -A:以可读 ASCII 形式显示数据包内容(含 FTP 命令和响应,如 220 vsftpd 3.0.3USER admin331 Please specify the password.

✅ 小提示:若看到乱码或截断,加 -s 0 捕获完整包(避免默认只截前 96 字节):

sudo tcpdump -i eth0 -nn -A -s 0 port 21

快速识别 FTP 控制会话的三要素

一个典型的 FTP 控制交互包含:

onewo-rtlinux
onewo-rtlinux

Linux 实时编程助手。生成、审查并修改用于周期性控制任务和中断驱动程序的 C 代码。强制实施实时调度策略。

下载
  • 客户端发起连接:源端口随机(如 54321),目标 :21
  • 服务器响应:目标端口 21,源端口 21,返回 220 欢迎消息
  • 命令与响应成对出现
    USER xxx331
    PASS yyy230
    PWD257 "/home/ftp"
    LIST150 Opening ASCII mode data connection... + 226 Transfer complete

你只需在 -A 输出中搜索关键词即可定位行为:

  • USER\|PASS\|RETR\|STOR\|LIST\|PWD\|CWD\|QUIT
  • 响应码:^220\|^331\|^230\|^257\|^150\|^226\|^530

保存抓包供后续细查(推荐生产环境用)

直接终端输出易丢失,建议先保存为 .pcap 文件,再用 tcpdump -r 或 Wireshark 分析:

# 抓 50 个包,存为 ftp-control.pcap
sudo tcpdump -i eth0 -w ftp-control.pcap -c 50 port 21

# 重放并过滤显示 FTP 命令(ASCII 格式)
tcpdump -r ftp-control.pcap -nn -A 'port 21' | grep -E "(USER|PASS|LIST|220|230|331|530)"

补充:区分主动模式 vs 被动模式的控制通道特征

  • 控制通道始终走 21 端口,不受模式影响;
  • 主动模式(PORT)下,客户端会发 PORT a,b,c,d,p1,p2 告知服务器“我开了一个数据端口”,该命令出现在控制流中,可被 -A 直接看到;
  • 被动模式(PASV)下,服务器返回 227 Entering Passive Mode (192,168,3,14,197,142),其中 197*256+142 = 50558 是数据端口,也明文可见。

只要控制通道没加密(vsftpd 默认未启用 FTPS/TLS),所有这些内容都可通过 -A 清晰还原。

不复杂但容易忽略

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3590

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3133

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2193

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5210

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4862

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2933

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2445

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2659

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习