Linux系统管理
2026/7/26 5:24:31 网站建设 项目流程

SSH服务

概念

SSH(Secure Shell)安全外壳协议,替代不安全的 Telnet、rlogin,基于加密传输,用于远程登录服务器、远程文件传输。

默认端口:22,采用非对称加密,账号密码、传输数据全程加密,防抓包窃听。

两大核心组件

服务端 sshd:安装在被连接的服务器,监听 22 端口,接收客户端连接

客户端 ssh:本地电脑工具,主动发起远程连接

SSH连接远程终端
systemctl status shhd.service #检测SSH服务状态 systemctl start shhd.service

netstat -antlp|grep :22 #确认22端口状态开启

vim /etc/hosts #在双方电脑端编写入对方的IP以及主机名称以便可以连接

此时用ping命令测试

此时SSH登录需要输入密码。

免密访问

ssh-keygen #生成秘钥对 ssh-copy-id 主机名 #拷贝公钥到远程主机 ssh 登陆用户@远程主机名 #此时登录不需要密码
SSH常用参数
-p指定 SSH 端口

默认 22,修改端口后必须加

ssh -p 2222 root@192.168.1.10
-l指定登录用户

等价于user@ip

ssh -l root 192.168.1.10
-i指定私钥文件

多密钥场景手动指定私钥

ssh -i ~/.ssh/id_rsa_bak root@192.168.1.10
-o 指定连接参数
# 跳过主机密钥确认(测试临时用) ssh -o StrictHostKeyChecking=no root@192.168.1.10 ​ # 不保存主机信息到known_hosts ssh -o UserKnownHostsFile=/dev/null root@192.168.1.10 ​ # 关闭密码提示,只走密钥,失败直接退出 ssh -o PasswordAuthentication=no root@192.168.1.10 ​ # 超时时间,5秒连不上断开 ssh -o ConnectTimeout=5 root@192.168.1.10
SSH配置文件
/etc/sysconfig/sshd.config
配置参数
Port 2222 #设定端口2222 PermitRootLogin yes|no 是否禁止超级用户登陆 PasswordAuthentication yes|no 是否开启原始密码认证方式 AllowUsers lee 用户白名单 DenyUsers lee 用户黑名单

远程文件同步

scp
概念

scp = secure copy,安全复制命令。

底层基于 SSH 协议,复用 SSH 的加密通道完成文件传输,数据全程加密,解决传统 rcp 明文传输、容易被抓包窃取的安全问题。

依赖服务:远程主机必须正常运行sshd(SSH 服务)。

作用

本地主机 ↔ 远程 Linux 服务器两台远程服务器之间安全复制文件 / 文件夹。必须是绝对路径。

特点
  1. 传输加密:账号、文件内容加密传输,安全性远高于 ftp、rcp;

  2. 复用 SSH 认证:支持密码登录、密钥私钥登录;

  3. 端口跟随 SSH:SSH 改端口后,scp 需用大写-P指定端口;

  4. 支持递归传输目录(-r参数);

  5. 不支持断点续传、增量同步,大文件同步不如 rsync。

参数

-p:保留原文件的修改时间,访问时间和访问权限

-r: 递归复制整个目录。

示例

复制本机的file文件,以fox用户的身份传送到192.168.234.129的DIR目录中

# scp file wxh@192.168.234.129:DIR

注:此处DIR必须为绝对路径

以fox身份复制远程主机192.168.234.129的PATH到本机的DIR目录中

# scp fox@192.168.234.129:PATH DIR

注:PATH必须是绝对路径

rsync
概念

rsync = remote sync,远程同步工具,底层同样基于 SSH 传输,是 scp 的升级版。

核心特点:增量同步—— 只传输文件发生变化的部分,相同内容不重复传输,支持断点、保留权限、删除多余文件、限速、压缩。

适用:大量文件、大文件、定时备份、服务器同步。

依赖:两端无需同时装 rsync 服务,默认走 ssh 通道。

和 scp 核心区别
  1. scp:全量覆盖,每次完整传文件,无增量,不支持断点;

  2. rsync:对比文件校验值,只传差异块,速度更快。

