Linux不得不会的技能之FTP服务NFS服务及yum仓库

Posted 28线不知名云架构师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux不得不会的技能之FTP服务NFS服务及yum仓库相关的知识,希望对你有一定的参考价值。

一、Ftp服务

1.1、ftp概念

FTP协议(File Transfer Protocol,文件传输协议)是一个用于在计算机网络上客户端和服务器之间进行文件传输的应用层协议,包括FTP服务器和FTP客户端两个组成部分。

FTP能操作任何类型的文件而不需要进一步处理,但有着极高的延时,从开始请求到第一次接收需求数据之间的时间较长,并不时地执行一些冗长的登录进程。

1.2、ftp的两种模式

Standard模式 :也就是Active,主动方式
客户端随机产生的一个端口去连接ftp服务器,ftp主动发起的,开放20端口与客户端传输数据
Passive 模式:也就是PASV,被动方式
客户端随机产生的一个端口去连接ftp服务器,不用再单独开放20端口,直接使用某一个随机端口进行与客户端通信

1.3、安装软件--vsftp

yum install -y vsftpd

1.4、配置文件

/etc/vsftpd/vsftpd.conf //ftp服务器的主配置文件
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/var/ftp
/var/ftp/pub

1.5、配置主配置文件

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf     //FTP的主配置文件

nonymous_enable=YES    //允许匿名登录
local_enable=YES      //允许本地用户登录
anon_upload_enable=YES   //允许上传数据
chroot_local_user=YES    //绑定本地的家目录
allow_writeable_chroot=YES   //允许写的权限,一般是手动添加

1.6、查看端口

[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# netstat -anpt | grep vsftpd   
tcp6       0      0 :::21                   :::*                    LISTEN      19167/vsftpd        

1.7、测试

1.7.1 匿名

[C:\\~]$ ftp 192.168.30.3   //匿名登录FTP


Connecting to 192.168.30.3:21...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
220 (vsFTPd 3.0.2)
Name (192.168.30.3:Lenovo): ftp
331 Please specify the password.
Password: 
230 Login successful.
ftp:/> 

ftp:/>get 1   
227 Entering Passive Mode (192,168,30,3,218,238).
550 Failed to open file.   下载成功,但无法打开文件
ftp:/> put 1.txt
227 Entering Passive Mode (192,168,30,3,101,114).
553 Could not create file.   //无权限
ftp:/> ls
227 Entering Passive Mode (192,168,30,3,221,83).
150 Here comes the directory listing.
pub
226 Directory send OK.
ftp:/> cd pub   //切换目录
250 Directory successfully changed.
ftp:/pub> put 1.txt
227 Entering Passive Mode (192,168,30,3,122,72).
150 Ok to send data.
1.txt: 0 字节 sent in 0.001 sec (0 bytes, 0 字节/sec).
226 Transfer complete.   //上传成功

1.7.2、普通用户

ftp:/> cd /     //绑定家目录
250 Directory successfully changed.
ftp:/> ls
227 Entering Passive Mode (192,168,30,3,37,175).
150 Here comes the directory listing.
123
226 Directory send OK.
ftp:/> cd /root
550 Failed to change directory.
ftp:/> 

1.7.3、root

[root@localhost ~]# vi /etc/vsftpd/ftpusers  //注释root    (优先级高)

# Users that are not allowed to login via ftp
#root
bin



[root@localhost ~]# vi /etc/vsftpd/user_list   //注释root
#root
bin



Connecting to 192.168.30.3:21...    
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
220 (vsFTPd 3.0.2)
Name (192.168.30.3:Lenovo): root    //ROOT登录成功
331 Please specify the password.
Password: 
230 Login successful.
ftp:/> 

二、NFS服务

2.1、nfs概念

NFS 是一种基于 TCP/IP 传输的网络文件系统协议
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远 程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。NFS端口号2049,RPC端口号111
但是,NFC没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网内使用

2.2、nfs的优缺点

对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。

2.3、具体配置

2.3.1安装软件

[root@localhost ~]# yum -y install nfs-utils.x86_64 rpcbind.x86_64 
。。。
  nfs-utils.x86_64 1:1.3.0-0.68.el7                          rpcbind.x86_64 0:0.2.0-49.el7                         

完毕!
[root@localhost ~]# 

2.3.2、设置共享目录

mkdir -p /opt/lic
chmod 777 /opt/lic

vim /etc/exports
/opt/wwwroot 192.168.184.0/24(rw,sync,no_root_squash)
/var/ftp/pub 192.168.4.11(ro) 192.168.4.110(rw)

2.3.3、启动 NFS 服务程序

手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs

systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs

2.3.4、查看本机发布的 NFS 共享目录

exportfs -rv							#发布共享
showmount -e

2.3.5、手动挂载NFS共享目录

mkdir /kgc
mount 192.168.184.10:/root/ljm /kgc
df -Th

2.3.6、设置自动挂载

vim /etc/fstab

192.168.80.10:/opt/wwwroot /myshare nfs defaults,_netdev 0 0

_netdev :表示挂载设备需要网络

2.3.7、查看自动挂载是否设置成功

umount /kgc
df
mount -a
df

2.3.8、强制解挂

如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。这个时候直接使用umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载。

umount -lf /myshare

三、yum仓库

3.1更换yum源为阿里云源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum clean all  //清理缓存数据

yum makecache    //重建元数据缓存

3.2更换yum源为本地安装源

①准备软件仓库

[root@localhost ~]# mount /dev/sr0 /mnt   //挂载光盘充当yum仓库
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /mnt    //查看挂载后的目录有哪些内容(Packages内为rpm软件包)
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@localhost ~]# 

