普通视图

发现新文章,点击刷新页面。
昨天以前首页
  • ✇杜老师说
  • 加密 NFS 搭建保障数据传输与存储安全Teacher Du
    在现代企业环境中,数据的安全性至关重要。NFS 作为一种广泛使用的文件共享协议,其数据在传输和存储过程中若是缺乏加密保护,将面临被窃取或篡改的风险。本文将详细介绍加密 NFS 搭建过程。NFS 的简介NFS 是允许用户通过网络访问远程文件系统,就像访问本地文件系统一样方便。它支持跨平台文件共享,广泛应用于 Linux 和 Unix 系统。然而,传统的 NFS 传输数据时以明文形式在网络中传输,很容易受到中间人攻击和数据泄露的威胁。在 NFS 的基础上,我们可以使用加密技术来保护数据传输和存储。加密 NFS 必要性随着数据安全法规的日益严格和企业对数据保护的重视,对 NFS 进行加密变得必不可少。在企业中,NFS 的加密功能可以提供数据传输和存储的安全保障。加密 NFS 可有效防止数据在传输过程中被窃取或篡改,确保数据的完整性和机密性。同时,它也可以满足企业对数据安全合规的要求,为企业的数据资产提供更可靠的保护。搭建加密 NFS 的步骤在 NFS 服务器安装支持加密的 NFS 软件包。例如,在基于 Debian 的系统上,可以使用下面命令进行安装:1sudo apt -y install
     

加密 NFS 搭建保障数据传输与存储安全

作者 Teacher Du
2025年3月4日 00:00

在现代企业环境中,数据的安全性至关重要。NFS 作为一种广泛使用的文件共享协议,其数据在传输和存储过程中若是缺乏加密保护,将面临被窃取或篡改的风险。本文将详细介绍加密 NFS 搭建过程。

NFS 的简介

NFS 是允许用户通过网络访问远程文件系统,就像访问本地文件系统一样方便。

它支持跨平台文件共享,广泛应用于 Linux 和 Unix 系统。

然而,传统的 NFS 传输数据时以明文形式在网络中传输,很容易受到中间人攻击和数据泄露的威胁。

在 NFS 的基础上,我们可以使用加密技术来保护数据传输和存储。

加密 NFS 必要性

随着数据安全法规的日益严格和企业对数据保护的重视,对 NFS 进行加密变得必不可少。

在企业中,NFS 的加密功能可以提供数据传输和存储的安全保障。

加密 NFS 可有效防止数据在传输过程中被窃取或篡改,确保数据的完整性和机密性。

同时,它也可以满足企业对数据安全合规的要求,为企业的数据资产提供更可靠的保护。

搭建加密 NFS 的步骤

在 NFS 服务器安装支持加密的 NFS 软件包。例如,在基于 Debian 的系统上,可以使用下面命令进行安装:

1
sudo apt -y install nfs-kernel-server

使用下面的命令编辑 NFS 配置文件,添加加密相关选项。例如,可使用 sec = krb5isec = krb5p 选项来启用 Kerberos 加密。其中,krb5i 提供数据完整性保护,而 krb5p 则同时提供了数据加密和完整性保护:

1
sudo vim /etc/exports

在配置文件中指定要共享的目录及其访问权限。这表示允许客户端 IP 以读写模式访问共享目录,并启用 Kerberos 加密。例如:

1
/path/to/shared/directory client_ip(rw,sync,no_subtree_check,sec=krb5i)

完成配置后重启 NFS 服务。可以使用下面命令重启服务:

1
sudo systemctl restart nfs-kernel-server

使用下面的命令使配置文件生效:

1
exports -rv

在需访问加密 NFS 共享的客户端上安装 NFS 客户端软件。例如,在基于 Debian 的系统上,可以使用下面命令进行安装:

1
sudo apt -y install nfs-common

使用挂载命令将加密的 NFS 共享挂载到本地目录。这将把服务器上的共享目录挂载到客户端本地目录,并启用 Kerberos 加密。例如:

1
sudo mount -t nfs4 -o sec=krb5i server_ip:/path/to/shared/directory /local/mount/point

使用下面命令查看挂载文件系统,确保加密 NFS 共享已成功挂载:

1
df -h 

加密 NFS 优势与注意事项

加密 NFS 有多种优势,例如数据加密传输、身份认证和数据完整性保护等等。

它能够有效防止数据泄露和篡改,提高数据的安全性。

然而,在搭建加密 NFS 时也需要注意一些事项。

首先,加密过程可能会增加系统的性能开销,因此需根据实际需求进行性能评估和优化。

其次,配置过程较为复杂,需仔细检查配置文件和参数设置,确保正确无误。

