本地安装
首先是安装vsftpd提供服务,网上的说法是一般linux会自带而我发现centos并没有,执行下面命令
yum -y install vsftpd
然后是修改配置文件,简单起见我允许匿名用户的上传和下载
vi /etc/vsftpd/vsftpd.conf
去掉anon_upload_enable=YES和anon_mkdir_write_enable=YES
这里要提到一个坑,默认的ftp文件是在/var/ftp但是执行上传会因为权限问题而失败,于是需要在配置文件中加上local_root=/var/ftp/share这一行
保存好配置文件后创建/var/ftp/share并给权限(我给的是777)
这样就可以了么?native 不得不说SeLlinux的权限控制好强大
进入第二个坑,要执行
setsebool -P ftpd_disable_trans 1
我顺便也执行了
systemctl stop firewalld.service
这样当然会出现安全问题,不过我是内网
这样就完了么?是的,再执行下面把服务启动就可以了
systemctl start vsftpd.service
不过我还有个问题没有解决那就是上传的文件不能下载...(这样的FTP怎么用啊)
原因仍然是权限,需要去执行chmod才可以让文件下载.
哪位高手知道的话指点一下
docker安装
#把下面127.0.0.1换成正确的ip
mkdir /home/vsftpd
docker run -d -v /home/vsftpd:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=myuser -e FTP_PASS=mypass -e PASV_ADDRESS=127.0.0.1 \
-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd