请问用IIS搭建FTP服务器,在哪里设置"主动模式"和"被动模式"?

请问用IIS搭建FTP服务器,在哪里设置"主动模式"和"被动模式"?,第1张

FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。

在被动模式下,FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。

被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

很多人误认为利用WINDOWS组件IIS来构建的FTP服务器没有实用价值,只能做一些测试和学习。主要是FTP服务的PORT和PASV两种连接模式下防火墙难以设置。对于PORT模式,客户端无法在此环境下运行,因为 FTP 服务必须向 FTP 客户端发出新的连接请求,防火墙会将这些连接检测为未经请求的连接尝试,并因此而将它们断开。防火墙管理员可能也不希望使用PASV模式 FTP 服务器,因为该 FTP 服务可以打开任何短暂的端口号。如果防火墙配置允许未经请求的连接完全访问所有的短暂端口,则可能会是不安全的。

从实用的角度来看,建立一个默认短暂端口范围有限制的PASV模式 FTP 服务方案应该是较好的选择。下面通过一个实例,说明如何在Windows 2003 中利用IIS组件架设PASV模式FTP服务。

1建立一个PORT模式的FTP服务

1.1安装“文件传输协议(FTP)服务”组件

安装步骤:

控制面板--->添加删除程序--->添加删除windows组件--->应用程序服务器--->Internet信息服务(IIS)--->文件传输协议(FTP)服务

将“文件传输协议(FTP)服务”复选框钩上,插入windows 2003安装盘或选择windows 2003安装路径,直至安装结束。

1.2FTP主目录及用户权限的配置

主目录:D:/soft/ftpup

拥有读写权限而不允许其它用户访问的用户:

ww1用户拥有 ww1目录的读写权限,位置在:D:/soft/ftpup/LocalUser/ww1

XX1用户拥有 XX1目录的读写权限,位置在:D:/soft/ftpup/LocalUser/XX1

允许匿名用户只读访问:

Everyone 拥有 public目录的只读权限,位置在:D:/soft/ftpup/LocalUser/public

创建 ww1和xx1用户并设置密码。

建立相应的目录,并设置对应的权限。

1.3创建FTP站点

通过“控制面板 --->管理工具 --->Internet信息服务(IIS)管理器 --->Internet信息服务--->本地计算机--->FTP 站点”标签,右击“FTP 站点”--->新建--->FTP 站点,进入FTP站点建立向导:站点描述--->IP地址和端口设置--->隔离用户--->FTP站点主目录(D:/soft/ftpup ),直到向导结束。

右击刚建立的FTP站点,在“安全帐户”选项卡上选中“允许匿名用户连接”。至此,一个PORT模式的FTP站点架设完成。

可以关闭防火墙在客户端进行测试是否符合要求。

2将FTP站点设置成PASV模式

2.1启用直接编辑元数据库

打开 IIS Microsoft 管理控制台 (MMC):控制面板 --->管理工具--->Internet信息服务(IIS)管理器 --->Internet信息服务--->本地计算机

右击本地计算机节点,选择属性,选择启用直接编辑元数据库复选框。

2.2 修改端口号 方法 1 通过 ADSUTIL 脚本配置 PassivePortRange

运行cmd.exe程序进入命令行模式,并输入以下命令:

C:/Inetpub/AdminScripts/adsutil.vbs set /MSFTPSVC/PassivePortRange "5500-5550"

这样就将FTP服务器上TCP 默认短暂端口范围限制在5500-5550范围内,如果同时连接数量较多,可适当进行调整。

用以下命令查看PassivePortRange:

C:/Inetpub/AdminScripts/adsutil.vbs get /MSFTPSVC/PassivePortRange 方法 2 通过修改配置文件 打开下面这个文件 :1. C:/WINDOWS/system32/inetsrv/MetaBase.xml搜索 MaxConnections 这个字段 在 MaxConnections 下面新加一行被动模式的配置信息,修改后的配置文件为 LogType="1" MSDOSDirOutput="TRUE" MaxClientsMessage=" " MaxConnections="100000" PassivePortRange="5500-5550"

3.windows 2003 中防火墙的设置

3.1打开FTP控制端口TCP 21(如果更改端口号,这里要做相应的更改)

在命令行输入:

NETSH FIREWALL ADD PORTOPENING TCP 21 FTPPort21

3.2打开PassivePortRange 5500-5550的TCP端口

建立以下批处理文件并运行(例如:ftpport.bat):

ECHO OPENING FIREWALL PORTS 5500-5550

FOR /L %%I IN (5500,1,5550) DO NETSH FIREWALL ADD PORTOPENING TCP %%I FTPPort%%I

iisreset /restart

ECHO FINISHED

Pause

至此,整个服务架设完成,可在启用防火墙的情况下进行测试。

DOS下的FTP命令只能自己敲,没有被动模式动能,没有断点续传功能,没有保持站点连接功能,没有下载队列功能等。没啥优点。

IE的FTP功能也很废,总是先下载到临时文件夹,再复制到目标位置。没有断点续传功能,没有保持站点连接功能,没有下载队列功能。优点就是小白也会用。

FlashFXP就属于专门的FTP的客户端了,功能强大,远非上述能比。缺点嘛就是不是免费的,要破解。

1.有可能是网络不通造成。PING下或者直接TELNET连接服务器21端口就可以。

2.有可能是你使用了被动模式,有些网络情况如果使用被动模式就无法连FTP接到空间,这么就需要在FTP工具中把连接模式改为主动模式。

FTP能登陆,但无法上传的原因和解决办法:

①您试图往不允许的目录上传内容,就会提示上传失败。

参考以下允许写入和不允许写入的目录来解决:

您ftp登陆以后,允许写入的目录只有:

“/ftp用户名/web”

“/ftp用户名/db”

您ftp登陆以后,不允许写入的目录有:

“/”

“/ftp用户名 "

“/ftp用户名/log”

②您空间已用光造成的。

这种情况下,您需要让删除部分文件,然后空出空间,才可以上传新的文件。

3. 您在虚拟主机的面板中,设置了“关闭写入功能”造成的。

4. 有少量的用户在内网中,上传文件时,受到网络限制造成上传失败。这样的情况只能用户更换网络上传才能解决。

FTP能登陆,但无法删除文件原因和解决办法:

①文件被锁定造成的。(例如ACCESS数据库经常被锁定,)

解决办法:停止虚拟主机一会儿后,就会解锁,从而可以删除这个文件,如果停止虚拟主机还不能解锁,您可以在管理区,虚拟主机管理的地方,回收这个虚拟主机所在的池,就可以解锁这个文件。

②有可能是文件使用还没释放,回收一进程。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/55301.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-26
下一篇2023-02-26

发表评论

登录后才能评论

评论列表(0条)

    保存