网络

一、查端口通信

1.查tcp端口

  • 远程服务器的端口通不通 telnet ip 端口 :查tcp端口

2.查udp端口

  • nc -vu -z <IP地址> <端口号>
    
  • -v (verbose):显示详细信息(告诉你连接是成功还是失败)。

  • -u (udp):指定使用 UDP 协议(默认为 TCP)。

  • -z (zero-I/O):只扫描端口,不发送任何数据。

二、osi七层模型

应用层(用户网络接口),表示层(数据加解密,压缩解压缩,格式转换),会话层,传输层(端到端的通信,段tcp 数据报UDP),网络层(路由选择,数据包),数据链路层(mac地址寻址,物理层信息封装成帧),物理层(比特)

典型协议 应用层:http80   https443    telnet23    dns53    dhcp67(服务端)  68(客户端)   

                               ftp20(数据端) 21(控制端)       smtp 25      ssh 22

传输层:

tcp 面向链接 可靠(三次握手建立连接,四次挥手断开连接)

(SYN    SYN+ACK    ACK)       三次握手

 SYN标志位,用于建立连接 ACK(确认)确认收到数据。seq 序列号(数值) ack确认号(数值)

例如主机A,B之间通信

  • 第一步 (SYN):A 发送 SYN=1, Seq=100。

    • 含义: “你好 B,我想建立连接,我的数据从 100 开始编排。”

  • 第二步 (SYN + ACK):B 回复 SYN=1, ACK=1, Seq=500, Ack=101。

    • 含义: “收到 Seq 100 了(Ack=101 表示想要 101),我也想连你,我的数据从 500 开始编排。”

  • 第三步 (ACK):A 回复 ACK=1, Ack=501。

    • 含义: “收到 Seq 500 了,握手成功,咱们开聊!”

四次挥手断开连接FIN+ACK ACK FIN+ACK ACK

  • 第一挥手:客户端 ----> 服务端
    • 标志位:FIN=1, seq=u

    • 含义:客户端说:“我这边没数据要发了,申请关闭连接。”(进入 FIN_WAIT_1 状态)

  • 第二挥手:服务端 ----> 客户端
    • 标志位:ACK=1, seq=v, ack=u+1

    • 含义:服务端回:“收到你的申请了,但我可能还有点尾巴数据要传,你等我下。”(客户端进入 FIN_WAIT_2,服务端进入 CLOSE_WAIT)

  • 第三挥手:服务端 ----> 客户端
    • 标志位:FIN=1, ACK=1, seq=w, ack=u+1

    • 含义:服务端发完最后的数据后说:“好了,我也发完了,你可以彻底断开了。”(服务端进入 LAST_ACK)

  • 第四挥手:客户端 ----> 服务端
    • 标志位:ACK=1, seq=u+1, ack=w+1

    • 含义:客户端回:“收到,拜拜!”(客户端进入 TIME_WAIT,等待 2MSL 后彻底关闭;服务端收到后直接 CLOSED)

udp(无连接不可靠)

网络层:ip ARP RARP ICMP IGMP(组播)

三、修改网卡配置

文件 /etc/sysconfig/network-script/ifcfg-网卡名

命令行 nmcli connection

四、查看
查看ip ip a /ifconfig
查看网关 route -n /ip route
查看DNS服务器地址 cat /etc/resolv.conf
六、添加临时路由
route add -net 目的网段 gw 下一跳地址
  • 永久路由

方案一:/etc/rc.d/rc.local

写法; route add -net 目的网段 gw 下一跳地址

在 Linux 系统(尤其是 CentOS/RHEL 系列)中,/etc/rc.d/rc.local 是一个传统的开机自启动脚本文件。相当于每次开机执行一遍添加路由,以做到永久路由

方案二:/etc/sysconfig/network-scripts/route-出网卡名称(更规范)

 写法:目标网络/掩码 via 网关 dev 网卡

七、tcpdump抓包工具

tcpdump -i 网卡名称 -nn 条件

tcpdump -i ens33 -nn port 80 add host 192.168.1.1

八、 网络
  • 网络类型:局域网,广域网

  • 网络的组成 终端(主机,打印机,电话)、交换机、路由器

  • 传输介质 :网线,双绞线 光纤,单模光纤多模光纤 无线电波

