做本科生助教,老板让配置一个FTP传资料交作业,找了一台Windows服务器捣鼓,开始按网上教程自己配置特别麻烦,何西西说用Filezilla比较方便,就去Filezilla官网下载了Filezilla Server,本来以为会很轻松搞定,没想到还是碰到一堆坑,记录下来方便以后查阅。

服务器:Windows Web Server 2008 R2,64位

坑1:安装Filezilla Server报错 "could not load TLS network. Aborting start of administration interface"

原因:根据这个Filezilla  Forums里这个帖子https://forum.filezilla-project.org/viewtopic.php?t=39838讨论的,服务器没装补丁KB2533623。

出坑:去微软官网下载补丁,根据自己服务器型号选,我选了Update for Windows Server 2008 R2 x64 Edition (KB2533623),补丁装好以后安装Server不再报错。

坑2:打开Filezilla以后面板里红字显示"FTP over TLS is not enabled, users cannot securely"

原因:未启用TLS模式。

出坑:

打开Settings

选FTP over TLS settings,勾选Enable FTP over TLS support,然后点击中间Generate new certificate...按钮

空白处都可以随便填,注意Common name (Server address)那里填127.0.0.1就行了,下面给密钥和证书选一个保存的位置,然后点最下方Generate certificate

然后在Key password填个密钥密码,随便填一个用不到的,最后点击左下OK,再打开Filezilla就不会有错误提示啦~~

上面两个坑解决以后,就可以按照网上各种教程添加用户,分配文件夹访问权限了,基本配置参考《FileZilla怎么用 FileZilla配置FTP服务图文详解》,Settings里每一项的具体作用参考《免费ftp服务器FileZilla Server配置》,大部分都默认设置就行了。

坑3:服务器本地可以访问FTP,其他机器访问连输用户名和密码的界面都弹不出

原因:防火墙封住了服务器上FTP的入站端口,这种情况下Filezilla里连有人请求连接的信息都看不到。

出坑:

打开“高级安全Windows防火墙”

右击“入站规则”,点击“新建规则”

选择“端口”,选择“TCP”,输入FTP端口,如果之前配置Filezilla时没有改过,就用默认端口21

后面就选“允许链接”,所有时候都应用该规则,最后给这条规则命名如FTP Default Port,再用其他机器访问FTP就能弹出输入用户名和密码的窗口了,Filezilla里也能看到连接的信息啦~

坑4:服务器本地可以访问FTP,其他机器输入用户名和密码后提示“打开ftp服务器上的文件夹时发生错误,请检查是否有权限”

原因:这个坑博主把上面那条提示放到百度里,也没搜到什么靠谱的解决办法,然后想着装一个Filezilla Client,用Client访问FTP是不是能看到什么错误代码,果然找到了错误 代码"425 Can't open data connection.",从stackoverflow上搜到这个解决办法《Setup FileZilla Server Passive Ports on Windows Server 2012》。大概是说FTP的客户端默认以Passive mode(被动模式,博文最后解释了FTP的主动模式和被动模式)连接服务器,Filezilla会随机打开1-65535之间的一个端口,导致这个错误的原因就是,防火墙封住了Passive mode的端口。

出坑:

在Passive mode settings里勾选Use custom port range,如果让防火墙对1-65535端口全部开放有些危险,所以先在这里限定好端口范围

然后重复坑3在入站规则里打开21端口的过程,打开限定好的Passive mode端口范围,唯一的不同就是在下面这里输入50100-51100,给这条规则命名如FileZilla - Passive FTP Ports,再用其他机器访问就没有任何阻碍啦~

至此,Filezilla配置过程中的所有坑都跳出来了,这里再补充两个小知识和一个小技巧:

1. 防火墙的入站规则和出站规则

下面是从网上copy下来的一段解释,对于FTP服务器来说,只涉及外网访问服务器,不涉及服务器访问外网,所以上面坑3和坑4都是在防火墙的入站规则里打开端口,没有修改出站规则。

出站就是你访问外网,入站就是外网访问你,用户可以创建入站和出站规则,从而阻挡或者允许特定程序或者端口进行连接。用户可以使用预先设置的规则,也可以创建自定义规则,可以将规则应用于一组程序、端口或者服务,也可 以将规则应用于所有程序或者某个特定程序;可以阻挡某个软件进行所有连接、允许所有连接,或者只允许安全连接,并要求使用加密来保护通过该连接发送的数据 的安全性;可以为入站和出站流量配置源IP地址及目的地IP地址,同样还可以为源TCP和UDP端口及目的地TCP和UPD端口配置规则。

2.FTP的主动模式和被动模式

FTP连接包括两类通道:一个控制连接(命令联系通道),几个数据连接(资料联系通道)。前者用于传递客户端的命令和服务器端对命令的响应,默认使用服务器的21端口,生存期是整个FTP会话时间。后者用于传输文件和其它数据,如目录列表等,只在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同,根据数据连接是否由服务器发起,可以分为主动模式和被动模式。

关于ftp的主动模式(Active Mode)和被动模式(Passive Mode)》里解释得比较清楚,FTP协议是建立在TCP协议基础上的,所以客户端与服务器的每次交互都要经过三次握手,通过两张图可以区分这两种模式:

  • 主动模式:客户端端利用>1024的任意端口发起与服务器21端口建立连接,建立“命令联系通道”,如果要发生资料传输,通过21告知服务器端口(如1333)并 开始listen,服务器利用20端口向客户端的1333端口发起连接,建立“资料联系通道”。由于“资料联系通道”是由服务器主动建立的(图中步骤6),所以称作主动模式。

  • 被动模式:建立“命令联系通道”的方式和主动模式基本一样,也是连接先连接服务器的21端口。但是如果需要传输资料,客户端会送出PASV指令,告诉服务器要利用被动模式建立“资料联系通道”,然后服务器会打开一个端口并开始listen,并把这个端口通过“命令联系通道”告知客户端,客户端再打开一个端口,与服务器建立“资料连接通道”。由于“资料连接通道”是由服务器被动建立的,所以称作被动模式。

 

