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

Posted 草里藏珠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[探索]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服务器的主要内容,如果未能解决你的问题,请参考以下文章

Linux技术专题系列「必备基础知识」一起探索和实践sftp配置之密钥方式登录

如何在Linux中部署ftp服务只需要代码

java实现FTP文件传输,linux之间,windows之间,以及windows和linux之间传输,实现代码是不是相同?

Linux下使用libcurl实现FTP单个文件上传下载功能

java代码怎么实现在linux系统上上传文件到windows服务器上

Linux系统中使用lftp命令实现FTP上传下载