IP地址表示方式 点分十进制

  • IP地址类型

A类0-127

B类128-191

C类191-223 单播地址

D类224-239 组播地址

E类 240-255

  • 私网IP

A10.0.0.0   --  10.255.255.255

B172.16.0.0  ---  172.31.255.255

C192.168.0.0  ---  192.168.255.255

  • 子网掩码

A类255.0.0.0/8

B类255.255.0.0/16

C类255.255.255.0/24

识别一个IP地址是否为有效IP?
  • IP地址 ==== 网络位、主机位

  • 子网掩码中的1对应的部分,称为网络位

  • 子网掩码中的0对应的部分,称为主机位

从二进制角度讲,主机位不全为0、或者不全为1,称为有效IP

  • 全为0, 称为网段、网络, 代表一串连续的IP地址

  • 全为1, 称为广播地址

网关gateway: 网络出口
ping测试通信

-c 【数量】 指定icmp包的次数 -s 【字节数】 数据包大小

-i 【秒数】指定两个数据包发送间隔 默认1秒 -W 【秒数】 设置超时时间

-l 【网卡/IP】 指定发送数据包的网卡

Linux基础

一、linux系统启动过程

  1. BIOS加点自检

  2. 读取MBR中的引导程序

  3. 加载grub

  4. 加载内核

  5. 系统初始化

  6. 运行login登录程序,等待用户登录

dmesg 命令速查

  • 全称:Display Message / Diagnostic Message

  • 功能:显示 Linux 内核环形缓冲区日志(硬件、驱动、OOM、启动、死机信息)

  • 不记录:应用日志(Java/Nginx)、用户命令

参数作用
无参数显示原始日志,时间为 系统启动秒数(如 [123.456])
-T时间转为 人类可读格式(如 Mon Jul 27 17:41:05 2026)
-c显示后清空缓冲区
-H分页带颜色显示

⚠️ 关键警告:服务器重启后,dmesg 缓冲区清空,之前的日志全部丢失。排查死机重启问题,重启后第一时间保存日志。

  • 系统还能敲命令 → 重启前立即执行 dmesg -T > /tmp/oom_$(date +%Y%m%d).log 保存。

  • 系统已卡死无法操作 → 重启后执行 journalctl -k -b -1 查看上一次启动的日志,当前 dmesg 已被清空,查不到死机原因。

二、查看

Linux的几种运行模式

0 关机模式 1 单用户模式 2字符模式无网络(无图形) 3.完整字符模式(标准)

4 预留 5 图形界面模式 6 重启模式

查看系统内核版本 uname -r

                              uname -a 更详细

查看系统发行版本 cat /etc/os-release

查看cpu详细信息 /proc/cpuinfo

查看内存详细信息 /proc/meminfo

stat 查元数据信息

文件类型识别工具 file

wc 统计文件字符数 显示 行数 单词数 字符数

wc -l 行数

了解命令详细信息 man

查看主机名配置文件 cat /etc/hostname

切换用户 su - 用户

查看用户登录信息who

修改字符集 /etc/profile export LANG=zh_CN.UTF-8  中文  

export LANG=en_US.UTF-8  英文

三、文件目录操作

  • 查看当前目录 pwd

  • 查看目录下文件ls [选项] [目录名称]

选项: -a 所有文件(包括隐藏文件,以.开头的文件) -l查文件详细信息 -h人类可读(B,M,G) -d显示目录详细信息 S 按文件大小排序显示  t 按时间排序显示

-  :普通文件

d : 目录

c : 字符设备文件、键盘,鼠标,显示器,打印机

b : 块设备文件,硬盘,分区,U盘,光盘

l : 软连接/符号链接,类似于快捷方式

  • 查看文件,目录占用的硬盘空间
du -h 文件: 统计文件大小

du -sh 目录: 统计目录大小

du -ah 目录: 统计目录下所有文件大小

touch 文件名称 :创建空白文件

mkdir 【选项】 目录名称 :创建目录 -p 递归创建目录 -v显示创建过程