②配置软件仓库位置

[root@localhost ~]# vim /etc/yum.repos.d/local.repo     //yum软件仓库载此目录下,在创建一个

[local]            //表示仓库类别
name=local             //仓库名称(说明)
baseurl=file:///mnt     //访问路径
enable=1       //启用此仓库
gpgcheck=0     //不验证软件包的签名
            

③清楚缓存,建立元数据缓存

[root@localhost ~]# yum clean all    //清除缓存
已加载插件:fastestmirror, langpacks
正在清理软件源: FTP local
Cleaning up list of fastest mirrors
Other repos take up 401 M of disk space (use --verbose for details)

[root@localhost ~]# yum makecache     //建立元数据缓存
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
FTP                                                                                          | 2.9 kB  00:00:00     
local                                                                                        | 3.6 kB  00:00:00     
(1/7): FTP/filelists_db                                                                      | 3.2 MB  00:00:00     
(2/7): FTP/primary_db                                                                        | 3.2 MB  00:00:00     
(3/7): local/group_gz                                                                        | 166 kB  00:00:00     
(4/7): FTP/other_db                                                                          | 1.3 MB  00:00:00     
(5/7): local/filelists_db                                                                    | 3.2 MB  00:00:00     
(6/7): local/primary_db                                                                      | 3.1 MB  00:00:00     
(7/7): local/other_db                                                                        | 1.3 MB  00:00:00     
元数据缓存已建立
[root@localhost ~]# 

④查看软件源

[root@localhost ~]# yum repolist 
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识                                                  源名称                                                 状态
local                                                   local                                                  4,021
repolist: 4,021
[root@localhost ~]# 

⑤验证

[root@localhost ~]# yum -y install httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-88.el7.centos 将被 安装
--> 解决依赖关系完成

依赖关系解决

====================================================================================================================
 Package                架构                    版本                                   源                      大小
====================================================================================================================
正在安装:
 httpd                  x86_64                  2.4.6-88.el7.centos                    local                  2.7 M

事务概要
====================================================================================================================
安装  1 软件包

总下载量:2.7 M
安装大小:9.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : httpd-2.4.6-88.el7.centos.x86_64                                                                1/1 
  验证中      : httpd-2.4.6-88.el7.centos.x86_64                                                                1/1 

已安装:
  httpd.x86_64 0:2.4.6-88.el7.centos                                                                                

