目录
bond绑定
mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地 网卡相连的交换机设备上进行端口聚合来支持绑定技术
mode1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。
绑定案例
配置ens33和ens37
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
~
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vim ifcfg-ens37
TYPE=ethernet
BOOTPROTO=none
NAME=ens37
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes
配置bond0
[root@localhost modprobe.d]# vim bond.conf
TYPE=Ethernet
BOOTPROTO=none
NAME=bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.93.132
PREFIX=24
GATEWAY=192.168.93.2
DNS1=192.168.93.2
配置bond0的驱动文件
[root@localhost network-scripts]# cd /etc/modprobe.d/
[root@localhost modprobe.d]# vim bond.conf
alias bond0 bonding
options bonding mode=6 miimon=200
关闭网络图形化服务
[root@localhost modprobe.d]# systemctl stop NetworkManager
启用bond0
[root@localhost modprobe.d]# ifdown ens33 && ifup ens33 && ifdown ens37 && ifup ens37 && ifup bond0
WARN : [ifdown] You are using 'ifdown' script provided by 'network-scripts', which are now deprecated.
WARN : [ifdown] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifdown] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
/etc/sysconfig/network-scripts/ifdown-eth:行129: /sys/class/net/bond0/bonding/slaves: 没有那个文件或目录
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifdown] You are using 'ifdown' script provided by 'network-scripts', which are now deprecated.
WARN : [ifdown] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifdown] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
[root@localhost modprobe.d]# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 192.168.93.132 netmask 255.255.255.0 broadcast 192.168.93.255
inet6 fe80::20c:29ff:fe15:4e12 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:15:4e:12 txqueuelen 1000 (Ethernet)
RX packets 110 bytes 9708 (9.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 141 bytes 62928 (61.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:15:4e:12 txqueuelen 1000 (Ethernet)
RX packets 1170165 bytes 1651222583 (1.5 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 138055 bytes 11885351 (11.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens37: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:15:4e:1c txqueuelen 1000 (Ethernet)
RX packets 181 bytes 11430 (11.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 99 bytes 59676 (58.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:41:0d:78 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
抓包工具
tcpdump
-c 收到多少报文后结束
-i 监听网卡
-n 不把地址转换为名字
-t 禁止显示时间戳
-v 详细输出
-e 显示链路层报头
dst port portNumber 抓取目标端口为portNumber的报文
port portNumber 抓取端口为portNumber的报文
src port portNumber 抓取源端口为portNumber的报文
程序管理
Linux进程基础
父进程复制自己的**地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程 ID(PID),PID和父进程ID(PPID)是子进程环境的元素,任何进程都可以创建子进程。
所有进程都是第一个系统进程的后代:在centos6中,第一个系统进程是init,而在centos7中,第一个系统进程是systemd。
父子进程的关系
子进程由父进程产生,在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。
运行过程:子进程运行时父进程休眠。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境后,剩余释放不掉的资源称之为僵尸进程。
程序管理
常见的软件包类型
rpm包:.rpm为后缀,红帽系列操作系统(RedHat,CentOS,OpenSUSE)主要的软件包封装格式,已经做好默认设置,如安装路径,配置文件存放路径,需要手动的解决依赖关系。(相关命令:rpm,yum,dnf)
deb包:.deb为后缀,debian系列操作系统(debian,Ubuntu,kali)主要的软件包封装格式,已经做好默认设置,如安装路径,配置文件存放路径等,需要手动的解决依赖关系。(相关命令:dpkg,apt[-get])
依赖关系:安装软件包所需的基础环境
二进制包:一般以.bin为后缀,直接被计算机执行安装。
源码包:一般C语言(高级语言中最底层的语言,一般结合汇编进行驱动编写)编写,安装前需要编译为二进制包;配置【如,安装路径,配置文件路径,运行用户,运行组,功能模块】--->编译--->安装;文件比较集中,便于后期进行维护与管理。
安装方法
使用独立的rpm包安装
需要下载对应的rpm包,一般在centos系统镜像中存在大量的rpm包
rpm包的命名方法
zip-0-11.el7.x86_64.rpm
软件名.版本号.安装平台.安装架构平台的位数(32位,x86或者64位,x86_64).rpm
rpm命令使用方法
-q:查看指定rpm包是否安装;rpm -q 软件名
-qa 【all】:查看系统中所有已安装的软件包;rpm -qa [| grep 软件名]
-qi 【infomation】:查看已安装软件包的开发信息;rpm -qi 软件名
-ql 【list】:查看已安装软件包的安装路径及生成的文件;rpm -ql 软件名
-qf 【find】:查看命令由哪个软件包安装;which 命令字 rpm -qf 命令的绝对路径;常用于:系统中没有对应指令且不知道由哪个软件包安装生成
[root@localhost ~]# rpm -q nginx
nginx-1.20.1-20.el9.0.1.x86_64
[root@localhost ~]# rpm -qa
libgcc-11.5.0-2.el9.x86_64
fonts-filesystem-2.0.5-7.el9.1.noarch
linux-firmware-whence-20240905-146.el9.noarch
hwdata-0.348-9.15.el9.noarch
xkeyboard-config-2.33-2.el9.noarch
tzdata-2024b-2.el9.noarch
liberation-fonts-common-2.1.3-5.el9.noarch
hyperv-daemons-license-0-0.43.20190303git.el9.noarch
emacs-filesystem-27.2-10.el9_4.noarch
gnome-control-center-filesystem-40.0-31.el9.noarch
abattis-cantarell-fonts-0.301-4.el9.noarch
cups-filesystem-2.3.3op2-31.el9_5.noarch
mozilla-filesystem-1.9-30.el9.x86_64
foomatic-db-filesystem-4.0-72.20210209.el9.noarch
google-noto-cjk-fonts-common-20230817-2.el9.noarch
google-noto-fonts-common-20201206-4.el9.noarch
yelp-xsl-40.2-1.el9.noarch
javapackages-filesystem-6.0.0-4.el9.noarch
adwaita-cursor-theme-40.1.1-3.el9.noarch
adobe-mappings-cmap-20171205-12.el9.noarch
appstream-data-9-20240827.el9.noarch
fuse-common-3.10.2-9.el9.x86_64
libreport-filesystem-2.15.2-6.el9.rocky.0.2.noarch
pcre2-syntax-10.40-6.el9.noarch
dnf-data-4.14.0-17.el9.noarch #太多了 截一小部分
[root@localhost ~]# rpm -qi nginx
Name : nginx
Epoch : 2
Version : 1.20.1
Release : 20.el9.0.1
Architecture: x86_64
Install Date: 2025年05月27日 星期二 16时30分03秒
Group : Unspecified
Size : 150732
License : BSD
Signature : RSA/SHA256, 2024年11月09日 星期六 00时48分23秒, Key ID 702d426d350d275d
Source RPM : nginx-1.20.1-20.el9.0.1.src.rpm
Build Date : 2024年11月09日 星期六 00时43分34秒
Build Host : pb-0b1f43e5-1e27-4a49-91ab-3625b495b940-b-x86-64
Packager : Rocky Linux Build System (Peridot) <releng@rockylinux.org>
Vendor : Rocky Enterprise Software Foundation
URL : https://nginx.org
Summary : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low
memory usage.
[root@localhost ~]# rpm -ql nginx
/usr/bin/nginx-upgrade
/usr/lib/systemd/system/nginx.service
/usr/share/man/man3/nginx.3pm.gz
/usr/share/man/man8/nginx-upgrade.8.gz
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx/html/404.html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/icons
/usr/share/nginx/html/icons/poweredby.png
/usr/share/nginx/html/index.html
/usr/share/nginx/html/nginx-logo.png
/usr/share/nginx/html/poweredby.png
/usr/share/nginx/html/system_noindex_logo.png
/usr/share/vim/vimfiles/ftdetect/nginx.vim
/usr/share/vim/vimfiles/ftplugin/nginx.vim
/usr/share/vim/vimfiles/indent/nginx.vim
/usr/share/vim/vimfiles/syntax/nginx.vim
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost ~]# rpm -qf /usr/bin/ls
coreutils-8.32-36.el9.x86_64
-i 【install】:安装软件包;rpm -ivh /path/软件包名称(全格式)
-v:【verify】详细显示安装过程
-h:【human】人性化显示
-U:【update】升级软件包;rpm -Uvh 软件包名称
-e:【exclude】卸载已安装软件包;
#将所有相关软件包放到同一目录下
rpm -ivh * #一般不用
yum(dnf)安装
可以自动解决依赖关系
/etc/yum.repos.d
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
backup local.repo
yum程序运行时的运行配置
/etc/dnf/dnf.conf
[root@localhost yum.repos.d]# cd /etc/dnf/
[root@localhost dnf]# ls
aliases.d dnf.conf modules.d modules.defaults.d plugins protected.d vars
缓存保存路径
/var/cache/dnf
[root@localhost dnf]# cd /var/cache/dnf
[root@localhost dnf]# ls
appstream-25485261a76941d3 last_makecache local-updateinfo.solvx
baseos-522ed8e2b2f761ff local-84d79d03fad08c1c packages.db
expired_repos.json local-filenames.solvx tempfiles.json
extras-90dfbd6ba528f77b local.solv
yum源类型
本地yum源 利用本地存在的软件包路径
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
AppStream BaseOS EFI images isolinux LICENSE media.repo #已经提前将源光驱挂载在了mnt目录
配置本地yum源
[root@localhost mnt]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# ls
backup #提前将里面的网络源加入新建的目录backup local.repo 建立新的文件输入下面的内容
[root@localhost yum.repos.d]# cat local.repo
[local]
name=local
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
root@localhost yum.repos.d]# yum clean all
9 个文件已删除
[root@localhost yum.repos.d]# yum makecache
local 386 MB/s | 7.9 MB 00:00
上次元数据过期检查:0:00:01 前,执行于 2025年05月27日 星期二 20时47分19秒。
元数据缓存已建立。
此时安装软件源在local
[root@localhost ~]# yum install httpd
上次元数据过期检查:0:01:21 前,执行于 2025年05月27日 星期二 20时47分19秒。
依赖关系解决。
==========================================================================================
软件包 架构 版本 仓库 大小
==========================================================================================
安装:
httpd x86_64 2.4.57-8.el9 local 45 k
安装依赖关系:
apr x86_64 1.7.0-12.el9_3 local 122 k
apr-util x86_64 1.6.1-23.el9 local 94 k
apr-util-bdb x86_64 1.6.1-23.el9 local 12 k
httpd-core x86_64 2.4.57-8.el9 local 1.4 M
httpd-filesystem noarch 2.4.57-8.el9 local 12 k
httpd-tools x86_64 2.4.57-8.el9 local 80 k
安装弱的依赖:
apr-util-openssl x86_64 1.6.1-23.el9 local 14 k
mod_http2 x86_64 2.0.26-2.el9_4 local 162 k
mod_lua x86_64 2.4.57-8.el9 local 59 k
事务概要
==========================================================================================
安装 10 软件包
总计:2.0 M
安装大小:6.0 M
确定吗?[y/N]: n
操作中止。