之前在 vps 上面搭建过 vsftpd 工作的一直很好,不知道从什么时候发现无法上传了,能够成功登陆,就是不能上传,因为忙所以一直也没有管,今天晚上因为想往上面传点东西,于是就又认真的开始排查问题,现实看配置文件选项,然后再查看权限 ,又用 telnet 测试了下 21 端口,都没有问题;最后没有办法了,只好尝试抓包分析了;用 wireshark 看,发现在进行传输的时候,服务器去尝试连接我客户端的 20 端口, 这个是没有问题的;
( ftp协议的主动传输模式,就是 ftp 服务器去主动连接客户端的 20 端口;)
但是发现一直都在尝试 20 端口, 这就是问题了; 按理来说,在采用 主动传输失败的时候,应该是可以切换到被动传输的模式。
( ftp协议的主动传输模式,就是 ftp 服务器打开一个随机端口,并告知客户端,然后客户端连接服务器的端口,并进行数据的传输。)
这时我才想到 vsftp.conf 里面有个 20 端口相关的配置项目
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
需要将上面的这个配置给注释掉,否则会一直采用 20 端口进行数据传输,也就是主动模式了。
注释完后,重启一下 vsftpd 服务,登陆正常,上传正常!
-----------------------------------------------
题外话,为了图省事,把博客放在了 blogger 上了,访问没有问题,就是写博客费劲点了;因为无法登陆后台,只能通过其他办法了,我比较喜欢使用 live writer ,但是 live writer 连接blogger 也需要连接 vpn , 并且最近 gfw 对opevpn 进行封锁,所以又折腾了会儿才连上 了 ; 一会儿我也尝试一下从 outlook 里面发邮件的方式发布博客。
没有评论:
发表评论