ftp服务器 订阅
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。 [1] 展开全文
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。 [1]
信息
服务协议
FTP协议提供服务
定    义
支持FTP协议的服务器
中文名
FTP服务器
外文名
File Transfer Protocol Server
FTP服务器简介
FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一。FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。 [2]  FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式。通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作。虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器。同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP服务的功能是实现完整文件的异地传输。特点如下: [3]  (一)FTP使用两个平行连接:控制连接和数据连接。控制连接在两主机间传送控制命令,如用户身份、口令、改变目录命令等。数据连接只用于传送数据。 [3]  (二)在一个会话期间,FTP服务器必须维持用户状态,也就是说,和某一个用户的控制连接不能断开。另外,当用户在目录树中活动时,服务器必须追踪用户的当前目录,这样,FTP就限制了并发用户数量。 [3]  (三)FTP支持文件沿任意方向传输。当用户与一远程计算机建立连接后,用户可以获得一个远程文件也可以将一本地文件传输至远程机器。 [3] 
收起全文
精华内容
下载资源
问答
  • Java实现与FTP服务器的数据传输2

    热门讨论 2015-11-12 16:53:20
    Java实现与FTP服务器的数据传输。 其中包含了两种实现方法。详情请参见本人博客: http://blog.csdn.net/lemon_tree12138/article/details/49777467
  • c#实现FTP服务器

    2013-05-27 22:10:24
    c#实现FTP服务器, 功能 ①、按标准FTP协议登录FTP服务器,进行身份验证; ②、显示远程目录、文件列表,进行目录切换; ③、目录、文件列表的排序显示(文件名、时间、类型); ④、能上传文件、下载、删除文件...
  • Android版FTP服务器代码

    热门讨论 2013-10-29 23:27:54
    本应用是基于开源项目SwiFTP的一款轻量级FTP服务器,如果想了解更多,欢迎访问我的博客主页:http://blog.csdn.net/way_ping_li ,由于时间仓促,错误与疏忽之处在所难免,希望各位朋友们以邮件的形式反馈问题给我,再次...
  • C++实现的FTP服务器

    热门讨论 2013-12-30 17:37:36
    实时记录显示服务器和客户端交互的状态变化。支持添加用户,对用户进行管理。可以统计在线用户名和对应的IP地址以及登陆时间。可以统计对传输字节数,当前连接数,文件下载上传成功失败的数目等数据进行统计。 一切...
  • stm32下的ftp服务器

    热门讨论 2013-12-21 09:14:07
    基于红龙103开发板下的lwip协议栈搭建的ftp服务器
  • 使用 C# 创建一个 FTP 服务器,供大家一起共同分享学习。
  • linux ftp服务器搭建

    千次阅读 多人点赞 2020-03-01 18:12:00
    ftp服务器安装设置 第一步: 安装vsftpd 第二步: 配置文件 第三步: 访问服务器进行测试

     ftp服务器安装设置

    文章篇幅较长内容主要有可以对以下的内容进行搜索

    *******************************************************************************

    用户登录控制
    禁止用户切换到其他目录。
    设置欢迎信息
    限制文件的传输速度
    实现实体用户(本地用户、虚拟用户)访问
    用户分开管理不同用户有不同的权限

    ******************************************************************************* 

    第一步:

    安装vsftpd

    第二步:

    配置文件

     

     

    第三步:

    访问服务器进行测试

     ============================

     后面的内容是对 ftp 服务器进行进一步的安全控制(用户登录控制)

    ============================

    用户无法登陆

    vim /etc/vsftpd/ftpusers

    该文件中保存的用户无法进行登录操作。

    登录成功之后,默认进入到用户的家目录下。 

     如果要访问 pub 文件夹,在路径后面加上 pub 就能访问到该文件

    userlist_enable=YES

    userlist_deny=YES

    的时候, /etc/vsftpd/usr_list 文件中保存的用户无法登录ftp

    vim /etc/vsftpd/vsfptd.conf

     vim /etc/vsftpd/ftpusers

     vim /etc/vsftd/user_list

     使用root用户登录的时候无法进行登录

    说明:

    userlist_enable=YES

    userlist_deny=YES

    在ftpuser 不存在的用户root(可以进行登录) 和 user_list 存在的用户root(不可以登录),最终root不可以登录

    将ftpusers 中root用户取消注释,则root 用户无法登录到ftp。

    vim /etc/vsftpd/ftpusers 

    userlist_enable=YES

    userlist_deny=NO

    的时候, /etc/vsftpd/usr_list 文件中保存的用户可以登录ftp

     root 用户还是无法进行登录

    说明:

    userlist_enable=YES

    userlist_deny=NO

    的时候, user_list(可以登录) 和 ftpuser(不可以登录) 文件中同时存在的用户是也是无法进行登录操作的。

    结论:vsftpd 执行的文件顺序是先执行 user_list 再执行 ftpuser

    --------------------------------------------------------------------------------------- 

    下面的在 ftpuser 中注释掉了 root,在 vsftpd.conf 文件中注释掉,userlist_deny  userlist_enable

     ---------------------------------------------------------------------------------------

    说明,用户通过 doc 界面然后登录,就可以获得服务器上任何(该用户所拥有权限的)文件。显然这是不安全的。

    --------------------------------------------------------

    禁止用户切换到其他目录。

    ---------------------------------------------------------

    vim /etc/vsftpd/vsftpd.conf

    chroot_local_user=YES 本地用户都不可以切换到主目录以外的目录

    /etc/vsftpd/chroot_list 该文件中用户 “能” 切换到主目录以外的目录,默认是没有这个文件的,

    vim /etc/vsftpd/chroot_list 手动创建一个文件,一个用户占一行

    root 用户不能进行目录的切换

    vim /etc/vsftpd/chroot_list

    重启服务

    ------------------------------------------

    设置欢迎信息

    ------------------------------------------

    vim /etc/vsftpd/vsftpd.conf

    重启服务

    或者,指定一个文件,将欢迎信息写到文件里面

    vim /etc/vsftpd/vsftpd_banner_file 

    重启服务

    ----------------------------------------------------------------

    限制文件的传输速度

    ---------------------------------------------------------------

    vim /etc/vsftpd/vsftpd.conf

    #匿名用户最大传输速度,单位 B/s(字节每秒),默认是0,表示不限速
    
    anon_max_rate=0
    
    #本机使用者最大的传输速度
    
    local_max_rate=0

    一般来讲是不进行限制的,ftp 服务器目前一般都是在内网进行使用,都是自己人用,没有必要限速。 

     

    ---------------------------------------------------------------

    实现实体用户(本地用户、虚拟用户)访问

    --------------------------------------------------------------

    前面使用的root 用户都是 本地用户进行登录的,本地用户是可以使用账号密码登录到linux 操作系统上面的。

    方式1.文本方式进行设置

    需要的环境:

    db4

    db4-devle

    db4-java

    db4-tcl

    db4-utils

    yum install db4

    yum install db4-java

    yum install db4-tcl

    生成数据库

    db_load -T -t hash -f loguser.txt vsftpd_login.db

    设置数据库文件的权限

    vim /etc/pam.d/vsftpd 

    #%PAM-1.0
    #session    optional     pam_keyinit.so    force revoke
    #auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
    #auth       required    pam_shells.so
    #auth       include     password-auth
    #account    include     password-auth
    #session    required     pam_loginuid.so
    #session    include     password-auth
    #添加的内容,我的系统是 64位的,在lib 里面没有 pam_userdb.so 这个文件
    auth       required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
    account    required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
    

    创建用户

     echo "etony's vsftpd server" > /home/vsftpd/msg

    vim /etc/vsftpd/vsftpd.conf

    #虚拟用户登录系统设置
    guest_enable=YES
    guest_username=virtual
    

    重启服务

     

    登录成功。

    方式2:数据库方式进行设置

    安装 mysql 数据库

    参考centos6:https://blog.csdn.net/yang_zzu/article/details/104352726

    参考centos7:https://blog.csdn.net/yang_zzu/article/details/104469902(使用docker容器进行安装)

    由于我的centos6 在之前安装 centreon 的时候,导致数据库无法在这台服务器上运行。

    所以现在使用另外的一台linux 服务器上面的mysql 数据库,配置原理是一样的。

    新建一个vsftpd 数据库 

     连接到vsftpd数据库执行语句

    -- 创建表
    create table user(
    	name varchar(10),
    	passwd VARCHAR(20)
    );
    
    -- 添加数据
    insert into user values('ftp','123456');
    
    -- 查询数据
    SELECT * from user;
    
    -- 给虚拟用户所映射的本地用户相应的数据库操作权限
    grant select,insert on user to 'virtual'@'%' IDENTIFIED by '123456'
    

     grant select,insert on user to 'virtual'@'%' IDENTIFIED by '123456'

    表达的是 将 user 表的 select,insert 赋给 virtual 用户,任何地址都可以进行连接,连接密码 123456

     新建pam 文件

    vim /etc/pam.d/vsftpd.u

    #我的是64 位操作系统,所以使用的 lib64
    auth      required      /lib64/security/pam_mysql.so    user=virtual    passwd=123456   host=192.168.44.161     db=vsftpd       table=user
    account   required      /lib64/security/pam_mysql.so      user=virtual    passwd=123456   host=192.168.44.161     db=vsftpd     table=user      usercolumn=name passwdcolumn=passwd     crypt=2
    

    crypt: 密码验证机制,0:明文,1:DES加密,2:MYSQL的password()函数加密,3:MD5算法,4:sha加密

    yum install pam_mysql 

     

    查找pam_mysql.so 文件

    find / -name pam_mysql.so

     

     如果 pam_mysql.so 文件,在 /lib64/security/ 文件夹内不存在,则需要将找到的文件,复制到这个文件夹下一份

    ftp 用户正常的登录系统 

    ftp 可以上传文件,下载部分文件,该用户上传的文件,权限是600,可以下载权限是666 的文件

    ------------------------------------------

    用户分开管理不同用户有不同的权限

    ------------------------------------------

    vim /etc/vsftpd/vsftpd.conf

     创建 /etc/vsftpd/vsftpd_user_conf 文件夹

     添加 zhuji 用户的配置文件(如果对login 用户进行配置,只要添加 login 文件然后添加配置即可)

    对 zhuji 虚拟用户进行设置

    #允许写操作
    write_enable=YES
    #允许上传
    anon_upload_enable=YES
    #允许创建文件夹
    anon_mkdir_write_enable=YES
    #默认情况下,虚拟用户只能读取任何用户都可读取的文件和目录(公共资源),取消用户的只读限制
    anon_world_readable_only=NO
    #允许删除和重命名文件夹
    anon_other_write_enable=YES
    #本地用户创建的文件夹777-027=750,文件666-027=640,权限r:4  w:2   x:1
    local_umask=027

     

    本地用户 local_umask
    虚拟用户 anon_umask

     创建虚拟用户家目录的上传文件的文件夹 ftp

    创建 protect 文件夹 

    chown virtual:  protect/ 

    chmod 770 protect/

    本地用户无法上传文件到 该ftp文件夹(本地用户无法登录了)

    将ftp 文件夹的所有者,去掉 写权限

    到目前为止,

    zhuji 用户登录到ftp 服务器之后的权限有:

    上传,下载,重命名,创建文件夹,在ftp文件夹不能上传文件,上传到 protect 文件夹中的文件该用户可以看到

    login 用户的权限:

    上传,下载(部分文件,通用的文件可以下载,自己上传的和别人上传的无法下载,例如:可以下载在服务器上创建的文件),在ftp文件夹不能上传文件,上传到 protect 文件夹中的文件该用户  “不” 可以看到

     

    展开全文
  • FTP服务器的配置

    千次阅读 2019-01-23 16:48:16
    FTP是文件传输协议(File Transfer Protocol)的缩写,它是一套用于在网络上进行文件...我们可以通过一个支持FTP协议的客户机程序,连接到远程主机上的FTP服务器,向服务器发出命令,服务器执行我们发出的命令,并...

    FTP文件传输协议(File Transfer Protocol)的缩写,它是一套用于在网络上进行文件传输的标准协议,使得不同的主机间可以共享文件。

    FTP服务器,简单的说,就是支持FTP协议的服务器。与大多数的Internet服务一样,FTP也是一个客户机/服务器系统。我们可以通过一个支持FTP协议的客户机程序,连接到远程主机上的FTP服务器,向服务器发出命令,服务器执行我们发出的命令,并将执行的结果返回到我们的客户机。一般在各个大学中使用简单的FTP实现资源的共享,比如我们把一个比较大的软件的镜像文件上传至校园网的FTP服务器,学生只需要登录校园网,在地址栏中输入ftp:// + ip地址就可以进行访问下载,并且速度非常快。我们部署在电脑上的FTP服务器,不仅可以在局域网内访问FTP服务器,也可以在外网访问,只需要把地址端口映射到外网就可以,这个我们今天先不谈。

    本文要讲的就是如何配置自己的FTP服务器,Windows和Linux下都可以配置自己的FTP服务器,本文基于Windows10系统和Linux的Ubuntu18.04系统。

    • Windows10系统
    • Linux系统

    Windows10系统

    一、安装FTP服务器

    首先,在Windows设置中搜索启用或关闭Windows功能,进入。

    然后,勾选FTP服务FTP扩展性IIS管理控制台,点击确定,等待系统自动配置成功。

     二、添加FTP站点

    右键此电脑—>管理,找到IIS管理器,右键网站—>选择添加FTP站点

    按照提示填写站点信息, 物理路径从自己本地选择要放在服务器上的文件夹,我这里路径是用于测试的F盘下的FTP上传下载文件夹,填写完后点击下一步。

     然后是绑定端口号和SSL设置,IP地址填写你自己电脑的IP地址,无SSL。

     如果不知道自己电脑的IP地址可以在命令行中输入ipconfig,查看自己的IP地址。

    最后是身份验证和授权信息,勾选完毕点击完成。就能看到我们已经创建好了一个我们自己的FTP服务器。

     三、测试FTP站点

    既然服务器已经搭建好了,我们来测试一下是不是可以访问了。现在刚才选择的物理路径下随便放入一个或几个文件。然后打开浏览器在地址栏输入FTP地址(ftp:// + 你的IP地址),就可以看到我们刚才放在路径下的文件了。

     另外,如果你想要设置在访问时需要用户名和密码才能登录,可以在IIS管理器中设置FTP身份验证。

     


    Linux系统

    我的Linux系统是Ubuntu18.04,我的用户名是sakuya,主机名是ubuntu

    1.下载和安装FTP

    sakuya@ubuntu:~$ sudo apt-get install vsftpd

    2.配置FTP

    • 设置FTP登录密码(用户名默认为系统用户名,不需要设置,我的是sakuya):
    sakuya@ubuntu:~$ sudo passwd ftp
    • 修改vsftp的配置文件:
    sakuya@ubuntu:~$ sudo gedit /etc/vsftpd.conf

    输入后会打开名为vsftpd.conf的配置文件,修改里面的一些内容,修改完后点击保存。

    在配置文件中找到”anonymous_enable=YES “改为 “anonymous_enable=NO”(是否允许匿名ftp,若不允许选NO)
    取消如下配置前的注释符号:
    local_enable=YES(是否允许本地用户登录)
    write_enable=YES(是否允许本地用户写的权限)
    chroot_local_user=YES(是否将所有用户限制在主目录)
    chroot_list_enable=YES(是否启动限制用户的名单)
    chroot_list_file=/etc/vsftpd.chroot_list(可在文件中设置多个账号)
    

    重启FTP服务器:

    sakuya@ubuntu:~$ sudo service vsftpd restart

    3.测试FTP站点

    FTP服务器已经安装和配置好了,再测试一下。

    Linux下获取IP地址,终端中输入:

    ifconfig -a

    和Windows一样在浏览器地址栏中输入FTP地址(ftp:// + 你的IP地址),然后输入你的用户名和刚才设置的密码即可访问,只要在同一局域网内都可以,不论是Linux还是Windows系统。

    登录时可能会出现如下一些错误:

    • 错误: 500 OPPS:could not read chroot() list file : /etc/vsftpd.chroot_list

    错误原因: 在etc文件夹中没有vsftpd.chroot_list文件。

    解决方法:在etc文件夹中创建一个名为vsftpd.chroot_list的文件(只需创建,不需要写内容):

    sakuya@ubuntu:~$ cd /etc
    sakuya@ubuntu:/etc$ sudo touch vsftpd.chroot_list
    • 错误: 500 OPPS:vsftpd : refusing to run with writable root inside chroot()

    错误原因:chroot不可写。

    解决方法:在配置文件/etc/vsftpd.conf中结尾加入一行:allow_writeable_chroot=YES

    修改完后记得再重启服务器一次

    我遇到的错误就这两处,然后再登录ftp服务器,就没有错误出现了,默认的FTP打开的目录为该用户下的/Home文件夹:

    如果遇到了FTP服务器只能上传不能下载的问题,按上面的方法打开配置文件/etc/vsftpd.conf,找到:

    #write_enable=YES
    #local_umask=022

    去掉前面的#即可

     

    展开全文
  • FTP服务器的原理

    万次阅读 多人点赞 2018-08-02 11:38:35
    在我们平时上网的过程中,一般都是使用FTP的客户端对商家提供的服务器进行访问(上传、下载文件),例如我们微软的SkyDrive网盘,115网盘等。 FTP介绍 FTP文件传输协议(File Transfer Protocol),用于Internet...

    在我们平时上网的过程中,一般都是使用FTP的客户端对商家提供的服务器进行访问(上传、下载文件),例如我们微软的SkyDrive网盘,115网盘等。

    FTP介绍

    FTP文件传输协议(File Transfer Protocol),用于Internet上的控制文件的双向传输,是一个应用程序。工作在TCP/IP协议族的应用层,其传输层协议是TCP协议,目的在于提高文件传输的共享性和可靠性,是基于客户/服务器模式工作的。

    FTP协议

    相比其他协议,如HTTP协议,FTP协议要复杂一些。与一般的C/S模型只会建立一个socket连接,这个连接同时处理服务器和客户端的连接命令和数据传输。而FTP会建立两个连接,将命令与数据分开传输,正是因为这样,提高了传输效率

    FTP使用两个端口,分别为控制端口(命令端口)和数据端口。控制端口号一般为21,数据端口一般为20。控制socket用来传输命令,数据socket用来传输数据。每一个FTP命令发送后,FTP服务器就会返回一个字符串,其中包含一个响应码和一些说明信息,其中响应码主要用于判断命令是否被成功执行了。

    那么,基于FTP协议的客户端和服务器端是如何进行“沟通”的?我们来一探究竟吧。

    将FTP客户端和服务器端之间的“沟通”分为4个阶段:

    1.启动FTP

    客户通过FTP客户端软件,发起FTP交互式命令,告诉服务器,服务器上的FTP服务会接收到这个命令,并解析发来命令,然后发出回复信息,客户端对服务器说:“我想和你聊会天,可以吗?”

    2.建立控制连接

    客户端TCP层会根据服务器的IP地址,向服务器提供FTP服务的21端口发出主动建立连接的请求,服务器接收到请求后,经过三次握手,客户端与服务器端就建立了一个TCP连接,就好比是我们在A地和B地之间传输货物,首先应该建立一条运送货物的通道。这个TCP连接称为控制连接,用户发出的FTP命令和服务器的回应都是依靠该连接来传送的,在用户退出前一直存在。

    3.建立数据连接,并进行文件传输

    到目前为止,客户端和服务器端已经建立了聊天的通道,聊天过程中,对方觉得很投机,想互赠礼物(将客户端和服务器端进行文件的传输比喻为互赠礼物)怎么办,这个时候我们就需要一条通道来进行礼物的传输(将数据连接比喻为数据连接),那么是如何赠送礼物的?
    (1)客户端通过控制连接发送一个上传文件的命令,会自己分配一个临时的TCP端口号。
    (2)客户端通过控制连接向服务器发送一个命令告诉服务器自己的IP地址和临时端口号,然后发送一条上传文件的命令。(就好客户端要赠送礼物给服务器时,不只发送一个送礼物的命令,在这之前还要发送一条自我介绍的命令,即IP地址和端口号,来告诉服务器和他聊天的是哪一个客户)
    (3)服务器接收到客户端的IP地址和临时端口号后,以这个IP地址和端口号为目标,使用服务器上的20端口(数据端口),向客户端发出主动建立连接的请求。
    (4)客户端收到请求后,通过三次握手后就与服务器之间建立了另外一条TCP连接数据连接(好比礼物传输的通道)。
    (5)客户端在自己的文件系统中选择要上传(赠送礼物)的文件。
    (6)客户端将文件写入到文件传输的进程中(即网络流中)。
    (7)文件传输完成后,由服务器主动关闭该数据的连接。

    4.关闭FTP

    当用户退出FTP时,客户端发送退出命令,之后控制连接被关闭,FTP服务结束。

    总结:

    (1)客户端和服务器端进交互的过程中,采用的是TCP协议。
    (2)建立两条TCP连接。控制连接,主要做的事情是传输命令和响应信息;数据连接,必须是先有控制连接才有数据连接,因为要进行问价传输首先必须知道客户的IP地址和端口号,这个过程通过控制连接发送的命令来告知服务器,客户单的IP地址和端口号,之后再在两者之间建立数据连接来传输文件。
    (3)在服务器端,控制连接(21)和数据连接(20)使用了不同的端口号。

    文件传输方式

    1.ASCLL传输方式

    假设用户正在拷贝的文件包含的简单ASCLL文本,如果我们使用的是windows系统,而运行FTP服务器的远程机上是Linux系统,那么使用ASCLL传输模式会将\r\n转为\n。当文件传输时FTP会自动调整文件的内容以便于把文件解析为另外那台计算机存储文本文件的格式。

    2.二进制传输方式

    二进制传输时,在拷贝任何非文本文件时,FTP会逐字拷贝,不会对这些文件进行处理。

    两种传输方式的区别

    相比之下,二进制传输方式会更好一些,我们经常进行传输的文件格式不单单是文本文件,可能是程序、数据库、压缩文件。ASCLL传输方式会改变我们的文件,即使不需要也会进行转译,会导致传输稍微变慢,也会损坏数据。

    文件传输模式(即赠送礼物方式)

    控制连接用于传输控制命令,随客户端一同存在的,而数据连接只是短暂存在的,每次要发生数据时才建立数据连接,数据传输完就断开数据连接。FTP的控制连接总是由客户端向服务器发起的,而数据连接的建立有两种途径,一种是客户端连接到服务器端,另一种是服务器连接到客户端,分别对应两种工作模式:被动模式和主动模式。主动和被动是对于FTP服务器而言的。

    Port模式(主动模式)

    这里写图片描述
    首先建立控制连接通道,客户端向FTP服务器的21端口发起连接,经过3次握手建立控制连接通道。控制连接建立后,双方就可以进行交换信息,在需要传输数据时,主动模式下,客户端通过控制连接通道发送一个PORT命令并告知服务器数据连接通道的端口B,然后服务器向客户端的B端口发出连接请求,数据连接通道建立,就可以进行数据的传输,传输完毕后数据连接就会关闭。

    Passive模式(被动模式)

    这里写图片描述
    首先客户端向服务器端21端口发起连接,经过三次握手建立控制连接通道。
    被动模式需要进行数据传输时,客户端向服务器发送一个PASV表示进行被动传输,数据通道的建立是由客户端向服务器发起的,此时客户端需要知道连接到服务器的是哪一个端口,服务器向客户端发送被动模式的端口X,之后客户端向服务器的X端口发起连接建立,建立数据通道。

    FTP命令

    1.访问命令:

    访问命令解释
    USER <username>用于指定登录的用户名,以便服务器进行身份验证。USER命令通常是控制连接建立后发出的第一个命令。
    PASS <password>用于指定用户密码,该命令用于登录用户命令之后。
    REIN重新初始化用户信息,该命令会终止当前 USER的传输,也会终止正在传输的数据,然后重置所有参数,并打开控制连接,以便客户端再次发出USER命令。
    QUIT关闭与服务器之间的连接。

    2.模式设置命令

    模式设置命令解释
    PASV告诉服务器,让FTP服务器在指定的数据端口进行监听,被动接受客户端的请求。是默认模式。
    PORT <address>告诉FTP服务器,客户端监听的端口号是address,FTP服务器采用主动模式连接客户端。
    TYPE <data type>指定要传输的数据类型,有ASCLL和二进制。
    MODE <mode>指定传输模式,S(流),B(块),C(压缩)。

    3.文件管理命令

    文件管理命令解释
    CWD <directory>用户可以在不同的目录或数据集下工作而不改变登录信息,directory一般是用户名与系统相关的文件集合。
    PWD返回当前工作目录。
    MKD <directory>>在指定目录下创建新目录,directory表示指定目录的字符串。
    CDUP回到上层目录。
    RMD <directory>删除指定目录。
    LIST <name>返回指定路径下的子目录及文件列表,name为路径,若省略,返回当前路径下的文件列表。
    NLIST <directory>返回指定路径下的目录列表,省略路径时,返回当前目录。
    RNFR <old path>重新命名文件,该命令的下一条命令用RNTO指定新的文件名。
    RNTO <new path>和RNFR命令共同完成对文件的重命名。
    DELE <filename>删除指定路径下的文件。

    4.文件传输命令

    文件传输命令解释
    RETR <filename>下载指定路径的文件。
    STOR <filename>上传一个指定的文件,并将其存储在指定的位置,如果文件已经存在,原文件被覆盖,如果文件不存在,则创建新文件。

    5.其他命令

    SYST:返回服务器使用的操作系统。

    FTP响应码

    客户端发送FTP命令后,服务器会返回FTP的响应码,FTP响应码由ASCLL编码的3为数字开头,后接一行文本提示信息,数字和提示信息中有一个空格,每个响应码以回车换行结束。

    第一位数字代表的含义:

    响应码含义
    1XX信息已经被服务器正确接收,但尚未处理。
    2XX信息已经被服务器正确处理完毕。
    3XX信息已经被服务器正在接收,并正在处理。
    4XX信息处理错误,暂时的。
    5XX信息处理错误,永久的。

    第二位数字代表的含义:

    响应码含义
    X0X语法错误。
    X1X系统状态和信息。
    X2X与FTP服务器连接状态。
    X3X用户认证有关信息。
    X4X未定义。
    X5X与文件系统有关的信息。

    常用的响应码:

    响应码含义响应码含义
    110重新启动标记应答332登录时需要账户信息
    120服务在指定时间内准备好350请求的文件操作需要进一步的口令
    125数据连接打开,开始传输421服务关闭
    150文件状态良好,将要打开数据连接425不能打开数据连接
    200命令成功426关闭连接,终止传输
    202命令没有执行450文件不可用
    211系统状态回复451中止请求操作,有本地错误
    212目录状态回复452磁盘空间不足
    213文件状态回复500无效命令
    214帮助信息回复501语法错误
    215系统类型回复502命令未执行
    220服务就绪503命令顺序错误
    221服务关闭控制连接,可以退出登录504无效命令参数
    225数据连接打开,无传输正在进行530未登录
    226关闭数据连接,请求的文件操作成功532存储文件需要账户信息
    227进入被动模式550未执行请求操作
    230用户已经登录551请求操作终止,页类型未知
    250请求的文件操作完成请求文件操作终止,超过存储分配
    257创建路径名553为执行请求的操作,文件名不合法
    331用户名正确,需要口令
    展开全文
  • 文件服务器和ftp服务器的区别

    千次阅读 2020-06-24 04:09:20
    您可能已经听说过“ FTP服务器”和“文件服务器”这两个术语。 这两种解决方案是相似的,许多人错误地互换使用这些术语。 但是,FTP服务器和文件服务器有一些不同的变化,这可能意味着一种适合您的业务,而另一种不...

    您可能已经听说过“ FTP服务器”和“文件服务器”这两个术语。 这两种解决方案是相似的,许多人错误地互换使用这些术语。 但是,FTP服务器和文件服务器有一些不同的变化,这可能意味着一种适合您的业务,而另一种不合适。

    在能够选择适合您需求的服务器之前,至关重要的是,您必须确切了解什么是FTP服务器和文件服务器。 然后,您需要更多地了解它们的异同。 掌握了所有事实之后,您便可以选择最适合您业务需求的服务器。

    自1990年代以来,FTP或文件传输协议(file transfer protocol)就已经存在。这是一种将文件传输到世界上连接到互联网的任何计算机上的一种方法,也就是广域网 Wide Area Network (WAN)。作为对比,文件服务器只能在企业内部网络局域网Local Area Network (LAN)中访问。简单来说,WAN是公共的。局域网是封闭的。它们本质上都是充当企业的共享硬盘。

    定义:

    FTP服务器作为FTP应用程序来运行,使世界各地的用户都可以访问它们。数据存储在主机管理的一个远程位置上。您可以选择托管的FTP服务器,这样您的企业就不必担心安装,购买或维护自己的硬件。您只需使用Internet访问服务器,其余的就由主机完成。

    现在,您对FTP服务器和文件服务器有了更多的了解,让我们探索这两种解决方案的重叠之处以及它们之间的区别。

    相似:

    都是用来作文件的存储和共享的;
    公司需要一个集中的位置来存储文件,文件服务器和ftp服务器都能满足这个需求;

    文件服务器是充当了办公室的本地共享磁盘/硬盘, 并且只能在企业的内网中访问,出了公司就用不了

    而如果用ftp服务器的话,就能将文件通过网络都上传到远程的服务器上,类似于云盘,百度网盘,只不过办公室的人都能访问里面的文件,根据不同的权限,会有相应的操作权限,增删改查

    不同:

    第一个关键区别是可访问性。 如果您的公司使用FTP服务器,则只要您有网并且连上网登陆后,就可以从世界任何地方访问文件。 相反,文件服务器是本地服务器,因此只能在企业内部网络中访问。 如果基本数据只能在办公室范围内访问,这将严重限制公司进行远程工作的能力。

    另一个不同之处是FTP服务器和文件服务器的安全要求。 FTP服务器需要多层安全保护和加密,以确保数据安全。 这是因为文件是共享的,并因此暴露在网络(外网)中的。 文件服务器仍然需要安全措施,但是如何保持数据安全有不同的考虑因素。

    文件恢复是这两种解决方案不同的另一个方面。 使用FTP服务器,所有内容都存储在云中,因此,由于用户错误或灾难(例如停电)而丢失的任何文件都易于恢复。 使用文件服务器,文件恢复受到限制。 由于数据存储在服务器上,因此如果服务器发生故障,您的文件可能会永远丢失。

    总结

    总体而言,使用FTP服务器,获利能力很高。 除了启用远程工作功能外,这些解决方案还促进了大数据传输,使其非常适合存储大量数据的公司。

    该如何选择

    如果您想要一个可以与外部方(例如客户或供应商)轻松安全地共享文件的解决方案,则FTP服务器是您的理想选择。 或者,如果您正在寻找一种封闭的解决方案,该解决方案只能由内部工作人员(作为LAN的一部分)或通过VPN的远程工作人员访问,则文件服务器就可以满足您的需求。 如果您的企业需要将远程工作人员访问与外部文件共享相结合的解决方案,同时提供增强的安全性和文件恢复功能,则FTP服务器是最佳选择。

    查了半天中文资源没有解释太清楚的,所以就有了这篇翻译(谷歌翻译),希望能给想要了解区别的朋友们一点小小的帮助。

    英文原文在这:FTP Servers vs File Services: What are the Biggest Differences?

    如果觉得帮到了你,可以请您给个赞嘛! 嘿嘿,多谢啦!

    展开全文
  • 使用QT实现文件上传和下载----ftp服务器

    千次下载 热门讨论 2014-07-16 17:07:49
    使用QT实现文件上传和下载,服务器为FTP服务器,这是一个简单的测试源码。希望能够给初学者一定的启发。
  • Ubuntu系统搭建FTP服务器

    千次阅读 2020-08-05 10:02:38
    Ubuntu系统搭建FTP服务器 1、什么是远程操控? ​ 所谓远程操控,就是:当主机和操作者不在同一个地点,而操作者要远程控制一台主机,那么就需要在远程的计算机上进行与主机交互,那么这种技术就叫做远程操控。 2、...
  • C语言实现FTP服务器

    热门讨论 2013-01-17 20:13:45
    在linux上用C实现FTP服务器,可以上传文件和下载文件。
  • Ubuntu下架设FTP服务器

    千次阅读 2019-05-13 15:53:16
    转载自:... ... Linux下提供了很多的ftp服务器,这里我选用了安全,快速,简单的vsftpd作为FTP服务器。本文是我在自己的Ubuntu10.10-32位系统下搭建的。搭建方法简单,按照本过程,您也可以完全搭建自...
  • FTP服务器漏洞

    千次阅读 2019-10-10 15:33:22
    题目 ...(1)定义:FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思...
  • 免费ftp服务器主要是网络上用来传送文件的工具。但有些免费ftp服务器传输文件不是特别稳定。今天就来为大家盘点三款好用的免费ftp服务器。 第一款:IIS7服务器管理工具 这款软件的Ftp客户端做的是非常棒的,不仅具有...
  • linux搭建ftp服务器

    千次阅读 2021-01-26 15:30:31
    在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用。禁用匿名。第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1;第二个小组使用ftp2,工作目录在:/var/ftp/ftp2。  两个小组互相不能访问各自的...
  • 使用FileZilla等软件搭建ftp服务器

    千次阅读 2019-05-20 10:58:07
    FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务。简单地说,支持FTP协议的服务器就是FTP服务器。 一、常用的几款ftp服务器软件介绍 1.1 Server-U Serv-U是一种被广泛运用的FTP服务器端...
  • 推荐五款免费的ftp客户端 1、iis7服务器管理软件 它是一款免费而且专业的ftp多站点管理软件,而且可以实现ftp定时备份的功能。除此之外,它还是一款强大的服务器集成管理器,可以批量管理windows及linux服务器及...
  • windows上搭建FTP服务器

    千次阅读 2020-03-15 18:21:43
    为满足本机开发调试需求,在windows上搭建FTP服务器
  • FTP服务器搭建详细步骤

    万次阅读 多人点赞 2019-01-16 10:19:18
    FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地...
  • 怎样配置FTP服务器

    万次阅读 2019-03-25 00:23:08
    配置FTP服务器 FTP为文件传输协议,用于Internet上的控制文件的双向传输。要通过FTP来实现本地计算机与云服务器的文件传输,首先要在服务器上进行FTP的配置。 下面以Windows server 2008为例配置服务器的FTP: 一...
  • 前几天,写了一篇关于如何上传图片保存至FTP服务器的文章,今天继续把上传到FTP服务器的图片下载下来,在页面中进行显示。也就是满足了我们日常代码demo中,页面需要动态加载的图片的实例的实现。(不再需要手动把...
  • ftp服务器和sftp服务器

    千次阅读 2018-04-18 22:53:54
    windows中ftp服务器的建立方法:第一种:系统自带的ftp 开启服务: 建立ftp,映射地址和文件夹 新建用户和密码访问ftp 贴上java类的测试代码: package com.test; import java.io.File; ...
  • Win10搭建ftp服务器 打开控制面板 -> 程序和功能,点击启用或关闭Windows功能,勾选红色方框内的选项 控制面板 -> 管理工具,如下打开IIS管理器 先在本地磁盘中创建一个目录用来存放FTP站点的内容,如 E:\...
  • Linux网络实战- FTP服务器搭建

    千次阅读 2021-11-14 18:54:28
    FTP服务器是互联网上提供文件存储和访问访问的计算机,它们依照FTP协议提供服务,FTP是(文件传输协议).顾名思义,就是专门用来传输文件的协议,简单来说,支持FTP协议的服务器就是FTP服务器. vsftpd是"very secure FTP ...
  • linux 系统下搭建ftp服务器只需要几段命令,按照步骤一步一步的进行,就可搭建成功。 准备工作: linux系统为CentOS Linux release 7.5.1804 (Core) 可以使用lsb_release -a 命令查看 window系统中安装 SecureCRT...
  • FTP服务器配置

    千次阅读 2018-11-29 18:29:33
    一、理论知识 1.FTP服务器概念 FTP是文件传输协议(File Transfer Protocol),用于在网络上进行文件传输的一套标准协议,使用客户/...FTP服务器允许用户以三种认证模式登录到FTP服务器上 匿名开放模式:是...
  • 在ubuntu上部署安装ftp服务器

    万次阅读 多人点赞 2018-08-04 15:33:50
    FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文本传输协议”。用于Internet上的控制文件的双向传输。 在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)...
  • iis7远程桌面管理软件,是一款绿色小巧,功能实用的FTP工具软件,其界面简洁,操作方便,它支持FTP批量上传下载,它可以同时连接多台ftp服务器进行文件传输工作,还可以在线解压缩文件,支持文件查找,在线编辑等...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 353,954
精华内容 141,581
关键字:

ftp服务器