大括号展开,命令引用
  • 大括号展开 touch /opt/db/{1..10}.sql

  • 命令引用 $(命令) : touch /opt/web$(date +%F%T)

    date +%Y  年       2024
    date +%m  月        09
    date +%d  日        27
    date +%H  时        14
    date +%M  分        22
    date +%S   秒       37
    date +%H_%M_%S    14_23_21
    date +%F         2024-09-27
    date +%T          14:23:55
    date +%F_%T      2024-09-27_14:24:11
    ​

删除文件 rm -r目录 -f 强制删除

cat 文件名 查看文件内容

分页显示内容

  • more :只能向下滚动

  • less :支持上下滚动

head/tail 默认显示十行

管道符 | :将前一个命令的执行结果,交给后一条命令处理
cp -r复制目录 -a递归复制保留权限

mv 移动文件或者目录

四、压缩解压缩

压缩文件

  • gzip 文件名 :压缩 ---> xxx.gz

  • bzip 文件名 :------> xxx.bz2

  • xz 文件名 :------> xxx.xz

  • 文件名  -d: 解压缩

创建压缩包tar

tar cf 归档文件.tar 源文件

c 创建 f 指定归档文件名称

调用gzip 压缩: tar czf 文件名.tar.gz 源文件

调用bzip2压缩: tar cjf 文件名.tar.bz2 源文件

调用xz 压缩: tar cJf 文件名.tar.xz 源文件

解压缩 : tar xf 压缩包名 【-C 目录名称】

-C 指定解压目录,x解压

五、vim编辑器

三种模式:命令模式,插入模式,末行模式

末行模式操作:

  • :set nu 显示行号

  • :%s/原字符/替换字符/g

命令模式操作:

  • $跳到行尾 ^行首

  • gg第一行

  • 27gg 跳到27行

  • G最后一行

  • yy p复制沾沾

  • dd p剪切沾沾

  • dd删除一行

  • /内容 查找 n向下找 N向上找

  • u撤销

1.别名

查看别名alias

定义别名 alias 别名=’真实命令‘

永久定义别名所有用户生效 /etc/bashrc --> source /etc/bashrc

单个用户定义别名 用户家目录/.bashrc

删除别名 unalias 别名

2.定制vim vim /etc/vimrc

set nu

set tabstop=4

六、文件查找过滤

1.查找文件 find 目录 查找条件
  • 按文件名称 -name -iname:忽略大小写

  • 按文件大小查 -size +20M大于20M -20M 小于20M

  • 按文件类型找 -type 类型

    f文件 d 目录 b块设备文件 c字符设备文件

  • 修改时间 -mtime

  • 创建时间 -ctime  

  • -maxdepth 数字:设置查找的最大深度。

  • 多条件查找 -a

    find /var/log/ -name "*.log" -a -ctime -7

  • 执行操作 -exec 命令\;

find /opt/ -name "*.sql" -exec rm -rf {} \;

find /boot/ -size +20M -exec ls -lh {} \;

2.文本排序,去重

去重uniq 文件

排序 sort [选项] 文件

  • -n 按自然数大小排序

  • -r 倒叙 默认升序

  • -k2 按每行第2列排序

  • -t 指定分隔符,默认空白

  • -h 按照计算机K M G 单位排序

3.grep文件过滤

grep [选项] 条件 文件名称 文件名称

条件

  • [0-9] [a-z] [A-Z] [a-zA-Z] [0-9a-zA-Z] [rmt] 任意单个

    grep "[0-9]" /etc/fstab

  • ^xxx 以xxx开头

  • xxx$ 以xxx结尾

  • ^$ 空行

  • [[:space:]]  正则空格

选项

  • -i    忽略大小写

  • -v   反向过滤,取反

  • -e   多条件过滤

  • -n   显示行号

  • -c 统计行数

  • -E   支持扩展正则表达式

七、用户操作

  • /etc/password 用户信息

用户名称:x:uid:gid:说明信息:家目录:shell

  • /etc/shadow 用户密码信息

  • /etc/group 用户组信息

1.创建用户 useradd [选项] 用户名称
  • -s 指定shell 默认/bin/bash /sbin/nologin不允许与系统交互

  • -M不创建家目录 系统用户

  • -r 创建系统用户

  • -G 指定用户附加组

  • -u  数字 : 指定用户uid

