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仓库的主要内容,如果未能解决你的问题,请参考以下文章