完毕!
[root@localhost ~]# 

3.3、更换源为内网FTP发布的YUM源

①安装启用vsftpd服务

[root@localhost ~]# yum -y install vsftpd    //下载安装
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                         | 3.6 kB  00:00:00     
epel                                                                                         | 4.7 kB  00:00:00     
extras                                                                                       | 2.9 kB  00:00:00     
updates                                                                                      | 2.9 kB  00:00:00     
。。。

已安装:
  vsftpd.x86_64 0:3.0.2-28.el7                                                                                      

完毕!
[root@localhost ~]# systemctl start vsftpd   //启用vsftpd服务

②配置软件仓库

[root@localhost ~]# mount /dev/sr0 /mnt   //挂载光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# mkdir /var/ftp/ftp     //创建挂载目录
[root@localhost ~]# cp -a /mnt/* /var/ftp/ftp/    //将光盘内容复制到该文件夹,充当软件仓库

③ 配置软件仓库位置(客户机)

[root@localhost ~]# vim /etc/yum.repos.d/ftp.repo
[root@localhost ~]# cat /etc/yum.repos.d/ftp.repo
[FTP]      //标识仓库类别
name=FTP    //仓库名称
baseurl=ftp://192.168.30.4/ftp    //访问路径
enable=1             //启用此仓库
gpgcheck=0          //不验证软件包的签名

[root@localhost ~]# 

④清缓存,建立元数据缓存(客户机)

[root@localhost ~]# yum clean all     //清除缓存
已加载插件:fastestmirror, langpacks
正在清理软件源: FTP
Cleaning up list of fastest mirrors
Other repos take up 401 M of disk space (use --verbose for details)
[root@localhost ~]# yum makecache    //建立元数据缓存
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
FTP                                                                                          | 3.6 kB  00:00:00     
(1/4): FTP/group_gz                                                                          | 166 kB  00:00:00     
(2/4): FTP/primary_db                                                                        | 3.1 MB  00:00:00     
(3/4): FTP/filelists_db                                                                      | 3.2 MB  00:00:00     
(4/4): FTP/other_db                                                                          | 1.3 MB  00:00:00     
元数据缓存已建立
[root@localhost ~]# yum repolist    //显示软件源
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识                                                   源名称                                                状态
FTP                                                      FTP                                                   4,021
repolist: 4,021
[root@localhost ~]# 

⑤测试安装httpd(客户机)

[root@localhost ~]# yum -y install httpd    //安装httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-88.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-88.el7.centos,它被软件包 httpd-2.4.6-88.el7.centos.x86_64 需要

====================================================================================================================
 Package                     架构                   版本                                  源                   大小
====================================================================================================================
正在安装:
 httpd                       x86_64                 2.4.6-88.el7.centos                   FTP                 2.7 M
为依赖而安装:
 httpd-tools                 x86_64                 2.4.6-88.el7.centos                   FTP                  90 k
 mailcap                     noarch                 2.1.41-2.el7                          FTP                  31 k
。。。
已安装:
  httpd.x86_64 0:2.4.6-88.el7.centos                                                                                

作为依赖被安装:
  httpd-tools.x86_64 0:2.4.6-88.el7.centos                       mailcap.noarch 0:2.1.41-2.el7                      

完毕!
[root@localhost ~]# 

⑥FTP软件仓库增加软件时,需更新yum源的元数据信息

[root@localhost data]# ls
nginx-1.16.1-3.el7.x86_64.rpm                        nginx-mod-http-xslt-filter-1.16.1-3.el7.x86_64.rpm
nginx-all-modules-1.16.1-3.el7.noarch.rpm            nginx-mod-mail-1.16.1-3.el7.x86_64.rpm
nginx-filesystem-1.16.1-3.el7.noarch.rpm             nginx-mod-stream-1.16.1-3.el7.x86_64.rpm
nginx-mod-http-image-filter-1.16.1-3.el7.x86_64.rpm  openssl11-libs-1.1.1g-3.el7.x86_64.rpm
nginx-mod-http-perl-1.16.1-3.el7.x86_64.rpm