查看用户登录信息 who

查看用户id:id 用户名称

修改用户密码 : passwd 用户名称

锁定用户 : passwd -i 用户名称

解锁用户 : passwd -u 用户名称

2.修改用户信息usermod
  • -s 修改shell

  • -G 修改附加组 -aG加入多个组

3. 删除用户 userdel -r 用户名称 -r同时删除用户相关文件

4.用户组操作

  • 创建用户组 groupadd 组名

  • 删除用户组 groupdel 组名

  • 将用户加入组 gpasswd -a 用户名 组名

  • 将用户踢出组 gpasswd -d 用户名 组名

八、硬盘操作

  • 硬盘类型: 机械硬盘 转速 RPM 5400/7200/10000/120000RPM SSD固态硬盘

  • 数据块 block,默认每个块4K 数据存储时会被转换成数据块、随机存储

建立完分区需要partprobe让硬盘识别分区

查看块设备 lsblk

1.硬盘分区

方便分类存储数据

系统盘:至少得有1个主分区 数据盘:无所谓

主分区 最多创建4个

扩展分区 方便创建逻辑分区,最多只能有1个; 主分区 + 扩展分区 <= 4

逻辑分区 无数量限制

2.常见文件系统

windows NTFS ,fat32(淘汰)

linux xfs ext4

3.MBR格式硬盘操作
分区工具 fdisk

n:新建分区 d:删除 p:显示 w:保存 q:退出

创建文件系统/格式化

mkfs -t 文件系统 设备名称

硬盘挂载mount

临时挂载mount 设备名称 挂载点

卸载 umount 挂载点

永久挂载 开机自动挂载 /etc/fstab

设备名称 挂载点 文件系统 挂载信息 0 0

4.GPT格式分区

1、分区表类型
  • MBR 容量不能超过2T 分区表容量是固定64字节, 所以, 主+扩展<=4 分区工具: fdisk

  • GPT 支持容量大于2T的硬盘 分区工具: parted

分区工具 parted
// 指定分区表格式为gpt
[root@martin-host ~]# parted /dev/sdd mklabel gpt
// 创建分区,   parted 硬盘 mkpart 分区名称  起始大小 终止大小
[root@martin-host ~]# parted /dev/sdd mkpart p1 1 500G                    
[root@martin-host ~]# partprobe /dev/sdd   
5.inode/i节点
df -i 查看inode节点
[root@martin-host ~]# df -i /db/oracle/ 
文件系统       Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdc5      51200      10   51190       1% /db/oracle
查元数据信息 stat /etc/fstab
6.链接文件

软连接 相当于快捷方式

硬链接 在源文件inode上加了个标识

软硬链接区别:

软连接可以链接目录,文件,硬链接只可链接文件

源文件删除软连接失效硬链接没事

软连接支持跨分区,硬链接不行

7.dd命令

测试硬盘读写

dd if =/dev/zero of=文件 bs=4M count=100

九、LVM逻辑卷

pv 物理卷操作

pvscan 查看物理卷

pvcreate 物理设备

vg 卷组操作

vgscan

vgdisplay 详细信息

vgcreate 卷组名 物理卷

vgextend 卷组名 物理卷

lv逻辑卷操作

lvscan

lvcreate -L 5G -n 逻辑卷名 卷 组名

lvextend -L 20G 逻辑卷名 卷 组名 :扩展到20G

扩展20G是 +20G

lvremove 删除逻辑卷

逻辑卷扩容,先扩卷组,在逻辑卷,文件系统
扩展文件系统
  • xfs :xfs_growfs 逻辑卷名称

  • ext4 : resize2fs /dev/cloud/docker(逻辑卷名称)

逻辑卷缩容,XFS不支持
1.数据备份
2.卸载逻辑卷,不支持在线
3.检查文件系统是否损坏 e2fsck -f 逻辑卷
4.先缩减文件系统大小 resize2fs /dev/cloud/docker 5G 缩减到5G
5.在缩减逻辑卷大小lvredius
6.重新挂载验证数据

十、RAID

冗余磁盘阵列

加快数据读写速度,提高数据可靠性

RAID0