参数
rsync -r #同步目录 ​ -p #同步权限 ​ -o #同步文件所有人 ​ -g #同步文件所有组 -l #同步链接 -D #同步设备文件 ​ -t #同步文件时间戳

系统日志

systemd-journald服务

systemd-journaldsystemd 配套的日志管理服务,CentOS7、Ubuntu16.04 及以上系统默认启用。

作用:统一收集内核、系统服务、用户程序输出的日志,以二进制格式存储,配套查询工具journalctl

默认存放路径:/run/log

journalctl命令
journalctl //日志分析命令 ​ journalctl -n 5 //查看最近生成的5条日志 ​ journalctl -p err //查看系统报错 ​ journalctl --since --until //查看某个时间段生成的日志 ​ journalctl -o verbose //查看日志能够使用的条件参数
日志持久化

systemd日志保存在/run/log/journal中,这意味着系统重启时会被清除,那如果将日志保存在/var/log/journal目录,启动后就可以利用历史数据,形成永久日志

mkdir /var/log/journal chown root.systemd-journal /var/log/journal/ chmod 2755 /var/log/journal/ systemctl restart systemd-journald
rsyslog服务
定义

rsyslog是 Linux 系统中增强版 syslog 日志服务程序,全称 rocket-fast system for log processing,是标准 syslog 的高性能实现。

作用:统一接收系统、内核、各类应用产生的日志,做格式化处理,落地保存为文本日志;同时支持日志转发、过滤、存储、数据库写入,是传统/var/log目录日志的生成来源。

和 systemd-journald 的关系
  1. systemd-journald:systemd 自带日志收集器,第一手接收内核、服务、程序所有日志,二进制缓存;

  2. rsyslog:日志处理转发服务,默认监听 journald 输出,把二进制日志转成可读文本,存入/var/log/westos.lo

    二者共存,分工不同:journald 负责采集,rsyslog 负责持久化、分发、归档。

核心功能
  1. 本地日志存储

    将日志分类写入 /var/log/westos.log 下文本文件:messages、secure、cron、maillog 等,可直接 cat/tail 查看。

  2. 日志过滤与分类

    根据设施(facility)+ 级别(severity) 匹配规则,区分系统日志、登录安全日志、定时任务日志分开存放。

  3. 远程日志转发

    支持将本机日志发送到远端日志服务器(内网统一日志平台),支持 TCP/UDP 传输。

  4. 多输出目标

    日志可存文件、输出到数据库(MySQL/PostgreSQL)、管道程序、远程主机。

  5. 高性能高并发

    相比老旧 syslog,支持多线程、队列缓存,大量日志不丢失

日志类型与级别
日志类型 Facility(来源分类)

用来区分这条日志是哪个模块 / 程序产生,rsyslog 配置依靠它分流日志。

类型含义典型产生日志
kern内核日志硬件报错、驱动、内核崩溃、dmesg 内容
user用户层普通程序普通用户执行程序输出
mail邮件服务sendmail、postfix 收发邮件日志
daemon系统后台守护进程各类服务通用(nginx、vsftpd 等无专属分类时用)
auth / authpriv认证安全日志ssh 登录、sudo、密码验证、登录失败authpriv 更私密,存/var/log/secure
syslogsyslog 服务自身rsyslog、journald 自身报错
lpr打印服务日志打印机相关
news新闻组服务极少使用
uucp老式 UNIX 通信服务基本淘汰
cron定时任务crontab 任务执行、报错,存/var/log/cron
local0~local7自定义本地日志业务程序自定义使用,例:nginx=local7、tomcat=local0
日志级别 Severity(严重程度,数字越小越严重)

共 8 级,0 最严重,7 仅调试信息。

