使用ECS搭建FTP服务
目的
FTP可以用来访问服务器端的文件、传输效率高。
环境
CentOS x86
打开 vsftpd 服务
支持本地访问和匿名用户访问其中一种
- 安装
> yum install -y vsftpd
...
Installed:
vsftpd.x86_64 0:3.0.2-27.el7
Complete!
- 启动FTP
> systemctl enable vsftpd.service
...
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
> systemctl start vsftpd.service
...
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.
-
查看监听端口
> netstat -antup | grep ftp tcp 0 0 0.0.0.0:21 0.0.0.0:* ... tcp6 0 0 :::21 :::* ...
配置vsftp
-
匿名用户模式
> vim /etc/vsftpd/vsftpd.conf ... anon_upload_enable=YES ... > chmod o+w /var/ftp/pub/ systemctl restart vsftpd.service
- 本地用户模式
> adduser ftptest
> passwd ftptest
a********
> mkdir /var/ftp/test # FTP服务使用的文件夹
> chown -R ftptest:ftptest /var/ftp/test
主动模式
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录
> vim /etc/vsftpd/chroot_list # 例外用户名单
> systemctl restart vsftpd.service
测试
浏览器访问 ftp://:21 进行文件操作