CentOS7 搭建FTP
2016-09-29 22:10 ^战士^ 阅读(2112) 评论(0) 编辑 收藏 举报对于linux,只在上个微信公众号开发的时候,玩了CentOS6.5. 现在学习Docker技术,官方建议升级到7.2。于是乎只能捣鼓一下了。
花了一晚上的时间才真正把vsftpd安装好,flashfxp 正常上传下载文件。这中间碰到一些问题,顺便记录下。
首先,centos7.2 虚拟机安装完后,要配置网络。
nmcli connection show --- 显示当前网络连接
cd /etc/sysconfig/network-scripts/
ls
vi ifcfg-ens33 --把ONBOOT 改为yes
然后重启虚拟机,就可以上网了。
其次,安装vsftpd
yum intall vsftpd --- 每次问答,都选y即可
配置防火墙,开通21端口。(注意,Centos7.2 使用firewalld代替了原来的iptables)
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --reload --- 让防火墙设置生效
vi /etc/vsftpd/vsftpd.conf ,修改ftp根目录local_root=/var/ftp/software(如果不指定,默认就是/home/系统用户目录)
systemctl start vsftpd --- 开启Vsftpd 服务
这个时候,尝试如果用FlashFXP 软件 root 用户登陆,报530错误。
百度了好久,发现
vi /etc/vsftpd/vsftpd.conf 将userlist_enable=YES改为NO,
vi /etc/vsftpd/ftpusers 删除root,保存,重启vsftpd
再systemctl restart vsftpd 重启vsftpd即可登陆
只是看不到目录信息,也不能上传文件。
又继续百度半天,也没找到相关资料。后来发现都是FlashFXP 执行PASV 指令出错。想想是不是没有开通PASV 端口。
于是又修改vsftpd.conf文件,先指定PASV 端口范围
pasv_min_port=5000
pasv_max_port=6000
然后再修改防火墙,开通5000~6000端口
firewall-cmd --zone=public --add-port=5000-60000/tcp --permanent
重启防火墙和vsftp后,总算能看到列表了。万万没想到,上传文件失败,郁闷吧。
尝试按照网上的把software 目录权限改为777,还是一样不能上传。
尝试把SELINUX 关闭(修改/etc/selinux/config文件中的SELINUX=”enforcing" 改为 disabled ),重启后,更坑爹。这时候更加FlashFXP登陆不了。
恢复SELINUX,还是登陆不了。当时,那个心情郁闷啊。辛亏我留了一手,做了个快照,不然早急疯了。
恢复快照后,继续百度,照着度娘的某个帖子的意思,
setsebool allow_ftpd_full_access 1 -- 居然可以成功上传了。
这下高兴了,去楼下买瓶可乐喝了个够。上来再看看文件夹是否可以上传,奶奶的熊。这个时候居然报
vsftpd:refuse to run with writable root inside chroot() 错误。百思不得其解。刚刚还好好的啊
没办法,又去找度娘,后面查到,只要在vsftpd.conf 加上这句,就可以了
allow_writeable_chroot=YES
但是虚拟机重启后,又不能ftp了,主要是 setsebool allow_ftpd_full_access 1 临时设置的。需要
setsebool -P allow_ftpd_full_access 1
最后, chkconfig vsftpd on 本想让vsftpd 设置为开机自启动,可是这条命令不起作用,谁知道告诉我下:)
好了,花了一晚上。搭建个FTP 服务器。真惨!