级别数字名称说明使用场景
0emerg系统崩溃紧急主机宕机、内核 panic,所有人需要立刻处理
1alert必须马上修复磁盘满、数据库挂掉、关键服务异常
2crit严重错误硬件故障、程序核心功能崩溃
3err普通错误程序运行报错、连接失败、文件找不到
4warn警告不影响运行,但存在隐患(内存不足、连接超时)
5notice正常重要事件服务启停、用户登录、定时任务执行
6info普通运行信息正常访问、服务启动成功、日常流程记录
7debug调试详细日志开发排错,生产环境一般关闭,日志量极大
远程日志同步
日志发送方
vim /etc/rsyslog.conf #修改文件内容如下 *.* @@日志接收方ip
日志接收端
vim /etc/rsyslog.conf #修改文件内容如下: $ModLoad imudp //加载日志接收功能模块 $UDPServerRun 514 //加载日志接收接口

修改后重启日志接收端并查看端口。

systemctl restart rsyslog.service netstat -antulp|grep :514

测试

发送端发送日志

接收端动态接收

tail -f /var/log/messages
问题

无法接受对方日志

解决:检查了防火墙的开关后重启服务,发现可以接收

系统延时任务

at命令
概念

at用于设置一次性延时任务,任务只会执行一次,区别于 cron 循环定时。

原理:atd 服务后台运行,扫描任务队列,到达指定时间自动执行。

依赖服务

服务名:atd

# 查看状态 systemctl status atd # 开机自启、启动 systemctl start atd systemctl enable atd

服务没启动,at 任务不会运行。

时间格式
绝对时间
# 今天14:30执行 at 14:30 # 2026-07-25 10:00 at 10:00 2026-07-25 # 下午4点 at 16pm
相对延时(最常用)
# 5分钟后执行 at now +5 minutes # 2小时后 at now +2 hours # 3天后 at now +3 days # 半小时后 at now +30 min

管理定期任务

crontab
基础概念
  1. 服务crond后台守护进程,每分钟扫描定时任务表,到达时间自动执行脚本 / 命令;

  2. 作用:循环重复执行任务(分钟 / 小时 / 日 / 周 / 月),和at一次性任务区分;

  3. 任务文件分类

    用户级:crontab -e编辑,存在/var/spool/cron/用户名

    系统级:/etc/crontab/etc/cron.d/cron.hourly/daily/weekly/monthly

服务管理5
systemctl status crond systemctl start crond systemctl enable crond systemctl restart crond
定时语法

格式:

* * * * * command #分 时 日 月 周 执行命令
字段取值范围
分 minute0–59
时 hour0–23
日 day1–31
月 month1–12
周 week0–7(0 和 7 都代表周日)
特殊符号
  1. *所有取值;

  2. ,多个不连续时间:1,3,5

  3. -连续区间:8-12

  4. /间隔:*/10每 10 单位执行一次。

cron权限设定

在系统中默认所有用户可以设定 cron

#用户黑名单 ​ /etc/cron.deny ​ #用户白名单 ​ /etc/cron.allow

NFS服务

概念

NFS(Network File System)网络文件系统,实现 Linux 服务器之间目录共享,客户端可像访问本地磁盘一样读写远端共享目录。

底层依赖 RPC 远程过程调用协议,CentOS7+ 使用nfs-utils服务套件。

核心角色
  1. NFS 服务端:存放共享目录,对外发布共享

  2. NFS 客户端:挂载服务端共享目录到本地使用

服务部署

服务端客户端都安装NFS并启动服务,关闭防火墙

yum install -y nfs-utils systemctl start nfs systemctl stop firewalld

服务端配置

# vim /etc/exports /nfs *(sync,ro) #对所有人以只读的方式共享目录 # exportfs -rv #重载nfs服务配置 ​

客户端配置

查看NFS服务器的共享资源:

showmount -e 192.168.234.129

挂载目录

#将server0中路径为/mnt/nfsdata的目录挂载到server2的/nfs目录 mount server0:/mnt/nfsdata /nfs/

发现server2无法进行写入文件,检查exports文件并修改只读权限后发现仍无法写入,此时发现server0中该目录权限存在问题

在server0中给予权限

server2中发现可以写入

问题

server2中无法查询到server0的共享目录

解决:关闭防火墙后重新加载

autofs服务

概念
  1. 作用:按需自动挂载 NFS、本地光盘、samba 等共享;闲置超时自动卸载。

  2. 本质:监控指定挂载父目录,触发 IO 访问时执行挂载操作。

  3. 依赖:搭配 NFS、rpcbind 使用,常用于 NFS 自动挂载。

配置

客户端配置:

# yum install autofs -y #安装autofs软件包 ​ # systemctl start autofs #启动autofs服务 ​ # vim /etc/auto.master ​ /autofs /etc/auto.nfs #指定自动挂载点的父目录:/autofs ​ # vim /etc/auto.nfs ​ demo -ro 192.168.234.129:/nfs ​ 最终挂载点 只读挂载 需要挂载的共享目录 ​ \# systemctl restart autofs #重启autofs服务 ​ ​

iscsi服务

基础概念

iSCSI(Internet Small Computer System Interface)

基于 TCP/IP 网络传输 SCSI 指令,把远端服务器磁盘 / 分区,映射成本地块设备

简单理解:通过网线共享硬盘,客户端识别为/dev/sdb这种裸磁盘,可分区、格式化、挂载。

角色区分
  1. 服务端(target):提供磁盘存储,共享块设备,软件包targetcli

  2. 客户端(initiator):连接远端磁盘,本地识别硬盘,软件包iscsi-initiator-utils

端口:默认 3260

和 NFS 核心区别
  • NFS:文件共享,传输文件层级,只能直接挂载使用;

  • iSCSI:块设备共享,共享整块硬盘,客户端需要分区格式化,性能更适合数据库、存储集群。

服务配置

安装服务端软件

# yum install -y targetcli

启动服务:

# systemctl start target # systemctl enable target

•配置数据输出

# targetcli ​ /> ls ​ /> /backstores/block create demo /dev/vdb1 ​ /> /iscsi create iqn.2019-10.com.example:storage1 ​ /> /iscsi/iqn.2019-10.com.example:storage1/tpg1/luns create /backstores/block/demo ​ /> /iscsi/iqn.2019-10.com.example:storage1/tpg1/acls create iqn.2019-10.com.example:demokey ​ /> /iscsi/iqn.2019-10.com.example:storage1/tpg1/portals create 172.25.0.1 ​ /> exit

安装客户端软件

#yum install -y iscsi-initiator-utils.x86_64

修改名称与服务端相同

# vim /etc/iscsi/initiatorname.iscsi ​ InitiatorName=iqn.2019-10.com.example:demokey

启动服务

#systemctl start iscsid

发现设备并登录

#iscsiadm -m discovery -t st -p 192.168.234.129 ​ #iscsiadm -m node -l

配置开机自动挂载时需要添加网络设备参数

# vim /etc/fstab ​ UUID=设备uuid /demo xfs _netdev 0 0

删除iscsi设备

#umount /demo ​ #删除 /etc/fstab文件中的自动挂载 ​ iscsiadm -m node -u ​ iscsiadm -m node -o delete

系统引导

系统引导流程

•开机

•UEFI/BIOS 唤醒机器

•选择第一启动设备

•GRUB2 执行

•内核加载,初始ramdisk加载

•内核运行

•/usr/lib/systemd/systemd 启动

▫/sbin/init -> /lib/systemd/systemd -> /usr/lib/systemd/system

systemd 管理所有进程

在/boot/grub2/grub.cfg中可以看到使用的系统

引导文件grub.cfg被破坏后补救

当开启虚拟机时出现以下界面表示虚拟机引导文件被破坏

此时可以手动引导进行补救:

通过引导破坏前的完好的克隆机可知其引导文件所在分区为 /dev/sda1,查看破坏前的完整grub.cfg文件进行手动引导

输入

set root='hd0,msdos1' linux16 /vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root initrd16 /initramfs-3.10.0-1160.el7.x86_64.img #完成后重启 boot

重启后恢复正常

此时文件在/mnt/目录里,手动将其恢复到/boot/grub2/目录中

引导文件所在根目录被破坏补救

在虚拟机开机页面点击以下按钮

在加载页面快速按下Fn+F2按键进入

调整/boot/下的优先级,将CD-ROM Drive调整至最优先,保存退出

出现以下界面,选择Troubleshooting

选择Rescue a CentOS system

继续“countine”

输入

chroot /mnt/sysimage yum repolist

此时查看网卡发现网卡关闭

输入

