- 网络管理
- 1. 网络配置概述(基于nmcli命令行模式)
- 传统的Linux网络配置是通过`network.service`来实现
- 新的网络配置方式:`NetworkManager`
- 2. nmtui图形网络配置方法 (略)
- 3. 编辑文件的网络配置方法
- 4. 常用网络命令
- `ping + 目标ip地址`:
- `netstat`:
- `ss`命令
- Linux安装包管理
- 1. 程序安装包简介
- 2. RPM管理
- RPM程序包(相当于`.exe`)
- RPM数据库
- rpm常用命令
- rpm的局限性
- 3. yum工具使用
- yum(Yellowdog Update Modified)项目:
- yum基本语法
- yum工作原理
Linux 服务器连接到网络的配置,例如可以配置
- 静态IP
- VPN网络
- 代理服务器
基于network的常用命令有:
- ifconfig
- ifup
- ifdown
network.service评价:适用于拥有比较稳定的网络环境。当网络改动或切换时,必须重启整个network服务,导致短暂的中断。
新的网络配置方式:NetworkManager主要工具是nmtui和nmcli
- nmtui:可以在shell下执行的一个简单图形界面,其本质是修改Linux的配置文件
- nmcli:是命令行的形式来管理网络类似ifconfig、ifup等传统命令
传统的network与新生的NetworkManager两者同时管理网络时,会出现冲突,一般只需要学一种即可
- 判断当前系统使用哪种网络服务:
- systemctl is-enabled + 服务名称判断是否开机启用
- systemctl is-enabled network
- systemctl is-enabled NetworkManager
- systemctl status + 服务名称 判断当前是否启用
- systemctl stop + 服务名称 停用服务,当发现二者都启用时,就停用一个
不论何种方式,Linux的本质任然是文件配置 - Centos7的网络配置文件默认在/etc/sysconfig/network-scripts/目录下
- 激活网卡的3种方式(相当于ifup ens33):
- nmcli c up ens33 备注:nmcli c | connection,连接,可理解为配置文件,相当于ifcfg-ethX或ifcfg-ensX
- nmcli d connect ens33 备注:nmcli d | device,设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)
- nmcli d reapply ens33
- 禁用网卡(相当于ifdown ens33)
- nmcli c down ens33
- 通过ifconfig查看当前网络配置,centos默认网卡名叫ens33
上图对应的注释如下:
nmtui提供基于光标的文本用户界面(TUI)
通过nmtui管理网的前提是:网卡可以被NetworkManager管理
使用以下命令查看,注意STATE栏的状态
- nmcli device:绿色表示该网卡已经被NetworkManager管理
上述状态可以通过下面命令查看和修改 - nmcli networking:查看
- nmcli networking on|off:修改
- vim /etc/sysconfig/network-scripts/ifcfg-ens33:编辑该文件即可
修改该文件后,保存退出
重新启动ens33网卡,加载配置文件
ifdown ens33 ifup ens33
此时使用ifconfig查看ip,会发现ip被改变了
4. 常用网络命令 ping + 目标ip地址:通常用于诊断到目标IP地址的连通性,判断从本机到目标机器,网络是否正常
例如:ping www.baidu.com, 第一列:返回数据包的大小;第二列:发送数据包的序列;第三列:接收返回数据的时间
利用该指令可得到整个Linux系统的网络情况,选项如下:
- -a (或) --all:显示所有连线中的 Socket
- -h | --help:在线帮助
- -i | --interfaces:显示网络界面信息表单
- -l | --listenling:显示监控中的服务器的Socket
- -n | --numeric:直接使用IP地址,而不通过域名服务器
- -p | --programs:显示正在使用Socket的程序识别码和程序名称
- -s | --statistics:显示网络工作信息统计表
- -t | --tcp:显示TCP传输协议的连线状况
- -u | --udp:显示UDP传输协议的连线状况
举例:netstat -antp:
第一个红框表示:当前正在监听TCP 22号端口,进程ID 1152,进程名未sshd;
第二个红框表示:当前TCP的连接,即我们SSH的连接(Xshell)
- 是Socket Statistics的缩写,用来获取socket统计信息。
- ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速、高效。。
- 当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat/proc/net/tcp,执行速度都会很慢
- ss快的秘诀在于,它利用到了TCP协议栈中的tcp_diag。tcp_diag是一个用于分析统计的模块,可以获取Linux 内核中的第一手信息。
常用选项:
- -t | --tcp:显示tcp连接
- -a | --all:显示所有连接
- -l | --listening:列出所有打开的网络连接端口
- -s | --summary:显示Sockets摘要
- -p | --progress:显示端口对应的进程
- -n | --numeric:不解析服务名称,也可以理解为数字形式显示
- -r | --resolve:解析服务名称
- -m | --memory:显示内存情况
例如:ss -lntp:以数字形式显示tcp连接,并显示进程名
红框表示:22端口被 (sshd进程,id为1152)的进程所监听
早期:如果想要添加软件,必须获取该软件源代码,然后将其编译成二进制代码。再来运行,这种软件包通常是一个压缩包,如.tar格式
缺点:
- 获取软件的依赖库文件
- 不知道相关软件的路径
- 删除时可能比较困难
- 更新时比较困难
解决方法:将软件包从简单的压缩包,变成了更复杂的打包,即:
- RPM(Red Hat Package Manager)包,时SUSE、Red Hat、Centos等的首选软件包格式
- Deb包,基于Debina GNU/Linux 的管理包文件,常用于基于Debian的发行版本Linux,如Ubuntu、Linux mint、KNOPPIX等
Linux系统管理员的主要职责之一就是软件管理,包含以下常见工作:
- 安装应用程序
- 更新应用程序
- 给内核Kernel打补丁
因此,我们需要一个合适的工具,查看并维护当前的软件及版本,Linux通常用rpm来进行软件管理,同时使用yum作为补充。
2. RPM管理 RPM程序包(相当于.exe)就是文件容器,包含特定应用程序或应用程序相关的文件组,通常的RPM程序包,包含如下部分:
- 二进制文件(可执行文件,已经编译好了)
- 安装脚本
- 配置文件
- 软件使用文档
- 安装卸载命令
- 注意:rpm包依赖CPU类型来工作,如x86、x86_64、arm等
存于本机的/var/lib/rpm/目录中,RPM数据库的作用如下:
- 跟踪每个 RPM 中各文件的版本和位置
- 维护各文件的 MD5 校验和
- rpm -i + packageName :安装软件包
- rpm -U + packageName:升级软件包,如果没有安装,则安装
- rpm -F + packageName:只升级软件包,如果原来安装,则不会新安装
- rpm -e packageName:卸载程序包
例如:从数据库查询当前系统已安装的 Firefox 浏览器
使用rpm安装软件包,必须先安装完整软件包的依赖,才能安装软件。如果软件的依赖非常多,这就很麻烦
3. yum工具使用 yum(Yellowdog Update Modified)项目:着手解决RPM软件包依赖的问题
- 主要作用:将RPM不再视为单一软件包,而是视为一个软件库
- 借助软件库,安装软件的工程师不再解决依赖问题,而是由Linux发行版本的经销商来解决。
- yum软件库可以放置到web服务器(http)、FTP服务器(ftp)的一个目录中,甚至本地介质中,甚至本地目录中。
- 一般Linux发行版本的经销商都在国外,我们访问就比较慢,因此国内有很多公司、大学弄了镜像。
- 然后将软件库配置到/etc/yum.conf中(这个地方可以修改yum软件库的地址,例如设置为中科大的镜像),或者/etc/yu.repos.d目录下的文件中
- yum [options] command
- 例如安装火狐浏览器:yum install firefox
- 用户只需要知道软件名,而不用知道安装包路径或安装包全称
五个步骤:(如果自己用rpm安装,前三步就需要自己做)
- 输入yum install firefox
- 查询/etc/yum.conf 与 /etc/yum.repos.d/*
- 通过上述配置找到RPM包,包含依赖。并复制(下载)到本地
- RPM安装
- 修改RPM数据库
-
配置文件:/etc/yum.conf
-
搜索软件 search: 当你想知道 editor 相关的软件时,就可以用该命令:
yum search editor , yum就能把所有跟 editor 相关的信息罗列出来,自己再取选在装哪一个
然后使用 .x86_64之前的字符来进行安装,例如yum install dconf-editor -
查看软件信息 info:yum info emacs
-
如果知道一个命令,但不知道命令来自于哪个软件,可以查询:yum provides netstat
查询到之后,我们就可以安装yum install net-tools -
查看软件包依赖:yum deplist net-tools
-
安装软件:yum install ____
-
删除软件:yum erase ____,只会删除列出的软件包,而不会删除相关依赖
-
查看 yum 历史记录:yum history,可以查看用户使用yum进行了哪些行动
- 根据ID,可以查看具体信息,例如yum history info 2
- 彻底还原删除 history 2 中的所有操作:yum history undo 2,该指令对系统软件失效
-
更新软件包:
- yum check -update ,去yum的缓存清单/etc/yum.repos.d/*里查询,
- yum update + packagename // 更新指定软件
- yum update 更新所有
-
如果yum配置中使用了软件缓存,那么yum的缓存目录很容易装满,缓存目录中的所有数据都是可以被清除的,清楚后 yum 下次使用时,会自动下载新的元数据
- yum clean packages
- yum clean metadata
- yum clean all



