VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
实验环境:VMware Workstation 15.5 、X Shell 6、Centos 7.6
1、为了方便两台虚拟机的识别,我们将主机名分别设置为service和client【改操作不是必须,可以不修改】
[root@localhost ~]# hostname server
[root@localhost ~]# su
[root@server ~]#
[root@localhost ~]# hostname client
[root@localhost ~]# su
[root@client ~]#
2、安装搭建所必须的软件服务环境
[root@server ~]# yum -y install ftp vsftp* createrepo
PS:ftp:安装FTP服务
vsftp*:安装vsftp软件
createrepo:是Linux中的一个软件包,用来搭建yum仓库,这里我们用它来创建yum源索引
3、启用本地镜像光盘,并进行挂载
[root@server ~]# mount /dev/cdrom /mnt ## 将光盘挂载到/mnt目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server ~]# df -Th ## 查看一下挂载情况
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda3 xfs 295G 1.1G 294G 1% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 138M 877M 14% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt ## 看到这一项说明挂载成功!
注意,如果挂载不成功有可能是因为虚拟机中未连接光盘,在设置中开启即可
4、进入yum源目录,并查看目录下所有文件
[root@server ~]# cd /etc/yum.repos.d/
[root@server yum.repos.d]# ll
总用量 32
-rw-r--r--. 1 root root 1664 11月 23 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 11月 23 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 11月 23 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 11月 23 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 11月 23 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 11月 23 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 11月 23 2018 CentOS-Vault.repo
5、这些都是安装yum过程需要调用的必须文件,因为我们本次实验需要调用的光盘中的本地源,所以这些文件暂时用不到,我们就建一个目录把这些文件放进去即可
[root@server yum.repos.d]# mkdir bak ## 建立一个名为bak的子目录
[root@server yum.repos.d]# mv *.repo bak/ ## 将当前目录下所有扩展名为.repo的文件全部移入bak目录
6、这样服务端上就没有yum源了,因为我们要使远程的客户端来使用服务端的yum源,所以这时候我们将挂载的光盘中的本地yum源全都拷贝到本地的ftp目录中
[root@server ftp]# cp -rf /mnt/* /var/ftp/centos7/ & ## 递归将光盘中mnt目录下的全部文件复制到ftp目录中(因为复制过程时间较长,所以使用&符号让其在后台运行)
[1] 26669
## 使用jobs命令查看一下后台复制命令的执行情况
[root@server ftp]# jobs
[1]+ 运行中 cp -i -rf /mnt/* /var/ftp/centos7/ &
## 稍等片刻就会提示复制完成
[root@server ftp]#
[1]+ 完成 cp -i -rf /mnt/* /var/ftp/centos7/
7、我们已经将yum源复制过来了,但是没有索引文件就跟一本书没有目录一样肯定是不行的,所以现在我们再建立yum源索引
[root@server ftp]# mkdir other ## 建立一个other目录
[root@server ftp]# createrepo -g /mnt/repodata/repomd.xml other/ ## 将光盘中的索引文件复制到other目录中
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
8、现在可以启动服务端了,但在启动之前一定要清空防火墙规则和关闭系统核心防护功能
[root@server ftp]# setenforce 0
[root@server ftp]# iptables -F
9、开启vsftp服务端
[root@server ftp]# systemctl start vsftpd
以上就是服务端的配置,现在我们来配置客户端
10、在客户端上安装ftp服务
[root@client ~]# yum -y install ftp
11、测试ftp服务是否正常
[root@client ~]# ftp 192.168.50.131 ## 连接服务端
Connected to 192.168.50.131 (192.168.50.131).
220 (vsFTPd 3.0.2)
Name (192.168.50.131:root): ftp ## 用户名输入ftp,以匿名方式登录
331 Please specify the password.
Password: ## 密码默认为空
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls ## 查看一下ftp目录下由哪些文件
227 Entering Passive Mode (192,168,50,131,124,15).
150 Here comes the directory listing.
drwxr-xr-x 8 0 0 220 Jul 11 03:29 centos7
drwxr-xr-x 3 0 0 22 Jul 11 03:33 other
drwxr-xr-x 2 0 0 6 Apr 01 04:55 pub
226 Directory send OK.
ftp> bye ## 测试没有发现异常,断开与服务端连接
221 Goodbye.
12、服务端的yum源默认是配置好的,因为我们要使用的是远程服务端的yum源,我们现在也将要将本地yum源清除
[root@client ~]# cd /etc/yum.repos.d/ ## 进入yum源配置目录
[root@client yum.repos.d]# mkdir bak ## 新建子目录bak
[root@client yum.repos.d]# mv *.repo bak/ ##将所有后缀名repo文件全部移入bak目录
13、清除一下本地yum缓存在查看一下yum源列表
[root@client yum.repos.d]# yum clean all
[root@client yum.repos.d]# yum list
现在发现列表所示的yum源都已经没有了,所以显示红色
14、现在来配置yum源仓库文件
[root@client yum.repos.d]# vi abc.repo ## 新建一个仓库文件,名称随意
15、配置yum源仓库
[base]
name=centos7 ## 仓库名称
baseurl=ftp://192.168.50.131/centos7 ##调用的仓库源位置,因为使用的是远程源,所以为ftp
enabled=1 ## 是否启用该仓库(1:是,0:否)
gpgcheck=1 ## 开启密钥检查(1:是,0:否)
gpgkey=ftp://192.168.50.131/centos7/RPM-GPG-KEY-CentOS-7 ## 添加密匙
[other] ## 这里配置other是因为我们之前不仅建立了yum源还生成了索引
name=other
baseurl=ftp://192.168.50.131/other
enabled=1
gpgcheck=0
## PS:因为是远程yum源,为了防止数据在中间过程被篡改,所以在配置[base]时建议开启验证
因为之前将光盘中的内容都复制到服务端的centos7目录下了,所以我们进入目录查看一下,用红框标出的就是密匙,将其复制粘贴到gpgkey字段中即可
16、清除本地yum源缓存并重新获取yum源列表
[root@client yum.repos.d]# yum clean all
[root@client yum.repos.d]# yum list