首页 > 代码库 > [探索]Linux下实现简单的FTP服务器

[探索]Linux下实现简单的FTP服务器

  网上查了很多资料,90%的代码运行后,用linux下ftp命令登录不了.

  后来发现实验楼中有个项目是FTP服务器,于是不得已又花了400大洋买了会员,结果其代码运行后,ftp命令也登录不了,真TM坑!!!我的400大洋啊!!!!!

  无奈,只能自己探索一番了!

一、抓包FTP连接过程

  还好我有个服务器上有proftpd,因此,我准备先抓包剖析一下FTP的相关包.

  打开wireshrk,打开ftp://xxx.xxx.xxx.xxx之后,看到了巨多的数据包跑了出来,筛选分析如下:

三次握手
server:220 成功连接!
//浏览器默认执行了匿名登录
匿名登录
530登录错误
//匿名登录失败后,开始提示用户进行登录
//用户名
client:USER ...
server:331
//密码
client:PASS ...
server:230 成功登入!
//请求系统相关信息
client:SYST
server:215
//请求系统相关信息
client:FEAT
server:211-Features
server:211 End
//设置编码格式
client:OPTS UTF8 ON
server:200 UTF8 set to on

client:PWD
server:257 /ftp目录

client:TYPE I
server:200 Type set to I

client:PASV
server:227

client: CWD /ftp目录
server: 250 CWD successful
//显示当前文件列表
client:LIST
server:FTPData
//以二进制方式接受数据
client:150
server:226

 二、用C语言模拟实现成功登录过程

  

[探索]Linux下实现简单的FTP服务器