环境centOS7 ,防火墙是iptables
- 以管理员运行:yum install vsftpd#安装ftp
- chkconfig vsftpd on#设置开机启动
- service vsftpd start #启动ftp服务
- yum -y install ftp #安装组件,
- ftp localhost #测试登陆,输入用户名ftp,密码随便(因为默认是允许匿名的)登录成功,就代表ftp服务可用了。但是,外网是访问不了的,所以还要继续配置。
- vim /etc/sysconfig/iptables #找到一行
22 -j ACCEPT
把它复制一行到下面,把端口号22改成21,保存退出 - service iptables restart #重启防火墙
- vim /etc/vsftpd/vsftpd.conf #去掉两行注释 #chroot_list_enable=YES 和 #chroot_list_file=/etc/vsftpd.chroot_list 的#号
- service vsftpd restart #重启ftp服务
- useradd -d /www aaa #新建用户aaa,并指定/www为访问目录
- passwd aaa #给用户aaa设置密码
- usermod -d /www/app aaa #修改aaa的主目录为/www/app
最后,这里还是登录被拒绝,vim /etc/vsftpd/user_list 打开这里看一下,每个用户名独占一行,这是禁止登录列表,把aaa去掉就OK了。。
再然后,新买了个阿里服务器,centos7.2,安装最新的vsftpd后再次遇到500不能登录的问题,最终解决是在:
vim /etc/vsftpd/vsftpd.conf 配置文件中增加一行
allow_writeable_chroot=YES
如果还是不行,但关闭防火墙之后可以登录ftp,寻就是iptables需要添加模块
1.添加ip_conntrack_ftp 模块
[root@hexuweb101 ~] vi /etc/sysconfig/iptables-config
添加下面一行
IPTABLES_MODULES="ip_conntrack_ftp"