[探索]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语言模拟实现成功登录过程

  

时间: 2025-01-03 18:19:28

[探索]Linux下实现简单的FTP服务器的相关文章

Linux下最简单的FTP服务器搭建方法

之前一直在Windows下做开发,当需要向开发板下载firmware时,一般都是开一个TFTPD32,设置好firmware所在的文件夹,一切就OK 了 现在换到Linux下,见识了服务器操作系统在服务配置领域的卓越 前后安装了wu-ftpd,vsftpd,pure-ftpd,tftpd(以及衍生的tftpd-hpa),没一个能让我的板子成功下到firmware的,还浪费了我大量的时间了解各自的配置文件格式.inetd/xinetd配置.syslog配置等等 最后,我想起了那句话"life is

Linux下搭建简单的DHCP服务器

在RHEL6.5下搭建简单的DHCP服务器 实验目标 1.为192.168.10.0/24网段的客户机自动配置网络参数 用来给客户机自动分配地址的IP地址范围是:192.168.10.50-192.168.10.100.192.168.10.120-192.168.10.200 客户机的默认网关地址设为192.168.10.1 客户机所使用的DNS服务器设为202.106.0.20.8.8.8.8,默认域后缀是"tarena.com" 将默认租期设为2小时,最大租期设置为4小时 2.为

Linux下5分钟搭建ftp服务器

本文讲的是linux下简单快速的搭建ftp服务器环境. 1.SSH登陆服务器(本人使用的是Xshell) 2.yum安装vsftpd 执行命令:yum install vsftpd 3.修改配置.增加开机启动 修改配置:vi /etc/vsftpd/vsftpd.conf 将anonymous_enable=YES的值设置为NO,不准匿名用户登录, 增加开机启动,命令:chkconfig –level 35 vsftpd on 4.增加FTP用户.并设置密码 命令:useradd Sunne -

Linux下 vsftpd安装配置 ftp服务器

1.安装vsftpd #  yum install vsftpd 2.启动vsftpd #  service vsftpd start 3.关闭防火墙 #  service iptables stop 这个时候就可以匿名登录了 4.关闭selinux #  vi /etc/selinux/config SELINUX=disabled #  setenforce 0 5.创建用户 因为vsftpd默认是不允许使用root用户登录的,所以得新建用户 #  useradd doiido #  pas

Linux下快速搭建ntp时间同步服务器

背景: 服务器多了,时间是否一致以及是否准备就显得格外重要,虽然这个问题总是被忽略,但是统一时间是很有必要的,因为时间问题导致服务出现问题也是司空见惯,本文简单介绍一下ntp的快速搭建和使用. 1.  安装ntp yum -y install ntp(直接yum安装即可) 2.  修改ntp.conf的配置 1)vim /etc/ntp.conf ①   配置方法一:只允许192.168.100.0网段的客户机进行时间同步 在restrict default kod nomodify notra

linux(centos6)搭建ftp服务器

前提 ssh服务已经开启,关闭防火墙,主机和虚拟机能ping通 查看ssh和防火墙的状态 service sshd status service iptables status 开启ssh服务 service sshd start 关闭防火墙 chkconfig iptables off 测试主机和虚拟机的连通性 ping 192.168.2.129 安装并开启tftp和vsftpd [[email protected] ~]# yum install tftp [[email protecte

linux下命令行连接FTP是遇到的错误(425 Failed to establish connection)

linux下命令行连接FTP是遇到的错误(425 Failed to establish connection) 首先FTP的运行模式有主动模式和被动模式两种 然后笔者在工作中搭建了ftp,但是没有开启他的被动模式. 然后server端的防火墙开放了21端口. 因此客户端能连上server,但是输入命令会提示.(首先要数据passive off命令关闭客户端以被动模式连接server端) 原因是ftp在主动模式下是通过21端口进行登陆的,但是后续是通过20端口与客户端进行数据交换. 因此笔者在这

Linux下一个简单的日志系统的设计及其C代码实现

1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回值及其执行情况.脚本执行及调用情况等.通过阅读日志文件,我们能够较快地跟踪程序流程,并发现程序问题. 因此,熟练掌握日志系统的编写方法并快速地阅读日志文件,是对一个软件开发工程师的基本要求. 本文详细地介绍了Linux下一个简单的日志系统的设计方法,并给出了其C代码实现.本文为相关开发项目Linux

LINUX下的简单线程池

前言 任何一种设计方式的引入都会带来额外的开支,是否使用,取决于能带来多大的好处和能带来多大的坏处,好处与坏处包括程序的性能.代码的可读性.代码的可维护性.程序的开发效率等. 线程池适用场合:任务比较多,需要拉起大量线程来处理:任务的处理时间相对比较短,按照线程的周期T1(创建阶段).T2(执行阶段).T3(销毁阶段)来算,执行阶段仅占用较少时间. 简单的线程池通常有以下功能:预创建一定数量的线程:管理线程任务,当工作线程没有事情可做时休眠自己:销毁线程池. 复杂一些的线程池有额外的调节功能:管