nmcli c reload nmcli c up ens33#启用网卡

此时发现无法ping通外网

vim /etc/sysconfig/network-scripts/ifcfg-ens33

vim /etc/resolv.conf

此时发现联通

yum makecache #重建缓存 yum install -y kernel#重装kernel yum install -y grub2-pc#重装grub2

此时grub2是空的,需要重新引导

grub2 install /dev/sda #修复grub2引导扇区的代码以及/boot/下的一些引导文件

此时缺少grub.cfg文件,输入

grub2-mkconfig -o /boot/grub2/grub.cfg

此时回到以下界面并将Hard Drive调整至优先

系统正常引导

问题

此时登陆系统发现ens33网卡无法正常启动

vim /etc/sysconfig/network-scripts/ifcfg-ens33

将刚才的修改设置为初始

输入

systemctl restart NetworkManager#彻底重启网络管理服务 nmcli c up ens33 #启动网卡

systemd - System Manager

基础定位

systemd 是 Linux 现代系统的 PID=1 一号进程,取代传统/sbin/init(SysVinit)

内核挂载真实根文件系统后,执行的第一个用户态程序:/usr/lib/systemd/systemd

核心目标:

并行启动服务、统一管理服务 / 挂载 / 网络 / 日志 / 挂载点、实现依赖管理、自动重启守护进程。

发行版:CentOS7+、RHEL7+、Ubuntu16.04+、Debian9+、OpenSUSE 主流全部使用 systemd

核心概念:Unit(单元)

systemd 所有资源抽象为Unit,后缀区分类型,文件一般存放路径:

  • 系统单元:/usr/lib/systemd/system/

  • 管理员自定义单元:/etc/systemd/system/

常用 Unit 类型

后缀类型作用
.service服务单元管理后台程序(nginx、sshd)
.target目标单元启动组,相当于运行级别
.mount挂载单元文件系统挂载(替代 fstab 一部分)
.socketSocket 单元套接字激活(按需启动服务)
.timer定时器单元替代 cron 定时任务
.path路径监控文件变化触发程序
.device设备单元内核识别硬件设备
.swap交换分区单元管理 swap
管理system单元
systemctl [--all] ​ 查询所有单元的状态以验证系统启动情况 ​ systemctl --type=service ​ 仅查询服务单元的状态 ​ systemctl is-active sshd; systemctl is-enabled sshd ​ systemctl list-unit-files [--type=service] ​ 查看所有单元的启用和禁用设置
服务状态
systemctl status sshd[.service] ​ loaded: 单元配置文件已处理 ​ active (running): 运行一个或多个持续进程 ​ active (exited): 成功完成一次性配置 ​ active (waiting): 正在运行但等待某个事件 ​ inactive: 未运行 ​ enabled: 将在开机时启动 ​ disabled: 不会在开机时启动
启动和停止服务
systemctl status sshd.service [check out PID] systemctl stop sshd.service systemctl start sshd.service [check out PID] systemctl restart sshd.service [check out PID] systemctl reload sshd.service [now, check out PID]
管理开机自启服务
systemctl enable sshd.service systemctl disable sshd.service
屏蔽服务

有时系统服务会冲突

network and NetworkManager iptables and firewalld

此时可以屏蔽某项服务

systemctl mask firewalld

注意:禁用的服务不会在启动时或由其他单元文件自动启动,但可以手动启动。被屏蔽的服务既不能手动启动也不能自动启动。

防火墙

firewalld(用户空间防火墙服务)
  1. 概念:Zone(区域)

    把网卡 / 网络划分不同信任等级:

    trusted(全部允许) → home → internal → public(默认) → drop → block

    一张网卡绑定一个 zone,不同 zone 使用不同防火墙策略。

  2. 特性

  • Service:预定义服务(http、ssh,对应端口)

  • 临时规则(runtime):立即生效,重启 / 重载丢失

  • 永久规则(permanent):写入配置文件,必须--reload加载

  • 动态规则更新:reload 时不切断已经建立的连接(最大优势)

3.参数

