代码改变世界

FileZilla Server 设置 pasv以及port两种模式

2018-03-29 09:25  CodeCy  阅读(20549)  评论(0编辑  收藏  举报

    FTP的连接一般有两种:一种是客户程和服务器传输命令的,另一种是数据传送的连接。FTP服务程序一般会支两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode)。

Port模式:
    当客户端向服务端连接后,使用的是Port模式,那么客户端会发送一条命令告诉服务端(客户端在本地打开了一个端口在等着你进行数据连接),当服务端收到这个Port命令后就会向客户端打开的那个端口进行连接,这种数据连接就生成了。

Pasv模式:
    当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。
    从上面的解释中,可以看到两种模式主要的不同是数据连接建立的不同,对于Port模式,是客户端C在本地打开一个端口等服务端S去连接建立数据连接;而Pasv模式就是服务端S打开一个端口等待客户端C去建立一个数据连接。
    FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT模式),是用来建立数据传输通道的,主要有3个作用:
1.从客户向服务器发送一个文件。
2.从服务器向客户发送一个文件。
3.从服务器向客户发送文件或目录列表。
    注意:所有FTP服务器软件都支持PORT方式,大部分FTP服务器软件PORT方式和PASV方式都支持,有些FTP服务器不支持PASV方式都支持,故造成了PASV 模式失败,正在尝试 PORT错误 或者 数据Sock错误。对症下药,解决的方法其实很简单――取消PASV模式。

 

2.具体的方法

1)在ie中如何启用或者取消PASV模式:
    如果要在ie里启用或关闭PASV方式,先打开IE,在菜单里选择:工具 -> Internet选项 -> 高级,在“使用被动ftp”前面打上钩或者去掉钩,不过需要IE6.0以上才支持。

2)FTP下载工具取消被动模式的方法:
★Cute FTP 3.5英文版:FTP―>Settings―>Options―>Firewall,将“PASV mode”前复选框中的打勾去掉。
★Cute FTP3.5中文版:FTP―>设置―>选项―>防火墙,“PASV方式(A)”前复选框中的打勾去掉。
★Cute FTP4.0中文版:右击你所建立的ftp站点―>选择属性(properties)―>去掉"use PASV mod" 选择项
★Cute FTP Pro2.0中文版:编辑―>全局设置―>连接―>连接类型,“PASV/PORT”下拉选项菜单选择PORT。
★Leap FTP2.7.2:Sites―>Site Manager―>Advanced,将“Use PASV mode”前复选框中的打勾去掉。
★flashfxp: 选项->参数->代理->去掉“使用被动模式”
★flashget: 选项->参数->代理服务器->编辑->将“Use PASV mode”前复选框中的打勾去掉。

 

3.其他补充
    如果你用Serv-U架设FTP,那么Serv-U默认配置下两种方式都支持。
    如果要关闭PASV方式,打开Serv-U,进入 Domains -> user.dns0755.net -> Settings -> Advanced -> 把“Allow passive mode data transfers”前面的钩去掉。
    在 Serv-U的Local Server -> Settings -> Advanced -> PASV port range里,填入给PASV模式使用的本地端口范围,如60000-60020。请把端口范围限制在20个以内。之后,再在防火墙里打开这个范围的端口就可以了。

    如果你用Filezilla架设FTP,那么filezilla默认配置下两种方式都支持。我在FileZilla Server 设置菜单里被动模式选项(Passive Mode Settings)选项,进入被动模式设置。 选中启动被动模式端口范围的选项,输入3000~3020端口范围,相应的端口要在防火墙里添加放行。

 

4.FileZilla Server

 

下载最新版本,然后双击安装。出现许可协议,选择“I Agree”同意协议继续…… 



在这一屏,中间的端口号是管理员登录配置服务器的连接端口号,默认为14147。这个设置还关系到远程登录配置。可以根据自己的情况修改,当然也可以在安装完成之后再修改。 

 


点击Close结束安装,之后弹出连接服务器的窗口。FileZilla Server支持远程配置,如果是从远程进行配置的话,这里的地址、端口号和口令要跟远程服务器上面的对应起来。 



本例是从本地登录,密码正确无误之后就进入服务器设置页面。 

