云网服务管理(Linux) —— 5天
DAY01 YUM(安装软件)
DAY02 LAMP(配置网站)
DAY03 DNS(域名解析)
DAY04~05 ZABBIX(网络监控)

全栈型ICT网络工程师(提供一条龙服务)——
1)计算机硬件
2)操作系统(Windows/Linux/IOS/VRP)
3)网络构建/实施
4)设备配置和管理
5)网络应用部署(网站、FTP、数据库、游戏、……)
6)网络监控(流量、可用性、……)
7)网络信息安全
……
—— 售前、规划、实施、运维、售后(支持/培训)

阶段3,难度增加(命令多/英语单词多,多练习)
每一天的练习案例有一定连贯性

环境准备:新安装一台CentOS 7.5虚拟机

  1. 新虚拟机的磁盘80G、内存2G,网络适配器为“NAT模式”
  2. 光盘使用ISO文件“.. ..\CentOS-7-x86_64-DVD-1804.iso”
  3. 安装时选择“带GUI的服务器”
  4. 将管理员root的密码设为 1234567,新建用户student,密码设为1234567
  5. 登录初始化设置选择 汉语(Intelligent PinYin)

Linux隐藏文档(名称以 . 开头)

!!! 每一个用户的主目录下的 .config 目录,存放输入法选择设置
!!! 设置 --> 隐私 --> 自动锁屏

为什么命令行界面?(效率、节省资源)

Linux配置文件中的 # 表示注释/说明

SELinux,安全增强的Linux保护机制
默认状态 enforcing(强制启用)
状态 permissive(启用,但是不限制)
状态 disabled(彻底禁用)

vim /etc/selinux/config

SELINUX=disabled

reboot

Linux基础知识回顾:
1)基本命令(ls/pwd/cd/mkdir/useradd/passwd/usermod/userdel……)
2)配置网络(hostnamectl、nmcli)、远程管理
3)设置文档的权限、归属

chmod -R ugo+-=rwx 文档的路径...

chown -R 属主:属组 文档的路径...

如果对一个目录有w权限,他可以在这个目录下添加/删除/改名文档
r、w对root用户不起作用
程序文件的x权限对root也起作用

4)vim编辑器

vim 文件的路径

按i键进入编辑状态 =》修改文本内容 =》按Esc键返回命令模式 =》按 : 进入末行模式 ==》输入 :wq 退出

:q 退出编辑器
:q! 不保存、退出编辑器

临时手动挂载:
mount /dev/cdrom /repo/cos7dvd

开机自动挂载:

vim /etc/fstab

.. ..
/dev/cdrom /repo/cos7dvd iso9660 defaults 0 0

网络连接:管理员设置的网络配置名
网卡设备:操作系统识别的硬件名

补充练习:远程管理CentOS7虚拟机
1)主机名设为 svr7.tedu.cn

hostnamectl set-hostname svr7.tedu.cn

2)配置网络(先删除连接 ens33、"有线连接 1" -- 如果有的话)

nmcli con del ens33

nmcli con del "有线连接 1"

---> 重新添加名为 nic1 的网络连接,使用的网卡为 ens33

nmcli con add con-name nic1 ifname ens33 type ethernet

---> 为连接 nic1 配置网络地址参数(IP地址 192.168.10.7/24)

nmcli con mod nic1 ipv4.method manual ipv4.addresses 192.168.10.7/24 connection.autoconnect yes

nmcli con up nic1

3)从真机使用 SecureCRT 远程管理此虚拟机
调整界面设置(选项-会话选项,设置字号、UTF-8中文支持)

常见问题:
1)错误:无法删除未知连接:'ens33'
原因:连接名输错了,或者已经删除过了
2)错误:无法删除未知连接:'有线连接1'
原因:连接名输错了(比如少空格),或者已经删除过了
3)尝试激活连接ens33失败
原因:连接名不对,或者连接配置有错误(比如ifname指定的网卡不对)
4)从真机无法远程连接到192.168.10.7
原因:网络不通,或者用户名、密码不对

