yum
yum底层还是使用的rpm。能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum源配置
在centos中yum源文件存储在/etc/yum.repos.d目录中。
这个目录下,所有repo文件都能删除,然后自创一个repo文件来自定义源。
配置文件里面mirrorlist属性,前面需要加协议,例如:file:// http://
配置阿里源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
下载阿里的源文件,命名为Centos-Base.repo
yum claean all
#清理缓存数据
yum makecache
#创建缓存
yum配置文件
- 基本设置:/etc/yum.conf
- 仓库设置:/etc/yum.repos.d/*.repo
- 日志文件:/var/log/yum.log
yum缓存目录
缓存目录:存放下载的软件包、仓库信息等数据
位于:/var/cache/yum/$basearch(硬件架构,如x86_64)/$releaserver(OS版本)
yum clean all
清理缓存数据
yum常用命令
yum makecache #更新源(安装新源后执行)
yum clean all #清除缓存目录(/var/cache/yum)下的软件包及旧的headers
yum list |grep [应用名] #显示所有已经安装和可以安装的程序包
yum info [yum安装包名] #显示安装包信息
yum -y install [yum安装包名] #安装软件,默认选yes
yum remove [应用名] #卸载
yum deplist rpm [应用名] #查看程序rpm依赖情况
yum update #更新全部软件包
yum group list #列出组
yum group install "Security Tools" #安装‘Security Tools’软件组
yum search [模糊应用名] #检索安装包
Linux网络配置
ifconfig命令,查看和设置网卡信息
ifconfig [网卡]
查看所有/单个网卡
可以获取到如下信息:
- inet ip地址
- netmask 子网掩码
- broadcast 广播地址
- ether MAC地址
临时设置网卡:
ifconfig 接口名 ip地址 [netmask 子网掩码]
ifconfig 网络接口 ip地址[/掩码长度]
禁用和激活网卡:
ifconfig 网卡 down
#禁用网卡
ifconfig 网卡 up
#开启网卡
设置虚拟网络接口:
ifconfig 接口名:序号 IP地址
hostname命令,查看或者设置主机名
hostname [主机名]
查看/修改主机名 #临时修改
bash
刷新
/etc/hostname
#主机名文件 持久修改
route命令,查看或设置主机中的路由表
route -n
#查看路由表
设置路由记录:
route add -net 网段地址 gw IP地址
添加到指定网段的路由记录
route del -net 网段地址
删除到指定网段的路由记录
route del default gw IP地址
删除路由表中的默认网关记录
route add default gw IP地址
向路由表中添加默认网关记录
netstat命令,查看系统的网络连接状态、路由表、接口信息统计
可以查看服务,是否启动成功,用了哪个端口,是否有恶意软件运行
常用:netstat anpt
- -r 查看当前路由表信息
- -a 显示所有
- -n 数字形式显示
- -p 显示端口
- -t 查看tcp协议
- -u 查看udp协议
ping命令,测试网络连通性
发送出基于ICMP传输协议的数据包
ping [参数] 目标主机
ping命令在Linux和Windows上的区别
Linux与Windows相比有一定差异,Windows系统下的ping命令会发送出去4个请求后自动结束该命令;而Linux系统则不会自动终止,需要用户手动按下组合键“Ctrl+c”才能结束,或是发起命令时加入-c参数限定发送个数。
traceroute命令,测试从当前主机到目的主机之间经过的网络节点
traceroute 目标主机
nslookup命令,测试DNS域名解析
nslookup 目标主机地址 [DNS服务器地址]
网络接口文件
/etc/sysconfig/network-scripts
下的配置文件
主要属性:
BOOTPROTO=dhcp
获取IP的方式 dhcp自动获取IP static固定静态IP
DEVICE=ens33
网卡名称
ONBOOT=yes
是否默认开启网卡,Centos7默认关闭
如果获取IP方式为static需要手动添加配置:
IPADDR=[ip]
NETMASK=255.255.255.0
GATEWAY=192.168....
DNS1=114.114.114.114
中国的DNS
DNS2=8.8.8.8
谷歌的DNS
保存以后重启网卡:
systemctl restart NetworkManger
(Centos7是Network)
不生效就重启机器
DNS配置文件
/etc/resolv.conf
hosts配置文件
/etc/hosts
DHCP服务
DHCP:Dynamic Host Configuration Protocol 动态主机配置协议。
概述:为大量客户机提供ip,自动分配IP地址,方便管理,减轻管理和维护成本、提高网络配置效率。
DHCP使用67端口
配置文件:
主要:/etc/dhcp/dhcpd.conf
打开这个配置文件,发现提示寻找模板配置文件
vim 一般模式 r 文件路径
把模板文件的内容进行引过来
执行程序:/usr/sbin/dhcpd
,/user/sbin/dhcrelay
执行参数配置:/etc/sysconfig/dhcpd
两种使用方式:
- 修改网卡配置文件(如ifcfg-eth33)
BOOTPROTO=dhcp - 使用dhclient命令
dhclient -d eth33
DNS系统
域名和IP互相解析的服务
- 正向解析:根据主机名称(域名)查找对应的IP地址
- 反向解析:根据IP地址查找对应的主机域名
DNS协议运行在UDP协议之上,使用端口号53。
域名解析过程
当一个用户在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤,这个过程大概如下:
-
浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。(浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不好,如果缓存时间太长,一旦域名被解析到的IP有变化,会导致被浏览器缓存的域名无法及时解析到变化后的IP地址,这段时间内可能会有一部分用户无法访问网站。如果时间设置太短,会导致用户每次访问网站都需要重新解析一次域名。)
-
如果用户的浏览器缓存中没有,浏览器会查找本地hosts文件中是否有这个域名对应的映射关系,如果有则调用这个IP地址映射,完成域名解析。
-
如果浏览器缓存和hosts文件中都没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。(前面三步都是在本机中完成,本机中的解析不具有权威性,到这里还没有涉及真正的域名解析服务器,如果本机中仍然无法完成域名的解析,就会真正请求域名服务器来解析这个域名。)
-
操作系统把域名发送给TCP/IP中设置的首选DNS地址,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,大约80%的域名解析都到这里就已经完成。(称为LDNS,Local DNS Server,本地DNS服务器,该DNS服务器性能都会很好,一般都会缓存域名解析结果,此解析具有权威性。)
-
如果本地DNS服务器区域解析不成功,但是该服务器已经缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析。(此解析不具有权威性。)
-
如果LDNS和缓存解析都没有命中,就直接到Root Server根域名服务器请求解析。
-
根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址。(gTLD是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右。)
-
本地域名服务器再向上一步返回的gTLD服务器发送请求。
-
接收请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址。(这个Name Server就比如是在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成。Name Server可能有多级)
-
本地域名服务器再向上一步返回的Name Server域名服务器发送请求,Name Server域名服务器查询存储的域名和IP的映射关系表,正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给本地域名服务器。
-
本地域名服务器会缓存这个域名和IP的映射关系,缓存的时间由TTL值控制 。
-
把解析的结果返回给客户端,客户端根据TTL值缓存在本地系统缓存中,域名解析过程结束。
DNS系统的类型
- 缓存域名服务器
也称为高速缓存服务器
通过向其他域名服务器查询获得域名 -> IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度 - 主域名服务器
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有域名->IP地址的映射记录 - 从域名服务器
也称为辅助域名服务器
其维护的域名->IP地址记录来源于主域名服务器
BIND域名服务
伯克利Internet域名服务
官网:https://www.isc.org/
主要执行程序:/usr/sbin/named
默认监听端口:53
主配置文件:/etc/named.conf
保存DNS解析记录的数据文件位于:/var/named
全局配置部分:
设置DNS服务器的全局参数
包括监听地址/端口、数据文件的默认位置、允许访问的网段等
/var/named/chroot/etc/named.conf
区域配置部分:
设置本服务器提供域名解析的特定DNS区域
包括域名、服务器角色、数据文件名等
/var/named/chroot/etc/named.rfc1912.zones
以zones结尾的文件
区域数据配置文件:
- 全局TTL配置项及SOA记录
- 正向域名解析记录
- 反向域名解析记录
/var/named/chroot/var/named
模板named.localhost
检查配置文件
named-checkconf -z /var/named/chroot/etc/named.conf
检查named.conf文件是否有误
named-checkzone [域名] [zone文件名]
检查数据区文件是否有误
SSH协议
为客户机提供安全的Shell环境,用于远程管理
默认端口:TCP 22
OpenSSH
- 服务名:sshd
- 服务端主程序:
/usr/sbin/sshd
- 服务端配置文件:
/etc/ssh/sshd_config
- 客户端配置文件:
/etc/ssh/ssh_config
ssh服务通过密码进行登录,主要流程为:
1.客户端连接上服务器之后,服务器把自己的公钥传给客户端
2.客户端输入服务器密码通过公钥加密之后传给服务器
3.服务器根据自己的私钥解密登录密码,如果正确那么就让客户端登录
ssh服务公钥登录,主要流程为:
1.客户端生成RSA公钥和私钥
2.客户端将自己的公钥存放到服务器
3.客户端请求连接服务器,服务器将一个随机字符串发送给客户端
4.客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
5.服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。
配置公私钥登录
linux下可以用用ssh-keygen
命令生成公钥/私钥对。
1.若有机器A,B。现想A(客户机)通过ssh免密码登录到B(服务器)。 在A机(客户机)下使用ssh-keygen
命令生成公钥/私钥对。在执行此命令后将在~/.ssh
目录下将生成id_rsa
和id_rsa.pub
文件。
2.在B机器(服务器)开启证书的验证,默认是开启的。 若没有开启可修改ssh配置文件,vi /etc/ssh/sshd_config
,将文本中有关PubkeyAuthentication
和AuthorizedKeysFile
的条目修改为如下内容:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
3.随后重启服务 systemctl restart sshd.service
A机器(客户机)使用ssh-copy-id [user]@[host]
命令拷贝密钥文件到B机器(服务器)。
4.随后客户机访问服务器,我们会发现直接无密码登录。
小结:客户机有私钥,被登录的服务器要有登录客户机的公钥。这个公钥/私钥对一般在私钥宿主机(客户机)产生。上面是用rsa算法的公钥/私钥对,也可以用dsa算法(对应的文件是id_dsa,id_dsa.pub)。
scp命令,远程安全复制
将本机文件复制到远程服务器上(上传)
命令格式:scp 【本地文件路径】 [username]@[主机IP]:[拷贝的目录] #-r是文件夹
将远程服务器上的文件复制到本机(下载)
命令格式:scp [username]@[主机地址]:[服务器上文件路径] [本地文件路径]
注意两点:
1.如果远程服务器openssh有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
scp -P 2222 [username]@[主机地址]:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限.
sftp命令,交互式的文件传输
sftp [参数] [IP或主机名]
-C 使用压缩
-B 指定传输文件时缓冲区的大小