至少两块盘,没有数据冗余不可靠,读写速度块,利用率100%

RAID1

至少两块盘,读写速度适中,利用率50%,适合作系统盘,数据可靠,降低写数据

RAID5

至少三块盘,读写快,数据可靠,磁盘利用率少一块盘,n-1/n,最多同时坏一块盘,奇偶校验卷

READ6 和READ5一样,但是最多同时坏两块盘

RAID10

至少4快盘,先READ1 在READ0 数据可靠,读写速度快,磁盘利用率50%,适合作数据盘

十一、主机网卡配置

  • 查看网关 route -n

  • 查dns cat /etc/resolv.conf

  • 网卡配置文件 /etc/sysconfig/network-script/ifcfg-ens33

nmcli工具
  • 查看网卡配置:nmcli connection show

  • 删除网卡配置:nmcli connection delete ens33

  • 配置网卡:nmcli connection add type ethernet ifname ens33 con-name ens33

  • nmcli connection modify ens33 ipv4.address "x.x.x.x/24"

  • nmcli connection modify ens33 ipv4.gateway "x.x.x.x"

  • nmcli connection modify ens33 ipv4.dns "x.x.x.x"

  • nmcli connection modify ens33 ipv.method manual

  • nmcli connection modify ens33 autoconect on

  • nmcli connection reload

  • nmcli connection up ens33

路由设置
  • 配置静态路由 :route add -net 目的网段 gw 下一跳地址

  • 查看路由表: route -n

  • 添加永久路由: /etc/rc.d/rc.local

  • 开启路由转发功能:sysctl -a

    vim /etc/sysctl.conf

    net.ipv4.ip_forward =1

    sysctl -p

网卡绑定

解决问题

  • 单块网卡单点故障

  • 单块网卡带宽有限,提升带宽

绑定方式:

  • bond centos6.x之前,最多支持绑定2块网卡

  • team centos7.x后最多支持绑定8块网卡

team绑定的模式

  • activebackup默认,主备,同一时间只有一块网卡正常接收流量,另外网卡作为备用
  • roundrobin/loadbalance 负载均衡模式,所有网卡共同处理访问流量
配置activebackup模式的网卡绑定
  1. 删除物理网卡所有配置

  2. 创建网卡绑定,虚拟网卡team1,指定工作模式为activebackup

    nmcli connection add type team ifname team1 con-name tesm1 config '{"runner":{"name":"activebackup"}}'
  3. 添加物理网卡

nmcli connection add type team-slave ifname ens36 con-name team1-ens36 master team1
nmcli connection add type team-slave ifname ens37 con-name team1-ens37 master team1

4.配置ip

[root@localhost ~]# nmcli connection modify team1 ipv4.addresses "192.168.140.200/24"
[root@localhost ~]# nmcli connection modify team1 ipv4.gateway "192.168.140.2"
[root@localhost ~]# nmcli connection modify team1 ipv4.dns "223.5.5.5"
[root@localhost ~]# nmcli connection modify team1 +ipv4.dns "114.114.114.114"
[root@localhost ~]# 
[root@localhost ~]# nmcli connection modify team1 ipv4.method manual 
[root@localhost ~]# nmcli connection modify team1 autoconnect on
[root@localhost ~]# 
[root@localhost ~]# nmcli connection reload 
[root@localhost ~]# nmcli connection up team1

产看绑定后的网卡信息:ifconfig team1

5.查看网卡绑定状态 teamdctl team1 state

十二、软件安装

Linux安装包格式 centos : rpm包 Debian/Ubuntu: deb包 源码安装包 xxx.tar.gz

rpm工具

  • rpm -ivh 软件安装包

  • rpm -q dhcp 查看软件是否安装

  • rpm -qa 查看所有安装的软件

  • 查询文件由那个软件生成

    which ifconfig

    rpm -qf /usr/sbin/ifconfig

  • 查询软件生成的文件 rpm -ql 软件名

  • 卸载软件 rpm -e 软件名

yum工具

自动解决安装依赖
  • yum install 软件 ;下载

  • yum remove 软件 ;卸载

  • yum update 软件 : 更新

  • yum search 软件

    yum provides 软件 搜索

  • 编写yum源