首先要进行服务器全局参数设置:点“Edit”菜单,选“Settings” 
General settings(常规设置): 
Listen on Port:监听端口,其实就是FTP服务器的连接端口。 
Max.Number of users:允许最大并发连接客户端的数量。 
Number of Threads:处理线程。也就是CPU优先级别。数值调得越大优先级越高,一般默认即可。 
下面的是超时设置,自上至下分别为:连接超时、传输空闲超时、登入超时。单位为秒。 

Welcome message页面设置客户端登录成功以后显示的Welcome信息。建议不要用软件默认的,因为任何软件都不能保证没有什么漏洞,如果在这里暴露软件名称的话,一旦这个FTP Server软件有什么安全漏洞,别有用心的人知道了服务器软件的名称就可能针对性地发起攻击。所以建议这里设置的信息不要包含任何服务器资料。 

IP Filter(IP过滤器)页面,设置IP过滤规则,在上面栏目中的IP是被禁止的,下面的是允许的。 

Passive mode settings(被动传输模式设置):这个页面要重点关注。如果服务器本身直接拥有公网IP,可以选软件默认的“Default”。 
倘若服务器是在局域网里面,在一个网关后面,那么就要选择第二项“Use the follwoing IP”,并且在下面的输入栏填写公网的IP地址;否则,客户端用PASV被动模式可能无法连接FTP服务器。因为服务器是在内网中,在客户端使用PASV 模式连接服务器的时候,服务器收到连接请求之后需要把自身的IP地址告诉客户端,由于服务器在内网中,它侦测到的IP地址是内网的(如 192.168.0.5),它把这个IP地址交给客户端,客户端自然无法连接。在这里设置了指定的IP地址后,服务器就会把这个公网合法的IP地址提交给客户端,这样才能正常建立连接。 
如果服务器是动态IP的,那么可以选择下面的“Retrieve external IP address from”,利用FileZilla官方网站免费提供的IP查询页面获取当时的公网合法IP,然后服务器把这个公网合法IP地址提交给客户端。当然静态 IP也可以用这个,只不过没有必要。 
这个设置页面对服务器位于内网的情况非常重要。有些FTP服务器端没有这个设置项目,客户端就只能用Port主动模式连接。当然有些客户端软件针对这个问题有专门的设置,如FlashFXP的站点设置中只要选中“被动模式使用站点IP”就可以了。 
对于在局域网中的服务器,如果服务器没有置于DMZ区,那么强烈建议选中下面的“Use custom port range”定义PASV端口范围。由于PASV模式中,是服务器随机打开端口,然后把打开的端口号告诉客户端,让客户端连接打开的端口。但是因为服务器处于网关后面,如果网关那里没有做对应的端口映射,客户端从外网就无法连接服务器打开的端口,导致PASV模式连接失败。在这里限定服务器打开的端口范围,然后到连接外网的网关那里,对服务器的这些端口做端口映射(虚拟服务)。这需要服务器和Internet网关设备配合设置,这样外网的客户端才能用 PASV模式连接进来。 

Security settings(安全设置):这里的两个选项关系到能否FXP。软件默认状态“Block incoming server-to-server transfers”和“Block outgoing server-to-server transfers”两项都是选中的,前面那项是禁止连入的服务器对传,后面是禁止传出的服务器对传。也就是说默认状态不允许FXP,如果需要使用 FXP,那么就把这两个项目取消选择。注意FXP传输除了跟这个页面的设置有关,还跟IP过滤器有关。 

Admin Interface setting(管理员界面设定):这个就是登录配置服务器界面的一些参数。端口号的设置在安装的时候也出现过。下面两栏可以定义允许远程登录配置的网络界面和IP地址。在最下面更改管理员口令。 

Logging(日志):设定是否启用日志记录功能以及日志文件大小和文件名。 

Speed Limits(速度限制):这个是全局参数,默认状态不限速。可以选中“Constant Speed Limit of”并填写限速数值来实现速度限制,下载(传出)和上传(传入)可以分别设置。还可以根据时段自定义限速规则——“Use Speed Limit Rules”,比如这台服务器或者网络连接除了做FTP服务器之外还有别的用途,需要根据时间调度,不能让FTP传输挤占所有网络带宽影响其它的网络服务;就可以通过这里设置。 


