我将以下命令脚本作为计划任务在我的 Win 2012 Server 上运行,没有任何问题。我想在客户端 Win 7 x64 计算机上复制此脚本。
echo user [username]>> c:\ftp1.dat
echo [my password]>> c:\ftp1.dat
echo bin>> c:\ftp1.dat
echo mkdir web2>> c:\ftp1.dat
echo cd web2>> c:\ftp1.dat
echo mkdir clientpc_%date:~-2,4%-%date:~-7,2%-%date:~-10,2%>> c:\ftp1.dat
echo cd clientpc_%date:~-2,4%-%date:~-7,2%-%date:~-10,2%>> c:\ftp1.dat
echo ascii>> c:\ftp1.dat
echo quote pasv>> c:\ftp1.dat
echo mput c:\Users\Administrator\Documents\backup_temp\*.*>> c:\ftp1.dat
echo quit>> c:\ftp1.dat
echo bye>> c:\ftp1.dat
ftp -n -s:c:\ftp1.dat -i ftp.livedrive.com
del c:\ftp1.dat
但是,当我输入 mput 时,命令提示符会通知我
- 200 端口命令成功
- 150 接受数据连接
此时,进程就挂起了。没有错误,没有超时,什么都没有。我的意思是 5-10 分钟内什么都没有。
安装程序正在运行 Norton 360,其防火墙已关闭。
我也尝试过主动模式。
请注意,早期的 MKDIR 命令有效,因此可能不存在服务器联系问题。我似乎无法在网上找到任何帮助。遇到我的问题的每个人似乎都遇到了超时问题,但这里的情况并非如此。
谢谢
答案1
这是连接问题。FTP 需要控制连接来执行基本命令(如 login 和 mkdir),而对于实际数据传输,它会打开另一个 TCP 连接:在被动模式下,服务器会在随机端口上打开侦听器并将其地址告知客户端;在主动模式下,客户端会在随机端口上打开侦听器并将其地址告知服务器。
控制连接可用,但数据连接不可用。这意味着有某种因素限制了连接,例如您的计算机、服务器计算机或两者之间的某个位置存在某种防火墙。