区域默认策略使用场景
trusted全部允许内网信任网络
home/internal允许常用服务家庭 / 内部局域网
public默认,仅允许少量服务外网、公网网卡(默认 zone)
block所有入站拒绝,返回拒绝信息不信任网络
drop所有入站丢弃,不回应最严格,直接丢包
iptables
定义

iptables:运行在用户空间的命令工具,用来向 Linux 内核Netfilter框架下发数据包过滤规则,实现防火墙、地址转换功能。

Netfilter:内核层面的防火墙框架,提供 5 个钩子点位,真正处理数据包。

Iptables 工作原理分类
Iptables 工作流程
  1. 规则自上而下依次匹配,匹配成功后执行对应动作,不再向下继续匹配;

  2. 数据包遍历所有规则仍未匹配,则执行链默认策略。

分类

  • 主机防火墙:防护本机收发报文,依托 filter 表 INPUT 链;

  • 网络防火墙:管控内网转发报文,依托 nat 表。

四张表功能

  • raw 表:数据包连接跟踪前预处理;

  • mangle 表:修改数据包 IP 头部信息;

  • nat 表:实现源 / 目标网络地址转换;

  • filter 表:数据包过滤,决定放行或丢弃,使用最广泛。

    iptables 概念楼房类比释义
    表(tables)一栋楼房根据功能划分不同大楼,每栋楼只做一类工作(filter、nat、mangle、raw)
    链(chains)楼房里的房间数据包流转的不同阶段,每个房间对应一个数据包必经点位(INPUT、OUTPUT、PREROUTING 等)
    规则(rule)房间内的柜子一条一条匹配条件:源 IP、端口、协议等
    动作 / 策略(target/policy)柜子上摆放 / 收纳规则匹配成功后执行操作:ACCEPT、DROP、REJECT、SNAT 等;全部柜子不匹配就执行房间默认收纳规则####

五条链

链名称核心作用流量场景典型用途
INPUT处理、管控进入本机的数据包目标地址为本机的流量主机防火墙核心链,过滤外部访问本机的流量,禁止未授权访问本机服务(filter 表主打)
OUTPUT处理、管控本机向外发出的数据包本机主动对外发送的流量限制本机出站流量,拦截恶意程序、异常配置向外发送不安全报文
FORWARD处理经过本机转发的数据包流量不经过本机应用,仅通过本机跨网络转发用于路由器、网关设备,控制不同网络之间的转发流量,实现内网流量管控
PREROUTING路由决策之前处理入站数据包所有刚进入网卡的外网流量主要用于DNAT 目标地址转换,将外网请求转发至内网指定设备/服务
POSTROUTING路由决策之后处理出站数据包所有即将离开网卡的转发、出站流量主要用于SNAT 源地址转换,内网主机共享公网IP上网,统一修改流量源地址

工作顺序:

PREROUTING :首先处理进入本机的数据包,用于目标地址转换( DNAT )。

INPUT :如果数据包的目标是本机,数据包会进入 INPUT 链,决定是否允许本机接受该数据包。 FORWARD :如果数据包不属于本机(即目标是其他网络),数据包会进入 FORWARD 链,决定是否 允许转发。

POSTROUTING :在数据包离开本机之前,源地址转换( SNAT )会在此链中进行。

OUTPUT :如果数据包是从本机发出的,数据包会经过 OUTPUT 链,决定是否允许本机向外发送该 数据包

表名称核心作用典型应用场景内置常用链
raw 表在连接跟踪生效前处理数据包,设置连接跟踪标记,支持跳过连接跟踪流量优化,特定流量关闭连接跟踪,降低系统开销PREROUTING、OUTPUT
mangle 表修改数据包 IP 头部字段,为数据包打标记修改 TTL、TOS;流量标记、QoS、负载均衡等高级网络管控PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
nat 表修改数据包源地址、目标地址,实现地址转换SNAT、DNAT、端口转发;内网主机共享公网 IP 访问外网PREROUTING、POSTROUTING、OUTPUT
filter 表数据包过滤,判定报文是否允许通行防火墙访问控制,放行、拒绝、丢弃数据包,日常最常用INPUT、FORWARD、OUTPUT
iptables 缺点
  1. 无法防御内网发起的攻击;

  2. 系统漏洞可能被攻击者利用,绕过防火墙策略;

  3. 难以识别、拦截内嵌在数据中的病毒。

