FileZilla搭建FTP服务器

标签: 无 分类: 软件 创建时间:2021-06-23 01:24:22 更新时间:2023-10-20 11:23:25

1.前言

2.安装

官网 上下载安装就可以了,挺简单的,基本上都能看懂。

3.配置用户

添加用户组

打开FileZilla服务界面,然后菜单栏,选择Edit,选择Groups,可以新键一个用户组,然后配置共享目录,然后设置限不限速,以及ip地址过了,新建用户的时候也是一样的。

匿名登录

默认的filezilla是不允许匿名登录的,如果想要用户匿名登录,只需要创建一个名为:anonymous 的账号,然后不设置密码就可以了

4.配置TLS连接

在服务器设置中,选择FTP over TLS settings,生成相应的证书和密钥,还需要开放990端口。证书的ip地址,我就写了本地地址,这个没有关系,可以随便指定,只要你客户端进行连接的时候,选择信任就好了。

再次进行ftp连接,就可以使用TLS连接了。

参考文章:
1.FileZilla FTP && TLS的连接设置 这篇文章详细说明了如何进行TLS设置,已经生成证书,我这里没有填写密码,其实也可以的。

问题

(1) 浏览器无法打开ftp站点
配置完成之后,在浏览器打开:ftp:127.0.0.1:21 站点,不知道为什么,现在的浏览器都不允许直接打开ftp站点进行浏览了,打开ftp站点,都会跳出一个选择框,让选择用什么程序打开ftp链接,但是选择了使用firefox打开之后,就没有反应了,不会像以前一样,直接可以浏览站点底下的文件及文件夹了。

【解决方法】
既然浏览器打不开了,那就可以直接在windows资源管理器中输入ftp站点的地址进行打开,然后输入用户密码就可以访问了。

参考文章:
1.Chrome浏览器无法访问FTP站点,解决办法 最简单的就是:将网址冒号前的“FTP”改为“http”即可解决,我不敢苟同这个做法。

(2) You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router.Warning: FTP over TLS is not enabled, users cannot securely log in.
这个问题在登录服务器后出现的,其实算是一个警告吧,就是没有配置TLS连接,不管也不影响使用

(3) 当前的安全设置不允许从该位置下载文件
在客户机上打开ftp站点的时候,弹出这个问题。

【解决方法】

  • 首先把ie自定义选项打开:控制面板 –>程序和功能 –>打开或关闭windows功能 –>安全信息,打开 安全信息,找到 “配置IE ESC”,将“启用”修改为“禁用” 即可。
  • 然后打开本地IE 浏览器,点击右上角 “ 工具 -> Internet 选项(O) ,进入到Internet Dialog,进入到Internet Dialog 后,选择 “ 自定义级别(C) ” 进入 Internet 安全区域设置,找到 “ 文件下载 ” 项,可以发现,默认文件下载操作是禁止的,选择 “ 启用 ” 即可,点击确认,出现警告 是否进行Internet区域的更改,确认即可。
  • 关闭ie设置,然后重新打开ftp站点,就可以进行复制了。

(4) 使用Windows客户端连接的时候,直接显示连接不成功外网无法访问
使用Windows客户端连接的时候,直接显示连接不成功,日志如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
响应:	331 Password required for anonymous
命令: PASS *********************
响应: 230 Logged on
状态: 已登录
状态: 读取目录列表...
命令: PWD
响应: 257 "/" is current directory.
命令: TYPE I
响应: 200 Type set to I
命令: PORT 192,168,1,240,246,161
响应: 421 Rejected command, requested IP address does not match control connection IP.
命令: PASV
响应: 227 Entering Passive Mode (10,0,0,6,19,153)
状态: 服务器发回了不可路由的地址。使用服务器地址代替。
命令: MLSD
错误: 无法建立数据连接: ECONNREFUSED - 连接被服务器拒绝
响应: 425 Can't open data connection for transfer of "/"
错误: 读取目录列表失败

【解决方法】

  • 在FileZilla Server 的Edit->Settings中,选择Passive mode settings,然后选中Use custom port range,填入端口号。
  • 在阿里云的安全组中,将填入的端口号范围放行

(5) You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router.
在配置了Passive mode和开启TLS连接的之后,保存设置,出现了这个错误

【解决方法】
这个原因,估计是因为我有多张网卡,其中一个是本地的,一个是OpenVPN生成的,需要进行ip地址的指定,在设置中->Passive mode settings,进行 Use the following IP 的绑定。

参考文章:
1.Filezilla Error: You appear to be behind a NAT router. Please configure the passive mode settings and … Check this item in the Settings window above to set the port range and in the firewall Settings later to add the port range to the inbound port.

(6) 服务器发回了不可路由的地址。使用服务器地址代替。
这其实不是错误,不影响使用,但是我还是觉得别扭。我猜测主要是因为我在内网中安装了FileZilla,阿里云和内网使用openvpn搭建了虚拟专用网,然后使用阿里云ecs进行了端口转发的原因。

【尝试解决方法】
我把FileZilla Server的Passive mode设置中的IP地址,由10.0.0.6(openvpn分配的地址),改为了外部阿里云地址,似乎第一次连接的时候,也还是会出现这个问题,但是不影响使用。

参考文章:
1.FTP解决办法:服务器发回了不可路由的地址。使用服务器地址代替 客户端的解决方法:更改Filezilla设置,编辑-设置-连接-FTP-被动模式,将“使用服务器的外部ip地址来代替”改为“回到主动模式”即可。
2.Filezilla连接ftp服务器:“服务器发回了不可路由的地址。使用服务器地址代替。” 在网络安全组配置规则,放行ftp被动模式的高端端口1024/65535
3.解决服务器发回了不可路由的地址。使用服务器地址代替的问题

(7) 无法读取套接字ETIMEDOUT
在阿里云的ecs主机上安装里FileZilla Server服务器,并设置了21端口开放,但是在外网(小区的移动宽带)使用Mac客户端的时候,出现了连接成功,但是运行到 AUTH TLS 之后,就断开了。

后来经过开启服务端开启TLS,设置Passive 模式,windows服务端可以连接ftp服务器了,但是Mac版还是不可以,打印的日志如下:

1
2
3
4
5
6
7
状态: 	连接建立,等待欢迎消息...
响应: 220-FileZilla Server 0.9.60 beta
响应: 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
响应: 220 Please visit https://filezilla-project.org/
命令: AUTH TLS
错误: 无法读取套接字: ETIMEDOUT - 连接尝试超时
错误: 无法连接到服务器

【解决方法】
断开wifi,使用手机4G网络连接,结果连接成功了。

参考文章:
1.mac fliezilla 无法连接到服务器 这里的方法都尝试了,没用
2.Mac版本FileZilla(ftp )错误:无法与 SFTP 服务器建立 FTP 连接 和上面的差不多,都没有用
3.FTP无法连接“无法读取套接字ETIMEDOUT”原因很无语 让笔记本电脑断开小区宽带,换用手机热点FTP连接和使用正常。“无法读取套接字ETIMEDOUT”这条报错信息不常见,我个人感觉也许是一些小区宽带运营商,为了降低成本,使用了一些技术给与限制。
4.21端口开放无法连接上FTP 这是阿里云的限制,FTP限制了客户端的 IP访问连接数量,同一时间内来自同一客户端 IP的连接数不能超过3条。
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。