今天,我负责安全维护的公司告诉我说服务器的ftp不能登陆
开始我还以为是网络的问题,因为前几天就遇到过这个情况,用移动网络可以登陆,但是用电信网络就是不行,可能因为是国外服务器的缘故。
于是让他们用vpn登陆试试,结果还是不行,说530错误,验证失败。
状态: 不安全的服务器,不支持 FTP over TLS。 命令: USER daokers 响应: 331 使用者 daokers OK. 需要密码. 命令: PASS ******** 响应: 530 验证失败,抱歉 错误: 严重错误: 无法连接到服务器
搞得一阵郁闷,最近维护的服务器是一个接着一个的问题,修复了好多坑。
既然这样,那就只能去找原因了,我切换到移动网络,链接服务器,结果提示一样的错误,看来不是客户端这边的网络问题,而是服务器的ftp server的事情了。
由于wdcp采用的是pureftp,搜索了一下pureftp的相关错误的资料。
网上说是因为pureftp使用的账号UID比pureftp设置所要求的MinUID小的缘故,
查看了下pureftp的配置,位置在/www/wdlinux/etc/pure-ftpd.conf
# # pure-ftpd.conf # http://www.wdlinux.cn Bind 21 ChrootEveryone yes BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog no DisplayDotFiles yes AnonymousOnly no NoAnonymous yes SyslogFacility ftp DontResolve yes MaxIdleTime 15 LimitRecursion 10000 8 AnonymousCanCreateDirs no MaxLoad 4 AntiWarez yes Umask 133:022 MinUID 100 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload no MaxDiskUsage 99 CustomerProof yes AllowOverwrite on AllowStoreRestart on UnixAuthentication yes PassivePortRange 20000 20500 PureDB /www/wdlinux/pureftpd/etc/pureftpd.pdb
而ftp虚拟账户在wdcp下是www,执行id www
,返回
uid=1000(www) gid=1000(www) groups=1000(www)
很明显,这里的UID比MinUID 的值要大,不是这个原因造成这个错误的。
看到网上还有一种方法是执行ln
命令
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
但是仍然无法登陆ftp。
在网上一阵搜索,找到了wdcp作者的一片文章,原来wdcp从3.0/3.1升级到3.2均会出现这个ftp登陆的问题。具体方法请见wdcp从v3.0/3.1升级到v3.2后,FTP登录不了的修复方法
按照这个方法执行命令
1 升级更新ftp wget http://down.wdlinux.cn/in/v32ftp.sh sh v32ftp.sh 2 所有FTP帐号,需删除重新创建
我删除所有的账号重建,仍然无法登陆FTP。
想了一下,是不是因为和原来的账号一样,一些相关库的资料没有更新的原因导致的。
于是重建一个完全不同用户名的ftp账号,终于成功登陆了,看来升级wdcp到3.2之后,不仅要账号重建,并且还不能和以前的账号相同。
转载请注明:百蔬君 » 【原创文章】WDCP v3.2 FTP不能登陆的解决办法