ftp上传文件夹到linux服务器,Windows FTP传到Linux服务器报错解决方法

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

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

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.”

41572081_201801162122070101270053.png

由图中可知,客户端已经使用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等命令立马报错:如下

500illegal port command

425USE PORT

OR PASV first

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

未解。。。

待定-----------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值