此外,还需要定期更新加密软件和认证机制,以应对不断变化的安全威胁。

  • ✇杜老师说
  • 探索 Linux 内存占用找出最吃内存的进程Teacher Du
    无论是服务器还是个人电脑,了解哪些进程占用了最多的内存,对于系统管理员和普通用户来说至关重要。不仅可以帮助我们优化系统性能,还能避免因内存不足而导致系统崩溃。本文将介绍如何在 Linux 系统中统计内存占用最多的前 10 个进程。为什么要统计内存占用多任务操作系统中,内存是有限的资源。当多个进程同时运行时,它们会争夺有限的内存空间。如果某些进程占用内存过多,可能导致系统响应变慢,甚至出现内存不足错误。因此,定期检查内存占用情况,找出占用最多进程,可以帮助我们更好管理资源,优化系统性能。使用命令工具统计内存占用使用 ps 和 sort 的命令组合:1ps -eo pid,comm,%mem --sort=-%mem | head -n 11解释:参数作用ps -eo pid,comm,%mem列出所有进程的 PID、进程名称和内存占用百分比。–sort=-%mem按内存占用百分比降序排序。head -n 11显示前 11 行的内容「第一行是标题,接下来是前 10 个进程的信息」虽然 top 命令主要用于实时的监控系统资源,但也可通过以下方式快速查看内存占用最多的进程:1top -o %M
     

探索 Linux 内存占用找出最吃内存的进程

作者 Teacher Du
2025年2月23日 00:00

无论是服务器还是个人电脑,了解哪些进程占用了最多的内存,对于系统管理员和普通用户来说至关重要。不仅可以帮助我们优化系统性能,还能避免因内存不足而导致系统崩溃。本文将介绍如何在 Linux 系统中统计内存占用最多的前 10 个进程。

为什么要统计内存占用

多任务操作系统中,内存是有限的资源。

当多个进程同时运行时,它们会争夺有限的内存空间。

如果某些进程占用内存过多,可能导致系统响应变慢,甚至出现内存不足错误。

因此,定期检查内存占用情况,找出占用最多进程,可以帮助我们更好管理资源,优化系统性能。

使用命令工具统计内存占用

使用 pssort 的命令组合:

1
ps -eo pid,comm,%mem --sort=-%mem | head -n 11

解释:

参数作用
ps -eo pid,comm,%mem列出所有进程的 PID、进程名称和内存占用百分比。
–sort=-%mem按内存占用百分比降序排序。
head -n 11显示前 11 行的内容「第一行是标题,接下来是前 10 个进程的信息」

虽然 top 命令主要用于实时的监控系统资源,但也可通过以下方式快速查看内存占用最多的进程:

1
top -o %MEM -b -n 1 | head -n 18

解释:

参数作用
-o %MEM按照内存占用排序。
-b以批处理模式运行,输出到终端上。
-n 1只需运行一次。
head -n 18过滤出前 18 行「因为 top 输出的前几行是系统信息,实际进程从第 8 行开始」

如果需要更详细的内存占用信息,可结合 pmap 命令:

1
ps -eo pid,%mem,comm --sort=-%mem | head -n 11 | awk '{print $1}' | xargs -I {} pmap {} | grep total

解释:

参数作用
ps -eo pid,%mem,comm –sort=-%mem获取内存占用最高的进程 PID。
awk ‘{print $1}’提取 PID 进程号。
xargs -I {} pmap {}获取每个进程详细内存映射信息。
grep total过滤 total 行,显示每个进程的总内存占用情况。

如果系统安装了 smem 工具,可以更直观地查看内存占用:

1
smem -s rss -c "pid user command rss" --sort=rss | head -n 11

解释:

参数作用
-s rss按 RSS 排序。
-c “pid user command rss”指定显示的列。
–sort=rss按 RSS 排序。
head -n 11显示前 11 行的内容。

如何分析内存占用情况

确认进程是否必要。有些进程可能是系统正常运行所必需,例如 systemd 等。这些进程通常不会占用过多内存。然而,如果某些进程是用户启动的,如某个应用程序或脚本,需确认它们是否在正常运行。

检查进程是否内存泄漏。如某个进程的内存占用持续增加,可能是内存泄漏导致的。内存泄漏是指程序在申请内存后,无法正确释放已分配的内存,导致内存占用不断增加。这种情况下需要检查程序的代码,查找可能导致内存泄漏地方。

限制进程内存使用。如果某个进程占用过多内存,但又不能轻易终止,可以尝试限制它的内存使用。

Linux 提供 ulimit 命令,可设置进程的资源限制。例如,限制某个进程的最大内存使用量为 1GB,可使用命令 ulimit -m 1048576

内存管理其它技巧

除了统计内存占用最多进程,还可通过以下方式优化 Linux 系统的内存管理。

调整交换空间。交换空间是磁盘上的一部分空间,当物理内存不足时,系统会将一些不常用的内存页面移到交换空间。虽然使用交换空间可以避免系统崩溃,但磁盘速度远慢于内存,因此过多地使用交换空间会导致系统性能下降。

可以通过命令 swapon --show 查看交换空间的使用情况。如果交换空间使用过多,可以考虑增加物理内存,或者调整交换空间大小。

使用内存清理工具。Linux 系统会自动管理内存分配、回收,但有时也可以手动清理内存。

例如,可以使用 sync 命令将缓存数据写入磁盘,然后用 echo 3 > /proc/sys/vm/drop_caches 命令清理缓存。

但请注意,这种方法可能会对系统性能产生一定影响,因此需要谨慎使用。

  • ✇杜老师说
  • 麒麟服务器操作系统 yum 升级报错处理Teacher Du
    因为公司要求,杜老师一直使用麒麟服务器操作系统,为了保证系统的新特性,需要经常升级系统。这次在升级过程中遇到错误,本文记录该错误及其解决的方法。如果小伙伴也遇到了类似的问题,可以参考本文或在评论区中留言!报错信息123456The downloaded packages were saved in cache until the next successful transaction.You can remove cached packages by executing 'yum clean packages'.Error: Transaction test error: file /usr/share/doc/ipmitool/ChangeLog from install of ipmitool-1.8.19-1.p01.ky10.x86_64 conflicts with file from package ipmitool-help-1.8.18-19.p02.ky10.noarch file /usr/share/doc/ipmitool/README from insta
     

