描述:有些时候,我们需要向CentOS中上传或者下载文件,比如部署项目,所以很有必要安装ftp。
我们选择主流的vsftp。切入正题
第一步:安装vsftp
yum install -y vsftpd
第二步:设置开机启动
systemctl enable vsftpd
第三步:启动ftp服务
systemctl start vsftpd.service
第四步:打开防火墙
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
(永久添加tcp 21端口)
(添加ftp服务)
(重启防火墙)
第五步:添加用户
useradd -g root -d /home/data -s /sbin/nologin hubo
新建hubo用户 添加到root组
但是不允许用户登录,仅仅可以ftp登录
ftp登录后的默认目录是/home/data
第六步:设置用户密码,输入入下命令
passwd hubo
第七步:设置权限
chown -R hubo:root /home/data
setsebool -P ftpd_full_access on
第八步:修改vsftp配置文件,禁止匿名登录
vi /etc/vsftpd/vsftpd.conf
把:anonymous_enable=YES 改为: anonymous_enable=NO
输入—> :wq 保存退出
最后,我下载了一款叫做FTP Rush的软件,FTP软件有很多,你也可以选择其他的。输入主机地址,用户名和密码即可连接。
此处需要注意我的用户名输入的不是刚才创建的“hubo”,正常情况下大家输入上面步骤中创建的用户名和密码,如果能连接成功,那就没有问题,如果不成功,听我下面娓娓道来(连接成功的可以忽略)。
图1
关于使用创建的用户名和密码无法连接成功的问题
描述,当初我用自己的笔记本电脑安装,是win7系统,按照上面的步骤,可以使用创建的用户名和密码连接,可以连接成功。但是在公司里面,使用win10的系统,同样按照上面的方式来安装FTP,我使用的FTP Rush死活就是连接不上,我对灯发誓,我输入的用户名密码,绝对是正确的,但是他就是给我报如图2中的错误。
图2
一直在提示
331 Please specify the password.
[1] PASS (隐藏)
[1] 530 Login incorrect.
于是我尝试了很多办法,比如重新装系统,重新将上面的步骤再走一遍,都不好使,于是乎我从网上找了很多帖子,由于折腾了半天,脑袋本来就涨,在看到很多帖子长篇大论,头更痛。比较让我无语的是我自己的笔记本win7没有出现这种问题。因此若有大神给小弟指点迷津,小弟感激不尽。
由于时间紧迫,我使用了另外两种种方法来达到文件上传和下载的要求:
第一种方法,使用匿名登录
上面的步骤八中设置了匿名登录,这是对系统安全的保护,若时间紧迫,需要立刻上传或下载,输入如下命令
vi /etc/vsftpd/vsftpd.conf,设置anonymous_enable=YES。有一个点需要注意,等使用FTP Rush连接成功后,发现当传输文件,依然无法成功,解决方式输入命令 systemctl stop firewalld.service暂时关闭防火墙(重启会自动开启),然后就可以成功传输文件了。出于安全考虑,完成传输操作后,再将匿名登陆更改回禁止。
第二种方法,使用root用户来登录
输入命令vi /etc/vsftpd/user_list,打开配置文件,在root这一行前面加一个#号,注意后面再加一个空格,如图3所示(注意:按字母键 i 进入编辑模式,编辑完后后先按下Esc退出,然后输入 :wq,保存退出)记得暂时关闭防火墙
systemctl stop firewalld.service,重启vsftpd服务systemctl restart vsftpd.service。最后使用FTP Rush就可以进行文件传输了。
图3
输入命令:vi /etc/vsftpd/ftpusers,打开配置文件,在root前面加一个#号,然后再后面再加一个空格如图4所示(注意:按字母键 i 进入编辑模式,编辑完后后先按下Esc退出,然后输入 :wq,保存退出):
图4