cat  /ect/yum.repos.d/mysql80.repo
​
[mysql80]
name=mysql80
baseurl=ftp://10.11.0.254/software/mysql8.0.42/
enabled=1
gpgcheck=0
  • 查看yum源 : yun repolist

  • 清理yum 缓存: yun clean all

  • 查看所有软件 yum list all

yum缓存

开启yum缓存

vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
获取缓存安装包(下载软件)
[root@localhost ~]# yum install openstack-glance 
[root@localhost ~]# mkdir /glance

[root@localhost ~]# find /var/cache/yum/ -name "*.rpm" -exec cp {} /glance/ \;
编写本地源 createrepo /本地目录/
[root@localhost ~]# cat /etc/yum.repos.d/glance.repo 
[glance]
name=glance
baseurl=file:///glance
enabled=1
gpgcheck=0

源码软件的安装

下载安装包 xxx.tar.gz xxx.tar.bz2
解压缩
切换软件解压目录 cd 软件解压目录/
配置软件安装路径,功能参数./configure --prefix=/usr/local/htop
编译,将代码转换成计算机可执行文件make
安装,生成软件相关文件make install

十三、进程操作

1.进程查看 ps -elf

查进程树 pstree

查看内存 free -m / free -h

2.控制进程前后台运行

将命令放入后台 nohup 命令 &

查看后台任务 jobs -l

将命令调入前台 fg 1

将正在运行的任务放入后台暂停执行ctrl + z

将后台暂停任务继续执行 bg 1

3.向进程发送信号
kill [信号] PID

默认是结束信号

查看信号 kill -l 15正常结束 9强制杀死 18恢复进程 19挂起进程

计划任务

  • 一次性任务

前提:依赖于atd服务正常运行 rpm -q at systemctl status atd

创建一次性任务 : at 10:32

[root@localhost ~]# at 10:32
at> rm -rf /tmp/*
at> <EOT>
job 1 at Sat Oct 19 10:32:00 2024

// 查看一次性任务
[root@localhost ~]# at -l 
1	Sat Oct 19 10:32:00 2024 a root
  • 周期性任务

创建周期性任务 crontab -e

分 时 日 月 周      任务

/每隔多少时间 */30 每隔半小时 10-12 连续时间 30 8,1012 * * * 每天早上8点半,10点半 12点半

查看周期性任务:crontab -l

注意:写命令的全路径,%默认识别为命令的结束符,需要转义加\

性能查看工具
top

动态显示进程 M :按内存占比,倒叙显示进程

P:按CPU占比,倒叙显示进程

查看系统负载CPU负载

top - 15:12:59 up  6:09,  1 user,  load average: 0.02, 0.02, 0.13

最近1、5、15分钟的平均负载
负载值 <= CPU数量 * 2, 正常

查系统负载uptime

查cpu数量nproc lscpu

查看内存 free -h vmstat 1 3

查看cpu mpstat 1 5

查硬盘io iostat

查网卡流量 sar -n DEV 1 3
查网卡带宽 ethtool ens33

十四、SSH协议介绍

常用操作
  • 远程连接 ssh 用户名@主机

  • 执行远程命令 ssh root@192.168.140.10 ifconfig ens33

  • 远程拷贝文件 scp file01 root@192.168.140.10:/tmp

加密
对称加密
  • 加密 openssl enc -e -des -in  /opt/file01(要加密的文件) -out /opt/file01_new(加密后文件)

  • 解密数据 openssl enc -d -des -in /opt/file01_new -out /opt/file01

非对称加密(公钥加密私钥解密)

生成密钥对 :ssh-keygen -t rsa

将公钥拷贝到远端的服务器 : ssh-copy-id root@192.168.140.10

---可以实现主机间的免密登录

如果想要多个主机间相互实现免密登录,需要在其中一个主机生成密钥对,再把这个密钥对里面的公钥改名成authorized_keys,分别拷贝到需要免密登录的主机用户的家目录就可以。

ssh-copy-id做了什么?
  • 将公钥文件拷贝到远端服务器对应用户的家目录,改名为authorized_keys

  • 将密钥文件的权限修改为600

ssh服务配置
  • 配置文件 /etc/ssh/sshd_config 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