Windows server部署开源FileZilla FTP Server
Ftp:文件传输协议。NAS(网络附加存储)使用的协议之一。其它还有smb,nfs,webdav协议。。。。。
ftp用于各地分散的主机使用网际网络传输文件,达到资源共享和信息传递的目的。ftp采用c/s架构(Client/Server:即客户端/服务端)。一般是在一台服务器上架设ftp server,如果量小,你在个人电脑上也可以架设ftp server,让别人的电脑来访问你的ftp server.
ftp原理:
控制连接:
ftp是最古老的互联网应用协议之一。ftp服务端开放一个21端口,等待访客来访。姑且认为是办事大厅的21号柜台吧。ftp客户端以一个随机端口(比如随机端口是1028) 向ftp 服务端发送建立连接的请求。ftp服务端验证ftp客户端的合法性,允许建立。此次建立称之为控制连接。
ftp服务的两种工作模式:
1.ftp服务器的主动模式(ftp默认工作方式)
服务器的20端口主动从客户端发起连接
1.用户端通过ftp账号和密码登录服务器端的21号端口(服务器开启21端口处于监听模式,等待客户端访问)
服务端接收到客户端的访问请求,就验证ftp客户端的账户和密码,如果不合格,服务端则拒绝;
2.如果账户和密码合格,则ftp服务端允许ftp客户端访问。此时ftp客户端会随机开启一个1024以上的端口,并附带传输port命令给服务端,通过port命令 告诉并要求ftp服务端打开一个端口,然后向ftp客户端传递数据。
3.ftp服务端收到ftp客户端的port命令之后,便会在ftp服务端开启20端口。然后ftp服务端就可以向ftp客户端的随机端口发送数据
ftp主动模式的缺陷:ftp客户端的端口不是固定的,每一个ftp客户端都不在ftp服务端管理人员的掌控之中,如果ftp客户端有防火墙拦截,ftp服务端就无法访问ftp客户端
2.ftp服务器的被动模式:ftp客户端主动访问ftp服务端的某个随机端口
1.用户端通过ftp账号和密码登录服务器端的21号端口(服务器开启21端口处于监听模式,等待客户端访问)
服务端接收到客户端的访问请求,就验证ftp客户端的账户和密码,如果不合格,服务端
2.如果账户和密码合格,则ftp服务端允许ftp客户端访问。此时ftp客户端会传输pasv命令给服务端,通过pasv命令 告诉并要求ftp服务端打开一个随机端口,然后ftp服务端将自己随机打开的端口号告知给ftp客户端。此时ftp客户端也会产生一个随机端口向ftp服务端的随机端口传输数据
ftp被动模式:是一种更加可靠的模式,虽然ftp服务端的端口号是随机的,毕竟ftp服务端在管理人员的控制范围之内。
Windows FTP服务端软件:
IIS,ServU(商业版:付费软件),FileZilla(开源中的免费产品)
Windows Ftp客户端软件:
ftp,FlashFXP,ServU客户端,FileZilla客户端
本文采用开源且免费的FileZilla,支持跨平台。你可以使用windows 或windows server 操作系统安装。
1.下载FileZilla Server服务端软件:
https://download.filezilla.cn/server/windows/FileZilla_Server-cn-0_9_60_2.exe
2.双击打开,进入Filezilla Server的安装向导,点击 我接受
3.点击下一步
4.点击下一步
5.保持默认选项,继续点击下一步:next
6.保持默认选项,点击安装
7.等待完成安装
8.点击关闭
9.设置ftp server管理密码。可以为空(但不建议)
10.图示如下 红色文字为警告讯息,可以不予理会
11.点击编辑,选择 用户
12.点击 右侧 用户下面的添加选项 进行添加ftp账户
13.设置账户名称,点击确定。比如我设置的账户名称:chunghwa
14.账户设置,点击 启用账户和密码。设置ftp账户的登录密码。如果你不设置密码 ,意味着 是一个guest账户。以后无需输入密码即可访问ftp server共享资源。比如 某收音机厂商搭建ftp服务器存放收音机使用说明书电子版。希望用户以匿名账户的方式登录ftp 下载相关说明书
15.点击Shared folders:共享目录
16.打开命令提示符,输入 md C:\目录名称。比如我在C:\建立ftp目录。即md C:\ftp
然后在 共享文件夹下面点击 添加,选择你创建共享目录 最后点击确定即可
17.为用户分配权限。根据你的实际情况 酌情分配 具体权限。
18.选中共享文件夹下创建的目录选项,点击设为主目录。
19.命令提示符中输入 ipconfig /all查看你服务器的ip地址。如果是多网卡,请酌情选择一个网卡配置的ip地址 进行ftp server的绑定
20.点击编辑下的设置
21.点击ip绑定,输入你的服务器的ip地址,最后点击确定即可
22.命令提示符输入如下命令:
防火墙放行ftp控制连接(命令连接)端口21:netsh advfirewall firewall add rule name=ftp action=allow dir=on prptocol=tcp localport=21
防火墙放行ftp数据连接端口20:netsh advfirewall firewall add rule name=ftp action=allow dir=on prptocol=tcp localport=20
如果你的防火墙尚未启用,则需要先输入:netsh advfirewall set currentprofile state on
如果你购买的是云服务器,还需要在后台开启安全组,放行相应端口。具体操作请咨询你所在的云服务器厂商。
23.客户端测试连接ftp server:
这里使用windows系统自带的ftp命令行客户端测试
ftp "ftp server ip地址"
比如:
ftp 192.168.1.144
输入账户名,密码登录即可
图示如下: