ftp 可以连接 feat 接收服务器响应时超时,FTP连接卡在FEAT命令的解决方案

几年前,我就遇到了一个十分诡异的问题,当时就发现所有经过ICS(Internet Connection Sharing,Windows提供的共享网络连接的功能)的FTP连接都无法正常工作,都会在建立连接的过程当中卡在客户端发送FEAT命令之后,存在问题的连接过程大致如下:

已连接

服务器> 220 Welcome!

客户端> AUTH TLS

服务器> 502 SSL/TLS authentication not allowed

客户端> AUTH SSL

服务器> 502 SSL/TLS authentication not allowed

客户端> USER USERNAME

服务器> 331 Password required for USERNAME

客户端> PASS

服务器> 230 Logged on

客户端> FEAT

服务器> 211-Features:

服务器> MDTM

服务器> REST STREAM

服务器> SIZE

服务器> MLST type;size;modify*;

服务器> MLSD

服务器> UTF8

服务器> CLNT

服务器> MFMT

服务器> 211 End

连接断开

也就是说,当客户端每次发送FEAT命令,服务器返回211-Features后,连接就会断开。问题出现时,在服务器上除了连接断开的信息外,看不到任何错误提示,而在客户端上则显示连接超时。

一开始我以为问题出在FileZilla Server/Client上,因为我们的FTP服务器和客户端用的都是FileZilla的产品,更换成一些可以禁用FEAT命令的客户端之后,可以解决这个问题,网上提供的解决方案也都是让用户禁用FEAT命令。但是这个方法并不治本。

最近又在配置FTP服务器,相同的问题再一次出现,于是我决定这次一定要找到治本的方案。搜索一番发现,引起问题的是Windows的ALG服务(Application Layer Gateway Service),这个服务的描述为“为 Internet 连接共享提供第三方协议插件的支持”,通过观察注册表可以发现,这个服务应该主要是为了解决FTP等服务在穿过ICS(本质是NAT)时遇到的一些问题,但是实际上这个东西不仅没解决问题反而还引起了更多问题。

直接将ALG禁用,FEAT命令引起中断的问题便不会再出现了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值