有一台Linux服务器,192.168.10.7,如何远程连接?

Windows10真机(客户机、主控机) 192.168.10.?
-- VMware Workstation ->编辑->虚拟网络编辑器 -> VMnet8 -> 将子网设置为与虚拟机IP地址对应的网段
==》Linux虚拟机(服务器、被控机)192.168.10.7

4)使用vim命令修改/etc/selinux/config文件
将SELINUX=enforcing改为SELINUX=disabled,保存退出
5)将虚拟机关机,制作快照备份

如何查看目录占用的磁盘空间(Disk Usage)大小?

du -sh /repo/cos7dvd

补充小练习:开机自动挂载光盘设备
1)确保虚拟机已成功连接CentOS的ISO映像文件
2)准备好挂载点目录

mkdir -p /repo/cos7dvd

3)设置开机自动挂载

vim /etc/fstab

.. ..
/dev/cdrom /repo/cos7dvd iso9660 defaults 0 0
4)重启后,确认 /repo/cos7dvd 目录下的资源

reboot

。。。。

ls /repo/cos7dvd

常见问题:
1)重启后无图形,提示 Give root password for maintenance
原因:刚刚做的XX配置(/etc/fstab)有问题(比如iso9660写错),或者虚拟机忘记连接ISO镜像
解决:根据提示输入正确密码,进命令行后纠正错误
—— 如何避免出现这个情况 —— 重启前执行 mount -a测试及挂载
2)修改/etc/fstab文件无法保存,提示“readonly”
原因:普通用户没有修改权限
3)执行mount -a测试时提示 mount: 挂载点 /repo/cos7dvd 不存在
原因:挂载点目录未提前创建好

交换机、路由器 ==》迷你版/定制版的Linux系统
Linux服务器 ==》豪华版的Linux系统

常见错误:
1)yum安装软件包时,提示 Error downloading packages:
原因:无法连接恰当的软件资源

Linux主机的软件源(软件包的来源)

CentOS7默认的软件来源 --》CentOS官网

