技术解析

linux vsftpd 服务器客户端访问问题
0
2021-07-08 14:47:59
idczone

问:
为什么在 windows 通过资源管理器访问 linux vsftpd 服务器从输入地址到弹出认证界面要等很久(大约 10 多秒),有什么办法可以非常快速的弹出认证界面?
详细描述:
在 linux 上连接 ftp 服务器,输入地址后可以很快的弹出认证界面登录
在 windows 上用资源管理器输入地址大约过了 10 多秒后才弹出认证界面。这个过程很慢。
但是我在 windows 的命令行通过 ftp 命令 open ftp 服务器就可以非常快的返回叫我输入用户名密码。
根据这个现象我下载 win 下的 ftp 客户端也可以非常快速的弹出认证界面。


貌似用 sftp 资源管理器连接前面要加用户名 @ 才连得上……

题主试试清理下浏览器的缓存。尝试 ping 一下客户机到 FTP 服务器,看看网络延迟状况。不排除网络中有嗅探器( FTP 明文传输)。尝试更改下 FTP 的连接方式为被动连接(客户机主动连接服务器)。如果有防火墙,记得关闭防火墙再尝试,有的包过滤防火墙真会影响数据传输性能。



找到问题的根源了,
是因为 win 资源管理器会先尝试匿名登录,但是服务器是拒绝匿名登录的(这个认证过程比较慢),从而导致等待了很久才出现登录界面。
现在要怎么解决呢?
如何使服务器快速的响应登录认证失败
或者
如何使 win 资源管理器不自动匿名认证一下就弹出登录界面

感觉跟 vsftpd 有些关系 同样禁止匿名 之前用 pureftp 就可以秒弹窗…

对,我明明都禁止匿名了,居然还要验证那么久,怎么破?

我刚刚搜了一下还没试 在设置 anonymous_enable = no 的前提下, 貌似在 userlist 允许 anonymous 就可以解决问题

如何使 win 资源管理器不自
动匿名认证一下就弹出登录界面,这个可能没辙。如何使服务器快速的响应登录认证失败,这个问题可能跟 vsftpd 有关,我自己使用 vsftpd 都是秒弹窗的。我知道有个方法可以可以直接把认证信息写入地址,这样直接就可以打开,不需要弹窗认证了。
格式是: ftp://username:[email&/>例如用户名是 admin ,密码是 123456 ,服务器地址是: 192.168.1.2 ,
那么直接打开 ftp://admin:[email&就不需要弹窗认证了。
我还是认为不应该是客户机的问题,而是你 ftp 服务器的问题,要不升级下 vsftpd 的版本?


从 win 资源管理器客户端看:
ftp://admin:[email&这种方法确实可行,也非常快此时我才恍然大悟,
第一次:我用的是 ftp://192.168.1.2 ,我抓包发现会先尝试匿名登录,我当时就应该猜测实质上调用的是 ftp://anonymous:[email&这样的命令,这样就说得通为什么要先匿名登录,另一方面 win 资源管理器弹出的登录框提示的是:服务器不允许匿名登录,或者不接受改电子邮箱地址,者言下之意是已经尝试过匿名登录了。
第二次:我用的是 ftp://[email&admin 密码是空。非常惭愧的是我居然没反应过来,没有去思考过为什么密码是空,其实它还是调用 ftp://admin:@192.168.1.2 ,实在惭愧,自己太粗心了,为什么我不去尝试 ftp://admin:[email&这样的命令,因为我之前在 linux 用这样的命令,正确的用户和密码,但是依然会弹出提示输入密码,所以我就错误性的认为 ftp://[email&是不可用了。
哎,从客户端的解决方案来看,还是我太粗心造成这样,没有分析清楚,我想服务器或许还是因为某些不仔细造成的吧。
vsftpd 服务器:
我用的在 mint vsftpd3.02 和 arch vsftpd3.03 都有这样相同的问题,应该是我某些配置有问题,我正在尝试解决,
非常感谢大家。

@onice

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服