安装了一台CentOS7.5,字符界面,为方便上传文件到这台机器上,拟采用FTP服务上传和下载文件,在CentOS上搭建vsftpd服务环境。
记录我的安装过程,供有需要的人参考。
一、系统环境
1、安装FTP服务的机器操作系统,CentOS7.5 字符界面
采用root账号安装
2、客户端机器,Win 7,采用Filezilla作为FTP客户端
二、安装参考过程
1、启动CentOS,以root登录,先检查是否已安装了vsftpd服务
输入命令:rpm -qa | grep vsftpd
如果已安装此服务,则列出vsftpd的版本。如下:
如果未安装,则不提示,如下:
2、未安装vsftpd则往下继续,采用yum进行安装
yum -y install vsftpd
3、启动vsftpd服务
systemctl start vsftpd.service
4、查看vsftpd服务的状态,如下图,则表明vsftpd服务已初步安装。
这时尚未进行相应设置,未建立ftp登录账号,可以匿名登录,以检测安装情况
5、从本地检测ftp的安装情况,需安装ftp
yum -y install ftp
6、使用anonymous登录,无需密码
ftp localhost
220表示服务正常,230表明登录正常。
7、以上先完成第一阶段,匿名登录。正常使用中是采用账号进行登录的,禁止匿名登录,以确保资料安全。
修改/etc/vsftpd/vsftpd.conf,如下三项:
anonymous_enable=NO
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
8、建立ftp登录账号,只用于登录ftp,不登录CentOS操作系统。
这里设定登录的ftp账号是:ftpuser
useradd ftpuser -s /sbin/nologin
9、修改ftp账号的登录口令
passwd ftpuser
10、查看ftp状态
getsebool -a | grep ftp
初始显示结果如下,把下图中选定的三项由off设置为on
设置命令:
setsebool - P ftpd_anon_write on
setsebool -P allow_ftpd_full_access on
setsebool -P tftp_home_dir on
设置完以后,可用命令getsebool -a | grep ftp检查下是否已经设置
11、在建立ftp账户时,默认是建home目录下以账号名作为一个文件夹,对这个文件夹设置操作权限
chmod -R 777 /home/ftpuser
12、修改vsftp的配置文件/etc/vsftpd.conf
添加一行:
local_root=/home/ftpuser
如果是另外建立文件夹作为ftp上传下载的目标文件夹,则在上面一步,第11步,设置该文件夹的读写权限,并在第12步里配置在vsftpd.conf里
13、查看CentOS这台机器的IP地址
ifconfig
14、从另一台Windows机器上,进入Dos命令行,先ping CentOS机器的IP地址,检查能否ping通
Ping 192.168.XXX.XXX
能ping通,则说明网络是通的。
15、启动filezilla,检查两点,一能否连接 二能否正常上传下载文件。
输入CentOS这台机器的IP地址,用户名用前面建的ftpuser,口令用前面设置的口令,端口号用21,点快速连接
16、如果不能正常连接,则在Windows的Dos命令行下,用telnet命令,检查能否打开CentOS的21端口
(需要Win7这台机器上开启了telnet,如未开启,则需到控制面板里,勾选上Telnet客户端)
在命令行输入下面指令:
telnet 192.168.XXX.XXX 21
能连通的情况如下:
如果用telnet不能打开CenOS的21端口,则需在CenOS这台机器上设置,打开21端口
firewall-cmd --zone=public --add-port=21/tcp --permanent
17、如果能正常连接,再上传和下载文件,检查是否正常
如果不能正常上传文件,则检查前面第11、12步,是否设置了CentOS机器上目标文件夹的操作权限。
三、遇到问题及处理
1、从Windows上上传文件,报错误信息:
553 could not create file
解决办法:检查前面安装步骤里的第11、12步