麒麟服务器操作系统 yum 升级报错处理

作者 Teacher Du
2025年2月2日 00:00

因为公司要求,杜老师一直使用麒麟服务器操作系统,为了保证系统的新特性,需要经常升级系统。这次在升级过程中遇到错误,本文记录该错误及其解决的方法。如果小伙伴也遇到了类似的问题,可以参考本文或在评论区中留言!

报错信息

1
2
3
4
5
6
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'yum clean packages'.
Error: Transaction test error:
file /usr/share/doc/ipmitool/ChangeLog from install of ipmitool-1.8.19-1.p01.ky10.x86_64 conflicts with file from package ipmitool-help-1.8.18-19.p02.ky10.noarch
file /usr/share/doc/ipmitool/README from install of ipmitool-1.8.19-1.p01.ky10.x86_64 conflicts with file from package ipmitool-help-1.8.18-19.p02.ky10.noarch
file /usr/share/man/man1/ipmitool.1.gz from install of ipmitool-1.8.19-1.p01.ky10.x86_64 conflicts with file from package ipmitool-help-1.8.18-19.p02.ky10.noarch

注意;杜老师执行命令 yum -y update 用户升级所有软件,在升级过程中提示如上错误信息。

解决思路

根据所提供的错误信息,问题在于 ipmitool-1.8.19-1.p01.ky10.x86_64ipmitool-help-1.8.18-19.p02.ky10.noarch 间存在文件冲突。以下是解决此问题步骤,首先移除冲突的包:

1
yum -y remove ipmitool-help-1.8.18-19.p02.ky10.noarch

清理缓存,确保后续操作不会受到旧缓存的影响:

1
yum clean all

在移除冲突包并清理缓存后,重新安装 ipmitool 软件包:

1
yum -y install ipmitool-1.8.19-1.p01.ky10.x86_64

最后,更新系统中所有包,以确保所有的依赖关系都已解决:

1
yum -y update
  • ✇杜老师说
  • 使用 GoAccess 分析 Nginx 访问日志Teacher Du
    Nginx 的访问日志中蕴含丰富的信息,然而直接阅读对于大多数人来说是一项艰巨的任务。但我们有 GoAccess 这样的强大工具,它能够帮助我们轻松地分析和可视化 Nginx 的访问日志。工具安装对于基于 Debian 的系统「如 Ubuntu」,可以使用以下命令安装:12sudo apt-get updatesudo apt-get install goaccess对于基于 Red Hat 的系统「如 CentOS」,可以使用以下命令安装:1sudo yum -y install goaccess源码安装如果想要从源码安装 GoAccess,可以按照以下步骤操作。先下载 GoAccess 的源码包:1wget https://tar.goaccess.io/goaccess-1.4.tar.gz再解压并编译安装:1234tar -xzvf goaccess-1.4.tar.gzcd goaccess-1.4/./configure --enable-geoip --enable-utf8make && sudo make install配置工具我们需要对 GoAcce
     

使用 GoAccess 分析 Nginx 访问日志

作者 Teacher Du
2025年1月10日 00:00

Nginx 的访问日志中蕴含丰富的信息,然而直接阅读对于大多数人来说是一项艰巨的任务。但我们有 GoAccess 这样的强大工具,它能够帮助我们轻松地分析和可视化 Nginx 的访问日志。

工具安装

对于基于 Debian 的系统「如 Ubuntu」,可以使用以下命令安装:

1
2
sudo apt-get update
sudo apt-get install goaccess

对于基于 Red Hat 的系统「如 CentOS」,可以使用以下命令安装:

1
sudo yum -y install goaccess

源码安装

如果想要从源码安装 GoAccess,可以按照以下步骤操作。先下载 GoAccess 的源码包:

1
wget https://tar.goaccess.io/goaccess-1.4.tar.gz

再解压并编译安装:

1
2
3
4
tar -xzvf goaccess-1.4.tar.gz
cd goaccess-1.4/
./configure --enable-geoip --enable-utf8
make && sudo make install

配置工具

我们需要对 GoAccess 进行配置,确保它能够正确地解析 Nginx 的访问日志。GoAccess 配置文件通常位于 /etc/goaccess/goaccess.conf。对于 Nginx 的默认日志格式,可直接使用--log-format=COMBINED 参数。如果 Nginx 配置了自定义的日志格式,需在 GoAccess 的配置文件中指定相应的日志格式。例如:

1
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

还需指定日期和时间的格式,以确保 GoAccess 能够正确地解析日志文件中的日期和时间信息。例如:

1
2
date-format %d/%b/%Y
time-format %H:%M:%S

分析日志

在终端直接运行 GoAccess,它会进入一个交互式的界面,显示日志分析结果。在交互式界面中可使用键盘方向键和数字键来浏览和查看不同的统计信息。例如:

1
goaccess /var/log/nginx/access.log --log-format=COMBINED