格式
iptables -t 表名 动作 [链名] [-p 匹配条件] [-j 控制类型] -j:控制类型, 通过前面匹配到之后是丢弃还是保留数据包的处理方式: ACCEPT允许, REJECT拒绝, DROP丢弃。 不会给用户返回任何的拒绝消息,不推荐使用。
参数
-L: 列出一个链或所有链中的规则信息 -n: 以数字形式显示地址、端口等信息 # 端口: --sport --源端口 --dport --目标端口 ​ -v: 以更详细的方式显示规则信息 --line-numbers: 查看规则时,显示规则的序号(方便之处,通过需要删除规则-D INPUT 1 -F: 清空所有的规则(-X是清理自定义的链,用的少;-Z清零规则序号) -D: 删除链内指定序号(或内容)的一条规则 -P: 为指定的链设置默认规则 -A: 在链的末尾追加一条规则 -I: 在链的开头(或指定序号)插入一条规则 -t: 指定表名

Apache服务

概念
1. 基本定义

Apache(全称Apache HTTP Server),一款开源、跨平台的Web 网页服务器软件,由 Apache 软件基金会维护。

作用:接收客户端浏览器发起的 HTTP/HTTPS 请求,向客户端返回网页、图片、文档等资源,实现网站访问。

2. 核心功能
  1. 处理HTTP / HTTPS请求,提供静态网页访问;

  2. 支持虚拟主机:一台服务器搭建多个独立网站;

  3. 支持模块扩展(模块化架构),可加载模块实现 PHP、重定向、访问控制、加密等功能;

  4. 具备访问权限控制、日志记录、防盗链、URL 重写等能力。

3. 关键特点
  • 模块化设计:核心程序简洁,按需加载模块,功能灵活扩展;

  • 跨平台:支持 Linux、Windows 等操作系统;

  • 开源免费、稳定可靠,兼容性强

  • 采用多进程 / 多线程模型处理客户端请求。

4. 作用
  • 监听端口:默认 HTTP 80 端口,HTTPS 443 端口;

  • 网站根目录:存放网页程序的目录(Linux 默认常见/var/www/html);

  • 主配置文件httpd.conf(RHEL/CentOS)、apache2.conf(Debian/Ubuntu);

  • 虚拟主机:基于域名 / IP 区分多个站点;

  • 访问日志 & 错误日志:记录用户访问行为、程序报错,方便运维排查。

5. 工作流程

客户端浏览器 → TCP 连接(80 端口) → Apache 服务接收 HTTP 请求

→ 查找对应网页资源 → 返回资源给浏览器 → 断开连接

Apache服务配置
安装httpd ​ # yum install httpd httpd-manual -y ​ 开启服务 ​ # systemctl start httpd ​ # systemctl enable httpd ​ # firewall-cmd --permanent --add-service=http ​ # firewall-cmd --reload ​ 默认发布目录: ​ # cd /var/www/html ​ # vim index.html #新建默认发布页面
Apache参数
参数作用说明
ServerRoot "/etc/httpd"Apache 程序根目录,存放配置、模块
Listen 80监听端口,默认 80;可写Listen 192.168.1.100:80绑定指定网卡
ServerAdmin root@localhost网站管理员邮箱,出错页面展示
ServerName www.test.com:80服务器主机名,虚拟主机必备
DocumentRoot "/var/www/html"网站根目录,网页文件存放位置
DirectoryIndex index.html index.php默认首页文件,按顺序查找
Timeout 60请求超时时间,单位秒
KeepAlive On/Off是否开启长连接;On 支持一次 TCP 连接多次请求
MaxKeepAliveRequests 100单条长连接最大请求数量
KeepAliveTimeout 5长连接空闲超时
目录权限段 <Directory>
<Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
日志参数
ErrorLog "logs/error_log" LogLevel warn CustomLog "logs/access_log" combined
  • ErrorLog:错误日志

  • CustomLog:访问日志

  • combined:标准日志格式(含来源 IP、浏览器、状态码)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询