Cam*_*ell 6 ftp perl iis-7.5 windows-server-2008-r2
我正在尝试使用 perl 编写一个 FTP 客户端,以使用被动模式从 IIS 7.5 FTP 服务器传输文件。
我已经按照说明配置了 FTP 服务器,并且还配置了 Windows 防火墙以允许这种类型的流量。我已经通过检查确保日志中没有被阻止的数据包来验证防火墙的行为是否正确。我已经验证了 FTP 控制通道正在端口 21 上打开。
我相信 IIS 会告诉客户端在被动模式下连接哪个端口,而 IIS 拒绝允许此连接。
perl 日志如下所示:
C:\cygwin\Perl\lib\FMT>perl FTPTest.pl
Net::FTP>>> Net::FTP(2.77)
Net::FTP>>> Exporter(5.64_01)
Net::FTP>>> Net::Cmd(2.29)
Net::FTP>>> IO::Socket::INET(1.31)
Net::FTP>>> IO::Socket(1.31)
Net::FTP>>> IO::Handle(1.28)
Net::FTP=GLOB(0x20abac0)<<< 220 Microsoft FTP Service
Net::FTP=GLOB(0x20abac0)>>> USER ftpuser
Net::FTP=GLOB(0x20abac0)<<< 331 Password required for ftpuser.
Net::FTP=GLOB(0x20abac0)>>> PASS ....
Net::FTP=GLOB(0x20abac0)<<< 230 User logged in.
Net::FTP=GLOB(0x20abac0)>>> CWD /Logs
Net::FTP=GLOB(0x20abac0)<<< 250 CWD command successful.
Net::FTP=GLOB(0x20abac0)>>> PASV
Net::FTP=GLOB(0x20abac0)<<< 227 Entering Passive Mode (xx,xxx,xxx,xxx,160,41).
Net::FTP=GLOB(0x20abac0)>>> RETR filename.txt
Can't use an undefined value as a symbol reference at C:/Utilities/strawberryper
l/perl/lib/Net/FTP/dataconn.pm line 54.
Run Code Online (Sandbox Code Playgroud)
IIS 日志如下所示:
2010-10-02 17:40:06 xx.xxx.xx.xx - yy.y.yy.yy ControlChannelOpened - - 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:06 xx.xxx.xx.xx - yy.y.yy.yy USER ftpuser 331 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:06 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy PASS *** 230 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a / -
2010-10-02 17:40:06 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy CWD /Logs 250 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a /Logs -
2010-10-02 17:40:06 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy PASV - 227 0 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:27 - MACHINENAME\ftpuser zz.z.zz.zzz 41001 DataChannelClosed - - 64 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:27 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy ControlChannelClosed - - 64 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a - -
2010-10-02 17:40:27 xx.xxx.xx.xx MACHINENAME\ftpuser yy.y.yy.yy RETR filename.txt 550 1236 0 27a48c9b-9dce-4770-8bcf-fc89f2569b1a filename.txt -
Run Code Online (Sandbox Code Playgroud)
我们也设法在其他 FTP 客户端上看到了这个问题,我认为它在 Perl 中并不有趣。我被告知这在 IIS 6 FTP 服务器中工作正常。我想知道这里是否有我们遗漏的东西。
我也有同样的问题。我相信,IIS FTP 7.5 默认配置为仅允许主动 FTP,而不允许被动 - 至少在我完成的两次默认安装中是这样。也许你的脚本陷入了困境。IIS 网站http://learn.iis.net/page.aspx/309/configuring-ftp-firewall-settings/对我帮助很大——尽管我的问题是使用常规 FTP 客户端 (filezilla) 而不是 PERL,但它应该适用于这个案例。特别查看步骤 3:配置 Windows 防火墙设置
归档时间: |
|
查看次数: |
13555 次 |
最近记录: |