zoukankan      html  css  js  c++  java
  • FTP服务搭建

    一、FTP协议

    FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。FTP协议属于网络层协议中的应用层

    二、FTP服务开启,搭建文件传输服务器,传输数据

    工具:FileZilla系统环境:win7 ;FileZilla是目前主流的免费FTP客户端,包括FileZilla客户端和FileZilla Server,下面介绍FileZilla的配置和使用方法:

    FileZilla客户端下载地址:http://www.pc6.com/softview/SoftView_32448.html  安装简单,一步一步执行就好,安装过程中如果修改了管理端口,请记住修改的端口号

    (1)安装完成后开启FileZilla Server FTP server服务:点击开始-运行-services.msc-开启FileZilla Server FTP server服务。如下

    (2)启动FileZilla伺服器,在服务器连接窗口上填写host,端口和密码,本机就是127.0.0.1,端口是安装过程中修改的,默认是14147,密码默认为空,点击connect

    如下:

    connect之后,在FileZilla伺服器的上半部分可以看到FTP服务器的运作情况,当出现Logged on 字样时,说明成功上线。红色警告可以忽略,如下

    (3)用户设置:在general选项中添加用户-设置用户名-密码-点击OK(也可以自己创建组,相同权限的用户归属到同一个组里面,这样就不用重复多次设置每个用户的权限等参数,简化配置和管理工作)

    (4)选定资料夹:在Shared folders中添加文件夹和开放权限-点击OK

    (5)验证FTP服务是否搭建成功,本地访问ftp://127.0.0.1或者ftp://172.18.0.5 (172.18.0.5是本机IP)

    看起来服务是已经搭好了....

    三、排错

    上面显示FTP服务已搭好,本机可以成功访问,但是在局域网内给其他同事传文件时,发现报425错,无法打开数据连接,如下:

    经过查资料以及对FTP协议的学习了解到:

      FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。

    两种模式的工作原理贴下面:以下内容来自网络,复制粘贴的(对理解FTP协议相当有用)原链接:https://blog.csdn.net/zhaoyangkl2000/article/details/78225709

          Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。(可以看到在这种方式下是客户端和服务器建立控制连接,服务器向客户端建立数据连接,其中,客户端的控制连接和数据连接的端口号是大于1024的两个端口号(临时端口),而FTP服务器的数据端口为20,控制端口为21)

      Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个临时端口(也叫自由端口,端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。(可以看到这种情况下的连接都是由客户端向服务器发起的,与下面所说的“为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式”相对应,而服务器端的数据端口是临时端口,而不是常规的20)

      很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

    所以在这里,我们要开启被动模式,防火墙的入栈规则里放开数据传输的端口段或者单个端口,我这里设置为:2013-2018

    步骤如下:(1)在FileZilla伺服器页面点击edit-settings-passive mode settings-勾选客户端端口范围-填写2013-2018

    (2)在ftp服务器主机上新建入栈规则:点击开始-控制面板-windows防火墙-高级设置-入站规则-新建规则-选择端口-下一步选择特定端口-填写2013-2018-允许连接-完成

    完成后的规则如下:

    (3)验证其他主机172.18.0.128能否访问FTP服务:ftp://172.18.0.5,这次没有再报错,可成功登录,在伺服器的面板上查看整个连接过程,如下

    OK!ftp服务已搭建完成,可以成功传输文件啦

    理论部分引用:https://blog.csdn.net/zhaoyangkl2000/article/details/78225709

  • 相关阅读:
    Educational Codeforces Round 10 C. Foe Pairs 水题
    Educational Codeforces Round 10 B. z-sort 构造
    CDOJ 1048 Bob's vector 三分
    Educational Codeforces Round 10 A. Gabriel and Caterpillar 模拟
    第14届电子科大初赛民间盗版部分题目题解
    HDU 5654 xiaoxin and his watermelon candy 离线树状数组 区间不同数的个数
    HDU 5653 Bomber Man wants to bomb an Array. dp
    HDU 5652 India and China Origins 二分+并查集
    HDU 5651 xiaoxin juju needs help 数学
    HDU 5650 so easy 数学
  • 原文地址:https://www.cnblogs.com/ermao0423/p/9474112.html
Copyright © 2011-2022 走看看