3.取消FTP的自动登录

有时候我们访问某个FTP时可能设置了保存密码,之后每次访问那个FTP,都会默认通过之前的用户名和密码登录。为了安全起见不让它再自动登录,或者FTP设置了不同权限的用户,我们想通过其他用户名登录,可以在已进入的目录空白处右击,选择“登录”,弹出的窗口里把“保存密码”选项取消掉就可以了,在这个窗口里也可以输入其他用户名及密码,就是通过其他身份访问FTP了。

---------------------
作者:guihua_wulipcy
来源:CSDN
原文:https://blog.csdn.net/u010376274/article/details/56479707?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

Filezilla配置FTP中的坑以及出坑办法的更多相关文章

  1. aliyun EC2配置利用filezilla配置ftp服务

    项目需要在阿里云EC2虚拟主机上配置ftp服务器,看了阿里云的教程可以使用filezilla配置,但一直遇到了一些问题.现记录一些步骤,避免以后出现类似问题. 1安装filezilla server ...

  2. python函数中把列表(list)当参数时的"入坑"与"出坑"

    在Python函数中,传递的参数如果默认有一个为 列表(list),那么就要注意了,此处有坑!! 入坑 def f(x,li=[]): for i in range(x): li.append(i*i ...

  3. jenkins配置过程中踩过的一些坑

    1,编译通过之后,想要将编译好的war包放到远程服务器上,并解压 unzipBus.sh的脚本如下: #!/bin/bash jar -xvf bus.war 编译后报错:jar:Command no ...

  4. Android项目开发遇到的问题(64K的错误)的解决之路,从入坑到出坑

    自己一个android项目,一直以来进展还算顺利,没有遇到什么严重性的问题,今天准备给同事手机上安装一下玩玩,谁知丢人丢大,无法build apk!报错!my god,我开发没问题啊,我手机连上usb ...

  5. window server 2008配置FTP服务器550 Access is denied. 问题解决办法

    如果你是按照网上的通用方法,在搭建FTP服务器的时候临时建了一个用户的话,那么这个用户是普通用户,你即便勾选了“读”“写”权限,那么再打开防火墙的情况下,你还是不能上传文件,只能下载.只需要登录到服务 ...

  6. Filezilla server配置FTP服务器中的各种问题与解决方法

    转至;https://www.jb51.net/article/122171.htm 安装文件以及补丁下载 公司很多资料需要通过ftp上传,那么就需要配置一个FTP服务器,找了一台Windows服务器 ...

  7. 讲述一下自己在linux中配置ftp服务的经历

    本人大二小白一名,从大一下学期就开始接触到linux,当时看到学校每次让我们下载资源都在一个ftp服务器中,感觉特别的高大上,所以自己就想什么时候自己能够拥有自己的ftp服务器,自己放一点东西进去,让 ...

  8. 菜鸟帮你跳过openstack配置过程中的坑

    一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...

  9. 菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]

    一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...

随机推荐

  1. 通过路由管理视图间切换 - AngularJS路由解析

    模板的视图刷新 ng-view这个指令和路由组合之后就可以将$route对应的视图放入指定的HTML中,这一过程中它会创建自己的作用域并将模板嵌套在内部. ng-view指令的优先级是1000(终极) ...

  2. MVC上传多张图片

    改变上传文件的按钮样式: <div id="post-upload-image"> <div id="divfile_-1"> < ...

  3. db2 命令

    很久没有些博客了.把以前用到的操作 DB2 的命令发表下可能有很多人已经发布了.就当是自己做下功课吧,以备有用之需. 1. 打开命令行窗口 #db2cmd 2. 打开控制中心 # db2cmd db2 ...

  4. repeter中应用三元运算符

    应用情景一:根据ID显示名称例如:0代表启动,1:代表关闭例子如下 <td><%#Eval("ID").ToString() == "0" ? ...

  5. java基础知识查漏 三

    一.Servlet 和Jsp的生命周期 1.Servlet生命周期       Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发 ...

  6. CSS的两种盒模型

    盒模型一共有两种模式,一种是标准模式,另一种就是怪异模式. 当你用编辑器新建一个html页面的时候你一定会发现最顶上都会有一个DOCTYPE标签,例如: <!DOCTYPE HTML PUBLI ...

  7. vue axios拦截器介绍

    关于axios的拦截器是一个作用非常大,非常好用的东西.分为请求拦截器和响应拦截器两种.我一般把拦截器写在main.js里. 1. 请求拦截器 请求拦截器的作用是在请求发送前进行一些操作,例如在每个请 ...

  8. HTML5 <template>

    http://www.zhangxinxu.com/wordpress/2014/07/hello-html5-template-tag/

  9. 页面渲染——页面合成(composition)的优化

    合成(composition)意味着将网页中已经绘画好的部分结合在一起,且展示在屏幕上. 坚持使用transform和opacity属性来操作你的动画animation 在有动画的元素上使用 will ...

  10. .NET CORE2.0后台管理系统(一)配置API

    一:引用关系图 要写一个项目首先离不开的就是一个清晰的流程图,当然我这里很简单. 上诉完成后打开api下的Startup.cs文件,因为我是配置好了所在我直接上传代码然后介绍一下: using Sys ...