[root@localhost data]# cp * /var/ftp/ftp/Packages/     //将rpm包放到软件仓库中

[root@localhost data]# createrepo --update /var/ftp/ftp/Packages/    //手动更新依赖关系
Could not find valid repo at: /var/ftp/ftp/Packages/
Spawning worker 0 with 2015 pkgs
Spawning worker 1 with 2015 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost data]# 

⑦更新客户机软件仓库位置

[root@localhost ~]# vim /etc/yum.repos.d/ftp.repo  

[FTP]
name=FTP
baseurl=ftp://192.168.30.4/ftp/Packages    //手动更新Packages目录
enable=1
gpgcheck=0

⑧查看可安装软件数量

[root@localhost ~]# yum repolist     //4021没变化
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识                                                   源名称                                                状态
FTP                                                      FTP                                                   4,021
repolist: 4,021
[root@localhost ~]# 

⑨清除缓存,重建元数据信息

[root@localhost ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: FTP
Cleaning up list of fastest mirrors
Other repos take up 401 M of disk space (use --verbose for details)
[root@localhost ~]# yum makecache 
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
FTP                                                                                          | 2.9 kB  00:00:00     
(1/3): FTP/filelists_db                                                                      | 3.2 MB  00:00:00     
(2/3): FTP/other_db                                                                          | 1.3 MB  00:00:00     
(3/3): FTP/primary_db                                                                        | 3.2 MB  00:00:00     
元数据缓存已建立
[root@localhost ~]# yum repolist    //变为4030
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识                                                   源名称                                                状态
FTP                                                      FTP                                                   4,030
repolist: 4,030
[root@localhost ~]#

⑩测试安装nginx

[root@localhost ~]# yum -y install nginx
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
。。。

====================================================================================================================
 Package                                  架构                版本                           源                大小
====================================================================================================================
正在安装:
 nginx                                    x86_64              1:1.16.1-3.el7                 FTP              563 k
为依赖而安装:
 nginx-all-modules                        noarch              1:1.16.1-3.el7                 FTP               20 k
 nginx-filesystem                         noarch              1:1.16.1-3.el7                 FTP               21 k
 nginx-mod-http-image-filter              x86_64              1:1.16.1-3.el7                 FTP               30 k
 nginx-mod-http-perl                      x86_64              1:1.16.1-3.el7                 FTP               39 k
 nginx-mod-http-xslt-filter               x86_64              1:1.16.1-3.el7                 FTP               29 k
 nginx-mod-mail                           x86_64              1:1.16.1-3.el7                 FTP               57 k
 nginx-mod-stream                         x86_64              1:1.16.1-3.el7                 FTP               85 k
 openssl11-libs                           x86_64              1:1.1.1g-3.el7                 FTP              1.5 M


。。。。
已安装:
  nginx.x86_64 1:1.16.1-3.el7                                                                                       

作为依赖被安装:
  nginx-all-modules.noarch 1:1.16.1-3.el7                      nginx-filesystem.noarch 1:1.16.1-3.el7              
  nginx-mod-http-image-filter.x86_64 1:1.16.1-3.el7            nginx-mod-http-perl.x86_64 1:1.16.1-3.el7           
  nginx-mod-http-xslt-filter.x86_64 1:1.16.1-3.el7             nginx-mod-mail.x86_64 1:1.16.1-3.el7                
  nginx-mod-stream.x86_64 1:1.16.1-3.el7                       openssl11-libs.x86_64 1:1.1.1g-3.el7                

完毕!
[root@localhost ~]# 

 

以上是关于Linux不得不会的技能之FTP服务NFS服务及yum仓库的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统部署YUM远程仓库及NFS共享服务

Linux九阴真经之大伏魔拳残卷1(FTP,NFS)

Linux网络之YUM仓库的补充和NFS共享服务

文件共享之nfs

FTP服务及部署YUM仓库与NFS服务!

文件共享服务之FTP