Filetransfer compression(文件传输压缩设置):MODE Z FTP协议是一种实时压缩的传输协议。在这种模式下,发送方的数据在发出之前先进行压缩,再送到网络链路中传输,接收方将收到数据实时解包,在本地还原重组成原文件。这种模式可以大幅度减少网络中的数据流量,提升传输效率(速度)。当然对于已经压缩过的文件,就几乎没有效果了。要使用这种传输模式,需要服务器端和客户端都支持MODE Z协议。 
勾选“Enable MODE Z support”就可以启用本服务器的MODE Z支持功能,这样,只要客户端也支持MODE Z就可以获得它带来的性能提升。“Minimum allowed compression level”和“Maximum allowed compression level”分别设置最小压缩率和最大压缩率。最下面可以输入不启用MODE Z功能的目标IP。 
完成这些设置以后,点击“OK”按钮保存设置并退出服务器全局设置页面返回主界面。 

下面要进行的是用户组(Group Settings)设置。在主界面点击第五个按钮或者由“Edit”——“Groups”菜单进入。 
组设置是为了便于用户归类管理,相同权限的用户归属到同一个组里面,这样就不用重复多次设置每个用户的权限等参数,简化配置和管理工作。点击右边的 “Add”按钮创建新组。 

组创建完成以后,点“Shared folders”进入目录权限设置页面。点击中间区域的“Add”按钮添加目录。默认状态添加的第一个目录即为该组用户登录之后看到的主目录(Home Directory),主目录前面有个粗体的“H”标识。目录列表右侧分别是对该目录的操作权限设置,上面是文件权限设置,下面是目录权限设置。如果要改变主目录,只要在列表中选中需要设置为主目录的那个,然后点击“Set as home dir”按钮即可。 

设置好主目录之后,再点击“Add”按钮把其余的目录依次设置进来就可以了。不过这里得注意,如果仅仅把别的目录添加进去,那么你用客户端连接之后,会发现除了主目录和它的子目录之外,别的目录都看不见。这是怎么回事?这里要说明一个概念——虚拟路径。所谓虚拟路径,就是在客户端看到的目录结构。由于一个用户只能有一个主目录,别的目录如果不映射成虚拟目录的话,客户端将看不到它。所以只有把除了主目录之外的其它目录,虚拟成主目录的子目录,这样在客户端才能看到。 
比如本例,主目录是D:/Downloads,如果不做虚拟路径设置,那么客户端登录进来只能看到主目录里面的内容,还有一个E:/FTPRoot目录下面的东西看不到。如何设置虚拟路径?鼠标右键点击列表中的“E:/FTPRoot”目录,在弹出的菜单里面选“Edit aliases”编辑别名;现在要把E:/FTPRoot目录作为客户端主目录下的FTPRoot目录,那么就在弹出的窗口里面输入“D: /Downloads/FTPRoot”并点击“OK”按钮确定。注意拼写规则,路径的前面部分必须是主目录的绝对路径。这样设置之后,在客户端就可以看到一个“FTPRoot”目录,这个目录其实就是E:/FTPRoot目录。 
组设置中的“Speed Limits”和“IP Filter”跟全局设置里面的速度限制和IP过滤器设置方法是一样的,请参照前面的内容。只不过这个是仅仅针对这个组的用户生效。而全局设置是对所有的用户都生效。 
设置完毕之后点击“OK”按钮回到主界面。 

最后一项就是设置用户(Users)。点击主界面第四个按钮或者由“Edit”——“Users”菜单进入。 
点击右边的“Add”按钮创建用户,在“Password”域输入用户口令。然后从“Group membership”栏选择该用户所属的组(Group),这样该用户将继承该组的所有属性/权限,不用再单独一一设置这些参数了。这也是设置组体现的方便性,在用户比较多的时候使用组来分类会使得管理工作更加方便、高效。完毕之后点“OK”按钮保存设置并返回主界面。 
当然,也可以设置一个不属于任何组的用户,这样的话,就得单独定制该用户的权限。对于少量特殊用户,可以用这种方式设置。 
至此,FileZilla Server的基本设置就完成并可以运行了。 

对于初次使用FTP Server软件的用户,本文也可以作为入门参考。其实所有的FTP Server软件安装设置的基本原理都是类似的,掌握了一个之后,别的可以举一反三融会贯通。