vim /etc/yum.repos.d/*.repo

服务端(软件仓库) —— 提供软件资源(/repo/cos7dvd目录)
客户端(yum)—— 使用软件资源(查询、安装、卸载……)

目标 ——
让CentOS虚拟机不要找官网,而是去找本机的/repo/cos7dvd
1)清理掉不可用的软件源(CentOS官网)

rm -rf /etc/yum.repos.d/*.repo

2)添加新的可用的软件源(本地目录/repo/cos7dvd)

yum-config-manager --add file:///repo/cos7dvd

3)允许安装非官方来源的软件包

vim /etc/yum.conf

gpgcheck=0 //不检查官方签名
4)检查配置结果

yum repolist

源标识 源名称 状态
repo_cos7dvd added from: file:///repo/cos7dv 3,971
repolist: 3,971

常见问题:
1)yum repolist显示包的数量不是3971(0,4221)
原因:0 -- 仓库目标位置(/repo/cos7dvd)没有软件包;4221 -- CentOS镜像的版本有差别
2)使用yum-config-manager添加了一个错误的地址,如何去除?
原因:手误 【rm -rf /etc/yum.repos.d/.repo,然后重新添加】
3)执行yum repolist时提示 Couldn't open file /cos7dvd/repodata/repomd.xml
原因:某一个仓库的地址有错误 【rm -rf /etc/yum.repos.d/
.repo,然后重新添加】

!!! 补充:

getenforce //检查当前的SELINUX状态

setenforce 0 //立即将SELINUX从enforcing变为permissive

软件仓库的网址:
http://服务器地址/仓库目录
ftp://服务器地址/仓库目录
file:///repo/cos7dvd

构成软件仓库的文件资源
1)大量的 .rpm 软件安装文件
2)仓库档案数据(记录了每个软件的作者、版本、……信息)

软件包B --> 软件包A

yum -y install 软件包A

yum-config-manager --add-repo 软件仓库的访问地址

http://服务器地址/路径 ....
ftp://服务器地址/路径 ....
file://仓库目录的绝对路径

案例2:
[root@svr7 ~]# rm -rf /etc/yum.repos.d/*.repo //删除旧源
[root@svr7 ~]# yum-config-manager --add-repo file:///repo/cos7dvd/ //添加新源
[root@svr7 ~]# vim /etc/yum.conf
gpgcheck = 0 //不作签名检查

[root@svr7 ~]# yum repolist //查看仓库列表
.. ..
源标识 源名称 状态
repo_cos7dvd added from: file:///repo/cos 3,971
repolist: 3,971

| 管道操作(把命令行1的显示结果交给命令行2处理):
命令行1 | 命令行2

分页查看命令行显示结果:

命令行 | more

或者

命令行 | less

常见报错信息:
bash:命令名: command not found...
原因1:命令敲错了
原因2:提供此命令的软件包未安装

yum查询操作 ——
list 【列出软件包】
info 【查询XX软件的描述信息】
provides 【查询哪个软件能提供XX文件】

管道 |
用法:命令1 | 命令2
用途:把命令1的显示结果交给命令2处理
比如:yum list installed | less ==》分页显示安装了哪些包

默认的Linux命令行解释器(翻译) = /bin/bash
也称为shell(贝壳/外壳,操作系统内核的外壳)

yum安装/卸载操作 ——
install
remove
reinstall

软件包的单向依赖关系 ——
软件包D 依赖 A、B、C
==》安装 D 时候,会自动先安装A、B、C
软件包 A、B、C 并不依赖 D
==》卸载软件 D 时候,软件A、B、C不会被卸载

蚯蚓、蚂蝗

Filezilla Server

Client/Server

案例5:快速部署一台FTP服务器
案例6:允许其他客户机访问FTP服务器

在Linux主机上部署XX服务的基本过程 ——
1)装包(vsftpd)

yum -y install vsftpd

2)配置(可选,添加一个FTP用户vip2019)

useradd vip2019

echo 123456 | passwd --stdin vip2019

3)起服务(vsftpd)

systemctl start vsftpd

如何管理系统服务:
—— 控制XX服务立即开启、停止、重启、检查运行状态

systemctl start 服务名... 【start/stop/restart/status】

—— 控制XX服务在每次开机时是否自动开启

systemctl enable 服务名... 【enable/disable】

从本机浏览器访问 ftp://192.168.10.7/
从本机浏览器访问 ftp://vip2017:1234@192.168.10.7/

FTP协议,复合连接 ——
控制连接(发送指令)
数据连接(传输数据)【主动模式、被动模式】

标配的vsftpd服务的特点:
1)允许匿名访问,但是只能下载
2)允许用户密码访问(root除外),既可以下载、也可以上传

CentOS7服务器默认的安全防护措施 ——
1)默认防火墙服务firewalld,禁止除了ssh以外的访问
2)默认SELinux策略禁止为用户的家目录提供FTP上传权限

firewalld 服务

WinSCP软件工具:
1)通过SFTP/SCP方式远程连接Linux服务器主机的sshd【TCP 22】
或者
2)通过FTP方式远程连接Linux服务器主机的vsftpd【TCP 21】

本例要求实现vsftpd服务器资源的远程访问,首先应在FTP服务器上关闭防火墙和SELinux保护机制。
1)关闭firewalld服务,并禁止其开机自启动

systemctl disable firewalld --now

2)关闭SELinux保护机制,并阻止其开机自动生效

vim /etc/selinux/config

SELINUX=disabled

setenforce 0

然后通过WinSCP客户端管理FTP资源
1)以用户vip2017登录 FTP 服务器
2)测试文件上传/下载功能

配置虚拟机:
1)主机名svr7.tedu.cn、IP地址 192.168.10.7/24
2)准备好软件仓库目录 /repo/cos7dvd
3)配置好本机使用软件源 file:///repo/cos7dvd
4)彻底关闭防火墙firewalld服务
5)彻底关闭SELinux保护机制
6)把虚拟机关机,做好快照