[root@WinJay ~]# yum install proftpd
Loaded plugins: fastestmirror, security
* base: ftp.sjtu.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: ftp.sjtu.edu.cn
Setting up Install Process
Resolving Dependencies
---> Running transaction check
---> ................................
---> ................................
---> Finished Dependency Resolution
Dependencies Resolved
===============================================
Package Arch Version Repository Size
===============================================
Installing:
proftpd x86_64 1.3.4a-1.el6.rf rpmforge 2.0 M
Installing for dependencies:
perl-Mail-Sendmail noarch 0.79-12.el6 epel 28 k
perl-Time-HiRes x86_64 4:1.9721-136.el6 base 48 k
Transaction Summary
================================================
Install 3 Package(s)
Installed:
proftpd.x86_64 0:1.3.4a-1.el6.rf
Dependency Installed:
perl-Mail-Sendmail.noarch 0:0.79-12.el6 perl-Time-HiRes.x86_64 4:1.9721-136.el6
Complete!
在添加用户及用户组时提示要添加的用户“WinJay”已经存在,所以需要修改用户“WinJay”的默认目录。
- 首先用finger username命令查看用户原来的家目录
如果出现如下错误:
finger: command not found
解决
rpm -qa|grep finger
yum install finger
再次finger username即可
- 查看用户uid
#id username
- 修改用户主目录
usermod -d /usr/newfolder -u uid username
-u 后面一定要接uid(500),然后才是username
修改完成后,可用finger username检查修改前后是否有变化。
- 修改配置
vi /etc/proftpd.conf
修改 两处nobody->ftpadmin
安全起见,修改port 21为另外一个整数
- 增加想要的用户(同时指定目录)
useradd -s /data0/htdocs/www -d /dev/null ftpwww
passwd ftpwww
最后一节是ftp用户名,-s后面是该用户对应的目录
- 启动proftp
service proftpd start
- 自动运行
echo “/etc/init.d/proftpd start” >>/etc/rc.local
再次运行 service proftpd 看到报错,信息如下:
[root@WinJay data]# proftpd
WinJay proftpd[3629]: warning: unable to determine IP address of WinJay
WinJay proftpd[3629]: error: no valid servers configured
WinJay proftpd[3629]: Fatal: error processing configuration file ‘/etc/proftpd.conf’
因为proftpd默认没有开启日志的记录,所以/var/log/proftpd/ 这个目录下是空的,所以没法查看错误日志。运行:
proftpd --configtest
可以看到
- warning: unable to determine IP address of '<span style="color: #ff0000;">MyVPS923</span>'
- error: no valid servers configured
- Fatal: error processing configuration file '/etc/proftpd.conf'
根据错误提示,是主机名和IP解析没法对应。
解决方法:
1,在配置文件/etc/proftpd.conf里面增加VPS IP;
DefaultAddress 173.231.28.140
2,修改主机名 /etc/hosts
vi /etc/hosts
173.231.28.140 MyVPS923 MyVPS
保存退出后就OK了,service proftpd start可以成功启动。
完成以上操作后,使用FlashFxp客户端连接登录测试,还是报错,信息如下
通过网络搜索解决方法为
启动后不能FTP,老是用户验证失败的问题,经过仔细查看,最后目光落在proftpd的配置文件/etc/proFTPd.conf这个文件中的一行,内容如下:
AuthOrder mod_sql.c mod_auth_pam.c* mod_auth_unix.c
这里分别采用了几种验证方式,莫非因为验证方式过多引起的??于是把多余的验证方式删除,改成如下内容:
AuthOrder mod_sql.c mod_auth_pam.c mod_auth_unix.c
再次FTP登录,结果成功了。我猜想可能是由于登录的验证方式过多,而且优先级不同,结果造成了验证无法通过。当然,这种猜想不一定正确,但是确实解决了无法FTP的问题。
MasqueradeAddress 218.10X.XXX.XXX
现在虽然能登录了,但是每次登录时间都特别长,开始还以为是用了inetd模式的问题,后来上网找了一下,原来是proFTPd在每次都通过DNS查找登录者的网址是什么。所以要添加两个选项:
IdentLookups off
UseReverseDNS off
伪装ProFTPD服务器
Windows下的FTP服务多是Serv-U,可以把ProFTPD伪装为Serv-U,方法是修改配置文件proFTPd.conf,添加如下内容:
ServerIdent on "Serv-U FTP Server v5.0 for WinSock ready..."
存盘退出后,重新启动proftpd服务,登录到修改了提示信息的FTP服务器进行测试:
至此CentOS6.5 安装ProFtp过程及问题全部解决及结束。。。
评论区