打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Windows FTP传到Linux服务器报错解决方法

 

po出问题前先了解一下FTP传输的主动被动模式:

  众所周知,标准FTP传输需要两个TCP/IP连接,一个21端口是用于控制连接,20端口用于控制传输,命令连接的端口是固定的,连接是持续的,而数据连接的端口是随机的,是临时产生的,而且连接是随连随断的。于客户端主动发起数据端口,还是服务器端主动发起数据端口的不同,定义了FTP的两种传输模式,PORTPASV

  PORT模式(主动模式),是客户端通过PORT命令告诉服务器端要使用的数据端口号,然后在客户端主动建立起这个端口的TCP/IP监听。在进行文件传输的操作时,服务器来连接客户端的这个数据端口,进行数据传输。

  PASV模式(被动模式),是客户端通过PASV命令来告诉服务器端,想使用PASV方式传输数据。服务器收到命令之后,主动在服务器端建立一个数据端口的TCP/IP监听,并把这个数据端口号返回客户端。在进行文件传输的操作时,客户端去连接服务器端的这个数据端口,进行数据传输。

 

问题1: 

  想实现的功能:在多台Windows2008服务器上部署了bat监控脚本,需要把生成的文件定时ftp到一台linux服务器上,方便汇总查看。

  多台服务器需要定时使用ftp上传文件到linux服务器中,发现其中部分使用win2008系统的服务器不能正常上传文件,其他的同样系统都正常。登录win2008服务器,使用ftp命令打开地址可以正常登录到ftp服务器中,但是使用put、dir命令就长时间服务器无响应传输失败,如下图所示:

显示“200 PORT command successful. Consider using PASV.

 
 
由图中可知,客户端已经使用PASV传输,并且ftp命令能够登录到服务器,说明21端口是正常的,但ll和mput命令不能正常返回,说明程序的传输被防火墙阻挡,查询得知防火墙开启并且未允许ftp应用,所以开启即可:打开防火墙,在“允许另一个程序”中添加“C:\Windows\System32\ftp.exe”程序后传输文件正常。
  备注:
原博文见下链接:http://blog.clzg.cn/blog-2085443-862353.html
补充:在网上也看到过一个博主写到关于加该ftp的时候,说到32位系统加C:\Windows\System32\ftp.exe,64位系统加C:\Windows\SysWOW64\ftp.exe,事实并不是这样的,微软为了保障兼容性,无论是32位还是64位的DLL文件都是放到了System32文件夹中。经过验证,也证明只有前者是正确的。不过这两个文件内的文件是类似的,具体没细查,可能是自带的ftp是32位的么?

问题2:
  在另一组Windows客户端中(同网段),登录ftp服务器后,运行ll等命令立马报错:如下

500 illegal port command

425 USE PORTOR PASV first

查了些许资料,但是并未找到真正解决的方法。
未解。。。
待定-----------------





 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Ftp客户端编程
vsftp 打开 pasv模式
浅析FTP的工作原理
ftp-主动模式(PORT)和被动模式(PASV)
IE FTP(主动与被动)
FTP工作方式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服