GoAccess 可将分析结果输出为 HTML 格式的报告,方便在 Web 浏览器中查看。下面的命令将生成一个名为 report.html 的文件,包含丰富的统计信息和图表:

1
goaccess /var/log/nginx/access.log -o report.html --log-format=COMBINED

GoAccess 支持实时监控 Nginx 访问日志,可动态地更新统计信息。如要启用实时监控,可以使用以下命令:

1
--real-time-html --daemonize

启动一个后台进程,实时分析日志文件,并将结果输出到指定的 HTML 文件中,完整参考命令如下:

1
goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html --daemonize

分析结果解读

GoAccess 提供了丰富的统计信息和图表,帮助我们全面了解网站访问情况,包括访问概览:

维度描述
网站的总访问次数显示网站总访问量。
网站的独立访客数统计访问网站的不同 IP 地址数量。
总数据传输量表示网站传输数据总量,单位通常为 MB 或 GB。

网站的访问者信息:

维度描述
IP 地址的排名列出访问网站的 IP 地址及其访问次数,可以了解访问者的地理位置分布。
访问者的浏览器和操作系统统计访问者使用的浏览器和操作系统类型,有助于优化网站兼容性。

请求信息:

维度描述
请求方法显示不同 HTTP 请求方法的请求次数。
请求的状态码统计不同 HTTP 状态码请求次数,如 200 表示成功,404 表示未找到。
请求 URL 的排名列出被访问最多 URL 地址,可发现网站的热门内容。

性能分析:

维度描述
请求时间分布显示不同时间段请求量,可发现访问高峰期。
最耗时的请求列出响应时间最长请求,有助于发现性能的瓶颈。

高级用法

除了基本分析功能,GoAccess 还支持一些高级用法。例如可使用管道和过滤器来处理日志数据,下面命令将实时地分析 Nginx 的访问日志,并显示最新的统计信息:

1
tail -f /var/log/nginx/access.log | goaccess -p /etc/goaccess/goaccess.conf

GoAccess 可支持同时分析多个日志文件,下面命令将合并多个日志文件的分析结果:

1
goaccess -p /etc/goaccess/goaccess.conf access.log.1 access.log.2
  • ✇杜老师说
  • 通过 Nginx 的 access_log 分析网站的流量Teacher Du
    在当今数字化时代,网站流量分析对于理解用户行为、优化网站性能以及制定营销策略至关重要。本文将探讨如何通过分析 Nginx 的 access_log 获取网站流量的多维度数据,并给出具体操作步骤和分析方法。日志格式在开始分析前,我们需要了解 access_log 的默认日志格式。通常情况 access_log 的日志格式如下:123log_format combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';这个格式包含以下字段:字段说明$remote_addr客户端 IP 地址$remote_user客户端用户名$time_local本地时间$request请求方法、请求 URI 以及 HTTP 版本$statusHTTP 状态码$body_bytes_sent发送给客户端的字节数$http_referer请求
     

通过 Nginx 的 access_log 分析网站的流量

作者 Teacher Du
2025年1月7日 00:00

在当今数字化时代,网站流量分析对于理解用户行为、优化网站性能以及制定营销策略至关重要。本文将探讨如何通过分析 Nginx 的 access_log 获取网站流量的多维度数据,并给出具体操作步骤和分析方法。

日志格式

在开始分析前,我们需要了解 access_log 的默认日志格式。通常情况 access_log 的日志格式如下:

1
2
3
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';

这个格式包含以下字段:

字段说明
$remote_addr客户端 IP 地址
$remote_user客户端用户名
$time_local本地时间
$request请求方法、请求 URI 以及 HTTP 版本
$statusHTTP 状态码
$body_bytes_sent发送给客户端的字节数
$http_referer请求来源的 URL
$http_user_agent客户端浏览器的用户代理字符串

Nginx 访问量分析

要统计网站的总访问量,可通过计算 access_log 文件的行数来实现。在 Linux 系统中可以使用 wc -l 命令,该命令会输出 access.log 文件的行数,即为网站总访问量:

1
wc -l access.log

了解访问量在不同时间段的分布情况,有助于我们发现网站访问高峰和低谷。可以使用 awk 命令按小时或分钟统计请求数,下面的命令会输出按小时或分钟统计的请求数,并且显示请求数最多的前 100 个时间点:

1
2
3
4
# 每小时统计请求数
awk '{print $4}' access.log | cut -c 14-15 | sort | uniq -c | sort -nr | head -n 100
# 每分钟统计请求数
awk '{print $4}' access.log | cut -c 14-18 | sort | uniq -c | sort -nr | head -n 100

访问来源分析

分析访问来源 IP 可以了解用户主要来自哪些地区或网络环境。使用 awksort 命令可以统计访问量最多的 IP 地址,该命令会输出访问量最多的前 10 个 IP 地址及其访问次数:

1
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -n 10

查看访问来源 URL 有助于我们了解用户是如何找到我们网站的。可以使用以下命令统计访问来源最多的 URL,该命令会输出访问来源最多的前 10 个 URL 及访问次数:

1
awk '{print $11}' access.log | sort | uniq -c | sort -nr | head -n 10

页面访问分析

了解哪些页面访问量最高可帮助我们优化这些页面的性能和内容。使用 awk 命令可统计访问最频繁的页面,下面命令会输出访问最频繁的前 100 个页面及其访问次数:

1
awk '{print $7}' access.log | sort | uniq -c | sort -rn | head -n 100

分析页面的访问时间可以发现哪些页面的加载时间较长,需要优化。在 Nginx 的 log_format 中加入 $request_time 字段,然后使用以下命令列出传输时间超过 3 秒页面,该命令会输出传输时间超过 3 秒的页面及其出现的次数,仅显示前 20 条记录:

1
cat access.log | awk '($NF > 3){print $7}' | sort -n | uniq -c | sort -nr | head -20

用户行为分析

分析用户代理字符串可以了解用户使用的浏览器类型和版本。使用 awk 命令可统计不同浏览器的访问次数,该命令会输出不同浏览器访问次数及其用户代理字符串:

1
awk -F '"' '{print $6}' access.log | sort | uniq -c | sort -nr | head -n 10

通过分析用户的访问路径可以了解用户在网站中的导航行为。可以使用以下命令统计访问路径的长度和频率,该命令会输出访问路径的长度及其出现的次数,仅显示前 10 条记录:

1
awk '{print $7}' access.log | awk -F '/' '{print NF-1}' | sort | uniq -c | sort -nr | head -n 10

性能分析

响应时间是衡量网站性能的重要指标之一。可使用以下命令统计响应时间的分布情况,该命令会输出响应时间及其出现次数,仅显示前 10 条记录:

1
awk '{print $NF}' access.log | sort -n | uniq -c | sort -nr | head -n 10

HTTP 状态码反映了请求的成功与否以及错误类型。可以使用以下命令统计不同状态码的出现次数,该命令会输出不同状态码及其出现的次数,仅显示前 10 条记录:

1
awk '{print $9}' access.log | sort | uniq -c | sort -nr | head -n 10
  • ✇杜老师说
  • 开启 OpenResty 的 QUIC 支持Teacher Du
    QUIC 是种基于 UDP 实现的传输层协议,由 Google 提出,旨在减少握手延迟,实现快速连接建立、多路复用、连接迁移功能。本教程分享如何在 OpenResty 开启 QUIC 支持。准备工作确保已经成功安装了 OpenResty。如果看到 OpenResty 的欢迎页面,说明安装成功。OpenResty 通过集成 Nginx 并利用其模块化特性支持 QUIC。需要在 Nginx 配置文件中启用 QUIC 支持。通常涉及到配置监听 UDP 端口,因为 QUIC 运行在 UDP 上。OpenResty 从 1.25 版本开始支持 QUIC,如果是之前的版本,需要自行编译安装模块以支持 QUIC。使用支持 QUIC 的客户端工具测试 QUIC 连接是否成功建立。监听端口对于每个站点,需在 Nginx 配置文件中为 QUIC 配置监听端口。由于 QUIC 运行在 UDP 上,需为每个站点配置一个监听 UDP 端口的指令。例如,如果有两个站点 site1 和 site2,可以这样配置:12345server { listen 443 quic reuseport; server_
     

开启 OpenResty 的 QUIC 支持

作者 Teacher Du
2024年11月20日 00:00

QUIC 是种基于 UDP 实现的传输层协议,由 Google 提出,旨在减少握手延迟,实现快速连接建立、多路复用、连接迁移功能。本教程分享如何在 OpenResty 开启 QUIC 支持。

准备工作

确保已经成功安装了 OpenResty。如果看到 OpenResty 的欢迎页面,说明安装成功。

OpenResty 通过集成 Nginx 并利用其模块化特性支持 QUIC。需要在 Nginx 配置文件中启用 QUIC 支持。通常涉及到配置监听 UDP 端口,因为 QUIC 运行在 UDP 上。

OpenResty 从 1.25 版本开始支持 QUIC,如果是之前的版本,需要自行编译安装模块以支持 QUIC。

使用支持 QUIC 的客户端工具测试 QUIC 连接是否成功建立。

监听端口

对于每个站点,需在 Nginx 配置文件中为 QUIC 配置监听端口。由于 QUIC 运行在 UDP 上,需为每个站点配置一个监听 UDP 端口的指令。例如,如果有两个站点 site1site2,可以这样配置:

1
2
3
4
5
server {
listen 443 quic reuseport;
server_name site1.dusays.com;
# site1 的其它配置...
}

这里的 443444 是用于 QUIC 的 UDP 端口,quic 指定 QUIC 协议,reuseport 是为了提高性能:

1
2
3
4
5
server {
listen 444 quic reuseport;
server_name site2.dusays.com;
# site2 的其它配置...
}

端口复用

如果在一台服务器包含多个网站,其中一个网站添加 reuseport 参数后,则其它网站无法再次添加 reuseport 参数:

1
2
3
4
5
server {
listen 443 quic reuseport;
server_name site1.dusays.com;
# site1 的 QUIC 加密和伪装配置...
}

多次添加 reuseport 参数会提示端口冲突,这时可以删除其中的 reuseport 参数,或者使用不同的 UDP 端口。例如:

1
2
3
4
5
server {
listen 443 quic;
server_name site2.dusays.com;
# site2 的 QUIC 加密和伪装配置...
}

测试连接

使用支持 QUIC 客户端工具测试每个站点的 QUIC 连接是否成功建立,这可以帮助验证服务器端的配置是否正确:

  • ✇杜老师说
  • 终端美化工具 X-CMD 安装与使用Teacher Du
    X-CMD 是一款强大的终端美化和功能增强工具,它通过模块化设计和集成的包管理器,为用户提供丰富的功能和便捷的使用体验。无论是日常的命令行操作还是开发环境的搭建,X-CMD 都能提供有效的支持。概述X-CMD 是一款开源轻量级 POSIX 脚本工具,集成了 500+语言、工具,不需要 root 权限即可使用,提供了原生命令的增强以及现代化的命令行界面 TUI。本文将详细介绍 X-CMD 安装、基本使用及一些专业术语和功能特性。安装X-CMD 支持在主流 POSIX shell 系统环境下运行,包括 bash/zsh 等。以下是在 Linux 系统的安装步骤,打开终端,输入以下命令之一来安装 X-CMD:1eval "$(curl https://get.x-cmd.com)"或使用 wget,这将下载并执行 X-CMD 安装脚本,自动配置环境变量,使得 X-CMD 命令在任何新终端会话中可用:1eval "$(wget -O- https://get.x-cmd.com)"使用X-CMD 自带的包管理器 x pkg 可以快速安装并管理脚本引擎,例如 Node.js/Python 等。例
     

终端美化工具 X-CMD 安装与使用

作者 Teacher Du
2024年11月14日 00:00

X-CMD 是一款强大的终端美化和功能增强工具,它通过模块化设计和集成的包管理器,为用户提供丰富的功能和便捷的使用体验。无论是日常的命令行操作还是开发环境的搭建,X-CMD 都能提供有效的支持。

概述

X-CMD 是一款开源轻量级 POSIX 脚本工具,集成了 500+语言、工具,不需要 root 权限即可使用,提供了原生命令的增强以及现代化的命令行界面 TUI。

本文将详细介绍 X-CMD 安装、基本使用及一些专业术语和功能特性。

安装

X-CMD 支持在主流 POSIX shell 系统环境下运行,包括 bash/zsh 等。以下是在 Linux 系统的安装步骤,打开终端,输入以下命令之一来安装 X-CMD:

1
eval "$(curl https://get.x-cmd.com)"

或使用 wget,这将下载并执行 X-CMD 安装脚本,自动配置环境变量,使得 X-CMD 命令在任何新终端会话中可用:

1
eval "$(wget -O- https://get.x-cmd.com)"

使用

X-CMD 自带的包管理器 x pkg 可以快速安装并管理脚本引擎,例如 Node.js/Python 等。例如,安装并切换 Node.js 版本,使用下面命令安装并切换到指定版本的 Node.js:

1
2
x env use node=v20.11.1
node -v

支持快速执行代码,如 Python 和 Node.js,下面命令允许用户在不安装语言环境的情况下直接运行脚本:

1
2
x python -c 'print("hello x-cmd")'
x node -e 'console.log("hello x-cmd")'

示例

执行 x theme 后,可以预览每个主题在当前终端的显示情况:

增强版 ls 命令,可更方便地查看文件信息和系统信息:

查看进程,交互式查看 ps 数据:

该模块是使用 POSIX shell、awkfind 实现的增强版 cd 命令:

增强版 stat 命令,以 TUI 方式查看当前路径下所有文件的详细信息:

X-CMD 处理 PATH 变量,交互展示当前环境中 PATH 内二进制搜索目录:

增强型 docker 命令:

X-CMD 增强 git 命令:

  • ✇杜老师说
  • PM2 安装与使用Teacher Du
    在现代的软件开发和系统管理中,进程管理是一个不可或缺的部分。PM2 作为一个强大的进程管理工具,它可以帮助我们管理和保持应用在线状态,自动重启崩溃应用,并提供负载均衡等高级功能。主要特点自动重启:应用崩溃时会自动重启。负载均衡:在多个实例间分配负载。集群模式:在所有的 CPU 核心上运行应用。日志管理:实时日志查看和日志持久化。监控:实时监控应用资源使用情况。远程管理:通过 API 或者仪表板远程管理应用。PM2 的安装PM2 可以通过 npm 命令轻松安装。如果系统暂未安装相关命令,则执行下面的命令「这里以 Ubuntu 系统为例」1sudo apt -y install npm然后在命令行中运行以下命令即可安装 PM2:1npm install pm2 -gPM2 的使用要使用 PM2 启动一个应用,可使用 start 命令。例如,如果有一个名为 app.js 的 Node.js 应用,可以这样启动。PM2 会启动应用,并在后台运行:1pm2 start api.js重新启动应用程序:1pm2 restart api重新启动所有应用程序:1pm2 restart all重新启动多个
     

PM2 安装与使用

作者 Teacher Du
2024年11月11日 00:00

在现代的软件开发和系统管理中,进程管理是一个不可或缺的部分。PM2 作为一个强大的进程管理工具,它可以帮助我们管理和保持应用在线状态,自动重启崩溃应用,并提供负载均衡等高级功能。

主要特点

  • 自动重启:应用崩溃时会自动重启。

  • 负载均衡:在多个实例间分配负载。

  • 集群模式:在所有的 CPU 核心上运行应用。

  • 日志管理:实时日志查看和日志持久化。

  • 监控:实时监控应用资源使用情况。

  • 远程管理:通过 API 或者仪表板远程管理应用。

PM2 的安装

PM2 可以通过 npm 命令轻松安装。如果系统暂未安装相关命令,则执行下面的命令「这里以 Ubuntu 系统为例」

1
sudo apt -y install npm

然后在命令行中运行以下命令即可安装 PM2:

1
npm install pm2 -g

PM2 的使用

要使用 PM2 启动一个应用,可使用 start 命令。例如,如果有一个名为 app.js 的 Node.js 应用,可以这样启动。PM2 会启动应用,并在后台运行:

1
pm2 start api.js

重新启动应用程序:

1
pm2 restart api

重新启动所有应用程序:

1
pm2 restart all

重新启动多个应用程序:

1
pm2 restart app1 app2 app3

停止指定应用程序:

1
pm2 stop api

停止所有:

1
pm2 stop all

删除应用程序:

1
pm2 delete api

删除全部:

1
pm2 delete all

使用 list 命令可以查看所有由 PM2 管理应用的状态,这将显示所有应用的 ID、名称、模式、内存使用情况信息:

1
pm2 list

PM2 提供了实时日志查看功能,使用 logs 命令将显示所有应用的实时日志流:

1
pm2 logs

使用下面命令可重启所有由 PM2 管理的进程,可实现零停机重启:

1
pm2 reload all

输入下面命令来保存当前的进程列表,确保在重启后自动加载这些进程:

1
pm2 save

使用下面命令设置开机自启:

1
pm2 startup

使用下面命令取消开机自启:

1
pm2 unstartup

PM2 的命令

PM2 提供了丰富的命令行工具,用于管理应用程序。以下是一些常用的命令:

命令描述
start启动一个应用程序
stop停止一个应用程序
restart重启一个应用程序
delete删除一个应用程序
list列出所有应用程序
monit监控应用程序
dump导出应用程序的配置
reload重新加载应用程序
sendSignal发送信号给应用程序
update更新应用程序

PM2 提供了一种监听应用程序资源使用情况简单方法。可以使用命令 pm2 monit 从终端轻松监听内存和 CPU:

  • ✇杜老师说
  • 将 Debian11 升级到 Debian12Teacher Du
    为了增加服务的稳定性,杜老师采购了几台主机用于增加节点。其中有些平台仅支持 Debian11 系统,所以只好手动更新至 Debian12。这里总结分享一下升级方法!备份系统在进行任何重大系统升级前,最好备份重要数据。可以使用如 Timeshift 或其它备份工具来完成这个任务。更新系统12apt updateapt -y dist-upgrade注意:在开始升级到 Debian12 前,确保 Debian11 系统是最新。打开终端或通过 SSH 访问 Debian11 控制台,并运行以下命令来更新系统。编辑 APT 源配置文件1sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list注意:使用命令处理源配置文件/etc/apt/sources.list 文件,将所有 bullseye 替换为 bookworm。更新 APT 软件包索引1apt update注意:运行上面命令来更新软件包索引。APT 最小化系统升级1apt upgrade --without-new-pkgs注意:准备操作系统的最小化系统升级,避免出现兼容问题。完全升级到
     

将 Debian11 升级到 Debian12

作者 Teacher Du
2024年9月30日 00:00

为了增加服务的稳定性,杜老师采购了几台主机用于增加节点。其中有些平台仅支持 Debian11 系统,所以只好手动更新至 Debian12。这里总结分享一下升级方法!

备份系统

在进行任何重大系统升级前,最好备份重要数据。

可以使用如 Timeshift 或其它备份工具来完成这个任务。

更新系统

1
2
apt update
apt -y dist-upgrade

注意:在开始升级到 Debian12 前,确保 Debian11 系统是最新。打开终端或通过 SSH 访问 Debian11 控制台,并运行以下命令来更新系统。

编辑 APT 源配置文件

1
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list

注意:使用命令处理源配置文件/etc/apt/sources.list 文件,将所有 bullseye 替换为 bookworm

更新 APT 软件包索引

1
apt update

注意:运行上面命令来更新软件包索引。

APT 最小化系统升级

1
apt upgrade --without-new-pkgs

注意:准备操作系统的最小化系统升级,避免出现兼容问题。

完全升级到 Debian12

1
apt -y full-upgrade

注意:运行上面命令来完成从 Debian11 到 Debian12 的完全升级。

重启并清理软件包

完成升级后使用下面的命令重启系统:

1
reboot

最后,清理系统升级后留下的不再需要的过时软件包:

1
apt --purge autoremove

检查系统服务

使用 systemctl 命令检查系统服务的状态,确保所有服务正常运行。

需要注意的是,如果使用的是第三方应用程序或专有驱动程序,可能需要在升级后重新配置它们。

  • ✇杜老师说
  • 20 个 IT 运维必知的指标Teacher Du
    在运维实际工作中,常用的 20 个关键指标可以帮助我们全面评估和优化系统性能。这些指标涵盖了系统性能等多个方面,对于全面评估和优化 IT 运维和 Linux 运维工作至关重要。响应时间指标说明:用户发起请求到系统返回响应的时间,是评估系统性能和用户体验重要指标。参考阈值:一般应控制在几百毫秒到数秒间,具体取决于应用类型和用户期望。Error Rate 错误率指标说明:系统处理请求时发生错误百分比,用于评估系统的稳定性和可靠性。参考阈值:低于 1%错误率通常是良好的,具体取决于应用业务和服务级别协议。Throughput 吞吐量指标说明:单位时间内系统处理请求数,反映系统处理能力和资源利用率。参考阈值:根据应用的负载和性能要求进行优化,通常是希望吞吐量越高越好。Availability 可用性指标说明:在一定时间范围内系统正常运行的百分比,衡量系统的持久性和稳定性。参考阈值:高可用性通常要求在 99%以上,具体取决于应用的业务需求。CPU 使用率指标说明:CPU 运行在非空闲状态的时间占比,反映 CPU 的繁忙程度。参考阈值:合理控制 CPU 使用率,避免过载。内存利用指标说明:系统内存
     

20 个 IT 运维必知的指标

作者 Teacher Du
2024年9月27日 00:00

在运维实际工作中,常用的 20 个关键指标可以帮助我们全面评估和优化系统性能。这些指标涵盖了系统性能等多个方面,对于全面评估和优化 IT 运维和 Linux 运维工作至关重要。

响应时间

指标说明:用户发起请求到系统返回响应的时间,是评估系统性能和用户体验重要指标。

参考阈值:一般应控制在几百毫秒到数秒间,具体取决于应用类型和用户期望。

Error Rate 错误率

指标说明:系统处理请求时发生错误百分比,用于评估系统的稳定性和可靠性。

参考阈值:低于 1%错误率通常是良好的,具体取决于应用业务和服务级别协议。

Throughput 吞吐量

指标说明:单位时间内系统处理请求数,反映系统处理能力和资源利用率。

参考阈值:根据应用的负载和性能要求进行优化,通常是希望吞吐量越高越好。

Availability 可用性

指标说明:在一定时间范围内系统正常运行的百分比,衡量系统的持久性和稳定性。

参考阈值:高可用性通常要求在 99%以上,具体取决于应用的业务需求。

CPU 使用率

指标说明:CPU 运行在非空闲状态的时间占比,反映 CPU 的繁忙程度。

参考阈值:合理控制 CPU 使用率,避免过载。

内存利用

指标说明:系统内存使用情况,包括已使用和空闲内存。

参考阈值:保持合理的内存利用率,避免内存溢出。

磁盘读写

指标说明:磁盘的读写速度和效率,影响数据访问性能。

参考阈值:根据应用需求优化磁盘性能。

网络延迟

指标说明:数据在网络传输过程的延迟时间,影响系统的通信和数据交互。

参考阈值:低于几十毫秒网络延迟通常是良好的,但具体取决于应用的实时性要求。

Concurrent Connections 并发连接数

指标说明:同一时刻系统处理的并发连接数,用于评估系统并发能力。

参考阈值:根据系统类型和业务需求确定合适并发连接数。

Database Response Time 数据库响应时间

指标说明:数据库处理查询请求的时间,直接影响应用的数据库交互性能。

参考阈值:通常应控制在几百毫秒到数秒间,具体取决于数据库负载和查询复杂度。

Security Incident Rate 安全事件率

指标说明:某一时间段内发生安全事件数量,用于评估系统的安全性和受攻击风险。

参考阈值:低于 1%安全事件率通常是良好的,具体取决于系统的安全需求。

日志分析时间

指标说明:系统日志分析平均时间,用于评估日志监控和故障排查的效率。

参考阈值:高效日志分析通常应在分钟级别完成,具体取决系统规模和日志量。

资源利用效率

指标说明:资源使用率与提供服务关系,评估系统对资源的有效利用程度。

参考阈值:较高资源利用效率表示系统有效利用资源,具体的标准根据系统类型和业务需求而异。

Scheduled Task Accuracy 定时任务准确性

指标说明:定时任务执行的准确性,用于评估系统计划任务的可靠性。

参考阈值:较高的准确性表明系统能够按照预定计划执行任务,通常维持在 95%以上。

Durability 持久性

指标说明:系统数据的持久性,即数据在面对故障时的保持能力,用于评估系统的数据安全性。

参考阈值:高持久性表明系统能够有效保护数据,通常应达到 99%以上。

故障恢复时间

指标说明:系统从故障发生到完全恢复所需平均时间,用于评估系统可恢复性。

参考阈值:较短的 MTTR 表示系统能够快速从故障中恢复,具体标准根据业务需求而异。

平均故障间隔时间

指标说明:系统在连续运行中平均经历故障间隔时间,用于评估系统的稳定性。

参考阈值:较长的 MTBF 表示系统较为稳定,具体标准根据业务需求而异。

安全漏洞修复时间

指标说明:发现安全漏洞后系统修复的平均时间,用于评估系统对安全威胁的应对速度。

参考阈值:较短的修复时间有助于降低安全风险,通常在几天到一周之间。

User Satisfaction 用户满意度

指标说明:用户对系统满意度,通过用户反馈和调查评估系统的用户体验。

参考阈值:高用户满意度是系统成功的关键,通常维持在 90%以上。

自动化采纳率

指标说明:系统运维和部署过程中自动化工具和流程采纳程度,用于评估系统运维效率。

参考阈值:较高自动化采纳率表示系统运维更加高效,通常在 70%以上。

❌
❌