centos6安装vsftpd
安装vsftpd:
1 | yum -y install vsftpd |
没什么问题就直接安装好啦.
编辑vsftpd的配置文件:
1 | vi /etc/vsftpd/vsftpd.conf |
清空文件, 然后添加如下内容:
1 | listen=YES |
终端运行下面命令:
1 | touch /etc/vsftpd/vsftpd.chroot_list |
如果出现下面这句话:
1 | Starting vsftpd for vsftpd: [ OK ] |
则表示成功,如果不行则用这个语句:
1 | /etc/rc.d/init.d/xinetd restart |
ftp默认我们使用系统用户, 现在我们来添加用户ftptest, 指向目录/home/ftptest , 权限是nologin, 就是没给shell权限, 不影响ftp的.
1 | useradd ftptest -d /home/ftptest -s /sbogin |
如果显示:
1 | useradd: warning: the home directory already exists. |
不用理会, 只是告诉你, 你指向的目录已经存在了, 这不影响设置目录及其文件的属组, 你也可以使用别的分组方式.
1 | chown -R ftptest . ftptest /home/ftptest |
设置一下用户hao32的密码, 自定义啦.
1 | passwd ftptest |
把用户 ftptest 加到/etc/vsftpd/vsftpd.chroot_list里, 这样用户就可以正常登陆并且不能跳出自己的目录.
1 | echo 'ftptest' >> /etc/vsftpd/vsftpd.chroot_list |
测试登陆: ftp主机: 服务器IP地址 ftp用户: ftptest ftp密码: ftptest 如果这个时候遇到:
1 | cannot change directory /home/ftptest |
请输入以下命令:
1 | setsebool -P allow_ftpd_full_access 1 |
这个时候如果再遇到 java.net.SocketTimeoutException: Read timed out.
解决方法: 在服务端配置被动模式就可以从根源上解决这问题.
编辑 Vsftpd 配置文件:
1 | vi /etc/vsftpd/vsftpd.conf |
在最下面添加以下信息:
1 | pasv_enable=YES #开启被动模式 |
加载内核 ip_conntrack_ftp 和 ip_nat_ftp(终端执行):
1 | modprobe ip_conntrack_ftp |
配置 iptables 开放 4000 到 5000 端口:
1 | vi /etc/sysconfig/iptables 在*filter下加入下 |
加载 iptables 配置:
1 | iptables-restore < /etc/sysconfig/iptables |
重启 Vsftpd:
1 | service vsftpd restart |