ftp serverr安装
1、安装vsftpd
用户root用户登录到 server部件所在的服务器
执行如下命令: yum -y install vsftpd
2、编辑vsftpd的配置文件
执行如下命令: vi /etc/vsftpd/vsftpd.conf
3、清空文件, 然后添加如下内容:
listen=YES
background=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to powerking FTP servers
pam_service_name=vsftpd
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
4、建立用户目录文件
运行下面命令:
touch /etc/vsftpd/vsftpd.chroot_list
5、启动sfp server
执行如下命令:service vsftpd start
如果出现下面这句话:
Starting vsftpd for vsftpd: [ OK ]
则表示成功,如果不行则用这个语句:
/etc/rc.d/init.d/xinetd restart
6、建立ftp用户
执行如下命令: useradd ftpuser -d /home/ftpuser
7、设置ftp用户密码
· 执行如下命令:passwd ftpuser
8、把用户 ftptest 加到/etc/vsftpd/vsftpd.chroot_list里
echo ftpuser >> /etc/vsftpd/vsftpd.chroot_list
9、重新启动stpserver
service vsftpd restart
10、检测ftp用户配置是否成功
用户ftp client工具登录看看是否成功,如果成功登录表示配置正确
FAQ
在安装时遇到的问题解决
问题1. read timed out 或者类似超时问题
可能是服务端模式的问题
解决方法:修改服务端模式
1、编辑 Vsftpd 配置文件
vi /etc/vsftpd/vsftpd.conf
2、在最下面添加以下信息
pasv_enable=YES #开启被动模式
pasv_min_port=4000 #随机最小端口
pasv_max_port=5000 #随机最大端口
3、加载内核 ip_conntrack_ftp 和 ip_nat_ftp(终端执行)
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
4、配置 iptables 开放 4000 到 5000 端口
vi /etc/sysconfig/iptables 在*filter下加入下
-A OUTPUT -p tcp --sport 4000:5000 -j ACCEPT
-A INPUT -p tcp --dport 4000:5000 -j ACCEPT
5、加载 iptables 配置
iptables-restore < /etc/sysconfig/iptables
6、重启 Vsftpd
service vsftpd restart
问题2. 530 Login incorrect
解决方法
1、找到etc下面有个pam.d文件夹
2、打开下面的文件 vsftpd
3、注销文件中的如下内容
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
4、如果有下面的这个配置也一并注销掉
pam_ftp.so
5、重新启动vftpd
service vftpd restart
问题3. 500 OOPS: cannot change directory:/home/
原因是他的CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
解决方法:
1、查看SELinux设置
# getsebool -a|grep ftpftpd_disable_trans --> off
或者
#ftp_home_dir-->off
2、使用setsebool命令开启
# setsebool ftpd_disable_trans 1
或者
# setsebool ftp_home_dir 1
3、查看当前状态是否是on的状态
# getsebool -a|grep ftpftpd_disable_trans --> on
或者
ftp_home_dir-->on
4、setsebool使用-P参数,无需每次开机都输入这个命令
# setsebool -P ftpd_disable_trans 1
或者
# setsebool -P ftp_home_dir 1
5、重新启动vsftpd
# service vsftpd restart