<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>问轩博客</title><link>https://www.shnne.com/</link><description>凡夢尋真</description><item><title>在 CentOS 7 上验证是否能访问使用 DigiCert Global Root G2 根证书签发的网站</title><link>https://www.shnne.com/post/6404.html</link><description>&lt;p&gt;在 CentOS 7 上验证是否能访问使用 &lt;strong&gt;DigiCert Global Root G2&lt;/strong&gt; 根证书签发的网站（如 &lt;code&gt;https://www.digicert.com/&lt;/code&gt;），可以通过以下步骤进行验证。这主要涉及检查系统是否信任该根证书、能否成功建立 TLS 连接。&lt;/p&gt;&lt;hr/&gt;&lt;h3&gt;✅ 步骤 1：确认系统时间正确&lt;/h3&gt;&lt;p&gt;TLS 证书验证依赖于系统时间。若时间偏差过大，会导致验证失败。&lt;/p&gt;&lt;pre&gt;date&lt;/pre&gt;&lt;p&gt;如果时间不正确，请同步时间：&lt;/p&gt;&lt;pre&gt;sudo&amp;nbsp;yum&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;ntp
sudo&amp;nbsp;ntpdate&amp;nbsp;pool.ntp.org
#&amp;nbsp;或使用&amp;nbsp;chrony（CentOS&amp;nbsp;7&amp;nbsp;默认可能用&amp;nbsp;chrony）
sudo&amp;nbsp;chronyc&amp;nbsp;sources&amp;nbsp;-v&lt;/pre&gt;&lt;hr/&gt;&lt;h3&gt;✅ 步骤 2：使用 &lt;code&gt;curl&lt;/code&gt; 测试 HTTPS 访问&lt;/h3&gt;&lt;pre&gt;curl&amp;nbsp;-I&amp;nbsp;https://www.digicert.com/&lt;/pre&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;如果返回 HTTP 状态码（如 &lt;code&gt;200 OK&lt;/code&gt; 或 &lt;code&gt;301/302&lt;/code&gt;），说明访问成功，且证书链被系统信任。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;如果出现类似 &lt;code&gt;SSL certificate problem: unable to get local issuer certificate&lt;/code&gt; 错误，说明系统缺少根证书或中间证书。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;p&gt;? &lt;code&gt;curl&lt;/code&gt; 在 CentOS 7 中默认使用系统的 CA 证书包（由 &lt;code&gt;ca-certificates&lt;/code&gt; 软件包提供）。&lt;/p&gt;&lt;/blockquote&gt;&lt;hr/&gt;&lt;h3&gt;✅ 步骤 3：确认 DigiCert Global Root G2 是否在系统信任库中&lt;/h3&gt;&lt;p&gt;DigiCert Global Root G2 的指纹（SHA1）为：&lt;/p&gt;&lt;pre&gt;CB3CCB256E9F84510C9A2E624E87122DBB474DF0&lt;/pre&gt;&lt;p&gt;查看系统是否包含该根证书：&lt;/p&gt;&lt;pre&gt;awk&amp;nbsp;-v&amp;nbsp;cmd=&amp;#39;openssl&amp;nbsp;x509&amp;nbsp;-noout&amp;nbsp;-subject&amp;nbsp;-fingerprint&amp;nbsp;-sha1&amp;#39;&amp;nbsp;&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/BEGIN&amp;nbsp;CERT/,/END&amp;nbsp;CERT/{cert=cert$0&amp;quot;\n&amp;quot;;next}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/END&amp;nbsp;CERT/{print&amp;nbsp;cmd&amp;nbsp;|&amp;nbsp;cert;&amp;nbsp;close(cmd);&amp;nbsp;cert=&amp;quot;&amp;quot;}
&amp;#39;&amp;nbsp;&amp;lt;&amp;nbsp;/etc/ssl/certs/ca-bundle.crt&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-A1&amp;nbsp;&amp;quot;DigiCert&amp;nbsp;Global&amp;nbsp;Root&amp;nbsp;G2&amp;quot;&lt;/pre&gt;&lt;p&gt;或者直接搜索指纹：&lt;/p&gt;&lt;pre&gt;openssl&amp;nbsp;x509&amp;nbsp;-in&amp;nbsp;&amp;lt;(openssl&amp;nbsp;s_client&amp;nbsp;-connect&amp;nbsp;www.digicert.com:443&amp;nbsp;-servername&amp;nbsp;www.digicert.com&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;|&amp;nbsp;sed&amp;nbsp;-n&amp;nbsp;&amp;#39;/-----BEGIN&amp;nbsp;CERTIFICATE-----/,/-----END&amp;nbsp;CERTIFICATE-----/p&amp;#39;)&amp;nbsp;-noout&amp;nbsp;-fingerprint&amp;nbsp;-sha1&lt;/pre&gt;&lt;p&gt;但这只是服务器证书，不是根证书。更可靠的方式是检查本地 CA 包是否包含 DigiCert G2。&lt;/p&gt;&lt;hr/&gt;&lt;h3&gt;✅ 步骤 4：更新 CA 证书包（确保最新）&lt;/h3&gt;&lt;p&gt;DigiCert Global Root G2 自 2017 年起被主流系统信任。但老旧的 CentOS 7 可能未包含（取决于 &lt;code&gt;ca-certificates&lt;/code&gt; 版本）。&lt;/p&gt;&lt;p&gt;更新 CA 证书：&lt;/p&gt;&lt;pre&gt;sudo&amp;nbsp;yum&amp;nbsp;update&amp;nbsp;ca-certificates&lt;/pre&gt;&lt;blockquote&gt;&lt;p&gt;⚠️ 注意：某些非常老的 CentOS 7 镜像（如 7.0~7.4）可能默认不包含 DigiCert G2。建议升级到 &lt;strong&gt;CentOS 7.9&lt;/strong&gt; 并保持 &lt;code&gt;ca-certificates&lt;/code&gt; 最新。&lt;/p&gt;&lt;/blockquote&gt;&lt;hr/&gt;&lt;h3&gt;✅ 步骤 5：使用 &lt;code&gt;openssl&lt;/code&gt; 手动验证 TLS 握手&lt;/h3&gt;&lt;pre&gt;echo&amp;nbsp;|&amp;nbsp;openssl&amp;nbsp;s_client&amp;nbsp;-connect&amp;nbsp;www.digicert.com:443&amp;nbsp;-servername&amp;nbsp;www.digicert.com&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;&amp;quot;Verify&amp;nbsp;return&amp;nbsp;code&amp;quot;&lt;/pre&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;如果输出为 &lt;code&gt;Verify return code: 0 (ok)&lt;/code&gt;，表示验证成功。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;如果是 &lt;code&gt;21&lt;/code&gt; 或其他非零值，说明证书链验证失败。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr/&gt;&lt;h3&gt;? 补充：DigiCert Global Root G2 是否被 CentOS 7 支持？&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;是的&lt;/strong&gt;，只要 &lt;code&gt;ca-certificates&lt;/code&gt; 版本 ≥ &lt;strong&gt;2015.2.6&lt;/strong&gt;（实际在 CentOS 7.6+ 中已包含）。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;可通过以下命令查看版本：&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;rpm&amp;nbsp;-q&amp;nbsp;ca-certificates&lt;/pre&gt;&lt;p&gt;典型输出：&lt;code&gt;ca-certificates-2022.2.54-72.el7_9.noarch&lt;/code&gt;（说明已更新）&lt;/p&gt;&lt;hr/&gt;&lt;h3&gt;✅ 总结：快速验证命令&lt;/h3&gt;&lt;pre&gt;#&amp;nbsp;1.&amp;nbsp;更新证书（推荐）
sudo&amp;nbsp;yum&amp;nbsp;update&amp;nbsp;-y&amp;nbsp;ca-certificates

#&amp;nbsp;2.&amp;nbsp;测试访问
curl&amp;nbsp;-sI&amp;nbsp;https://www.digicert.com/&amp;nbsp;|&amp;nbsp;head&amp;nbsp;-n1

#&amp;nbsp;3.&amp;nbsp;验证&amp;nbsp;TLS&amp;nbsp;证书链
echo&amp;nbsp;|&amp;nbsp;openssl&amp;nbsp;s_client&amp;nbsp;-connect&amp;nbsp;www.digicert.com:443&amp;nbsp;-servername&amp;nbsp;www.digicert.com&amp;nbsp;2&amp;gt;/dev/null&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;&amp;quot;Verify&amp;nbsp;return&amp;nbsp;code&amp;quot;&lt;/pre&gt;&lt;p&gt;如果以上都正常，则说明你的 CentOS 7 系统可以正常访问使用 &lt;strong&gt;DigiCert Global Root G2&lt;/strong&gt; 签发的网站。&lt;/p&gt;&lt;p&gt;如仍有问题，请提供具体错误信息。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 23 Apr 2026 10:11:03 +0800</pubDate></item><item><title>在 CentOS 7 上升级 OpenSSL 到 1.1.1</title><link>https://www.shnne.com/post/6059.html</link><description>&lt;p cid=&quot;n0&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px&quot;&gt;&lt;span md-inline=&quot;plain&quot; class=&quot;md-plain md-expand&quot; style=&quot;box-sizing: border-box&quot;&gt;在 CentOS 7 上升级 OpenSSL 到 1.1.1，最稳妥的方式是&lt;/span&gt;&lt;span md-inline=&quot;strong&quot; class=&quot;md-pair-s &quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;strong style=&quot;box-sizing: border-box&quot;&gt;源码编译安装&lt;/strong&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;。因为 CentOS 7 官方仓库的默认版本是 1.0.2，并且不会提供 1.1.1 的大版本升级。&lt;/span&gt;&lt;/p&gt;&lt;p cid=&quot;n2&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;这里有一个核心原则需要注意：&lt;/span&gt;&lt;span md-inline=&quot;strong&quot; class=&quot;md-pair-s &quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;strong style=&quot;box-sizing: border-box&quot;&gt;不要覆盖系统自带的 OpenSSL 1.0.2&lt;/strong&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;。很多系统工具（如 &lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;yum&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;、&lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;ssh&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;）都依赖旧版本，强行替换可能导致系统故障。我们的目标是“新旧共存”，让需要 TLS 1.3 的新应用（如重新编译 Nginx）能找到新版即可。&lt;/span&gt;&lt;/p&gt;&lt;h3 cid=&quot;n3&quot; mdtype=&quot;heading&quot; class=&quot;md-end-block md-heading&quot; style=&quot;box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;position: relative;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;? 操作步骤：源码编译安装 OpenSSL 1.1.1&lt;/span&gt;&lt;/h3&gt;&lt;h4 cid=&quot;n4&quot; mdtype=&quot;heading&quot; class=&quot;md-end-block md-heading&quot; style=&quot;box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;position: relative;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;1. 安装编译依赖&lt;/span&gt;&lt;/h4&gt;&lt;p cid=&quot;n5&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;首先，需要安装编译所需的工具和库。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;md-fences md-end-block ty-contain-cm modeLoaded&quot; spellcheck=&quot;false&quot; cid=&quot;n6&quot; mdtype=&quot;fences&quot; style=&quot;box-sizing: border-box;overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;border: 1px solid rgb(231, 234, 237);border-radius: 3px;padding: 8px 4px 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);position: relative !important&quot;&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;sudo&lt;/span&gt; yum groupinstall &lt;span style=&quot;box-sizing: border-box;color: #0000CC&quot;&gt;-y&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #AA1111&quot;&gt;&amp;quot;Development Tools&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;sudo&lt;/span&gt; yum install &lt;span style=&quot;box-sizing: border-box;color: #0000CC&quot;&gt;-y&lt;/span&gt; perl-IPC-Cmd perl-core &lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;wget&lt;/span&gt; zlib-devel&lt;/span&gt;&lt;/pre&gt;&lt;h4 cid=&quot;n7&quot; mdtype=&quot;heading&quot; class=&quot;md-end-block md-heading md-focus&quot; style=&quot;box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;position: relative;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif&quot;&gt;&lt;span md-inline=&quot;plain&quot; class=&quot;md-plain md-expand&quot; style=&quot;box-sizing: border-box&quot;&gt;2. 下载并解压源码&lt;/span&gt;&lt;/h4&gt;&lt;p cid=&quot;n8&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;进入一个临时目录，下载 OpenSSL 1.1.1 源码。这里以 1.1.1w 版本为例，你可以在 &lt;/span&gt;&lt;span md-inline=&quot;link&quot; class=&quot;md-meta-i-c  md-link&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;a href=&quot;https://www.openssl.org/source/old/1.1.1/&quot; style=&quot;box-sizing: border-box;cursor: pointer;color: rgb(65, 131, 196);-webkit-user-drag: none&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;OpenSSL 官网&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt; 找到其他小版本。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;md-fences md-end-block ty-contain-cm modeLoaded&quot; spellcheck=&quot;false&quot; cid=&quot;n9&quot; mdtype=&quot;fences&quot; style=&quot;box-sizing: border-box;overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;border: 1px solid rgb(231, 234, 237);border-radius: 3px;padding: 8px 4px 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);position: relative !important&quot;&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 创建工作目录&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;mkdir&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #0000CC&quot;&gt;-p&lt;/span&gt; ~/openssl-build &amp;amp;&amp;amp; &lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;cd&lt;/span&gt; ~/openssl-build&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span cm-text=&quot;&quot; cm-zwsp=&quot;&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 下载源码（请根据需要替换版本号）&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;wget&lt;/span&gt; https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span cm-text=&quot;&quot; cm-zwsp=&quot;&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 解压并进入目录&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;tar &lt;span style=&quot;box-sizing: border-box;color: #0000CC&quot;&gt;-xzf&lt;/span&gt; openssl-1.1.1w.tar.gz&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;cd&lt;/span&gt; openssl-1.1.1w&lt;/span&gt;&lt;/pre&gt;&lt;h4 cid=&quot;n10&quot; mdtype=&quot;heading&quot; class=&quot;md-end-block md-heading&quot; style=&quot;box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;position: relative;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;3. 配置、编译与安装&lt;/span&gt;&lt;/h4&gt;&lt;p cid=&quot;n11&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;这一步是最关键的。配置的核心是&lt;/span&gt;&lt;span md-inline=&quot;strong&quot; class=&quot;md-pair-s &quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;strong style=&quot;box-sizing: border-box&quot;&gt;指定一个独立于系统的安装路径&lt;/strong&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;（如 &lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;/usr/local/openssl-1.1.1&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;），这是实现版本共存的基础。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;md-fences md-end-block ty-contain-cm modeLoaded&quot; spellcheck=&quot;false&quot; cid=&quot;n12&quot; mdtype=&quot;fences&quot; style=&quot;box-sizing: border-box;overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;border: 1px solid rgb(231, 234, 237);border-radius: 3px;padding: 8px 4px 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);position: relative !important&quot;&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 配置安装路径和编译选项&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;./config &lt;span style=&quot;box-sizing: border-box;color: #0000CC&quot;&gt;--prefix&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;color: #981A1A&quot;&gt;=&lt;/span&gt;/usr/local/openssl-1.1.1 \&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;box-sizing: border-box;color: #0000CC&quot;&gt;--openssldir&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;color: #981A1A&quot;&gt;=&lt;/span&gt;/usr/local/openssl-1.1.1/ssl \&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; shared \&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; zlib-dynamic&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span cm-text=&quot;&quot; cm-zwsp=&quot;&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 开始编译（-j$(nproc) 可以利用所有CPU核心加速）&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;make&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #0000CC&quot;&gt;-j&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;color: #009900&quot;&gt;$(nproc)&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span cm-text=&quot;&quot; cm-zwsp=&quot;&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 运行测试（可选，但强烈建议执行，确保编译无误）&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;make&lt;/span&gt; test&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span cm-text=&quot;&quot; cm-zwsp=&quot;&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 安装到指定目录&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;sudo&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;make&lt;/span&gt; install&lt;/span&gt;&lt;/pre&gt;&lt;h3 cid=&quot;n13&quot; mdtype=&quot;heading&quot; class=&quot;md-end-block md-heading&quot; style=&quot;box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;position: relative;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;⚙️ 配置系统识别新版 OpenSSL&lt;/span&gt;&lt;/h3&gt;&lt;p cid=&quot;n14&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;安装完成后，新版 OpenSSL 已存在于 &lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;/usr/local/openssl-1.1.1&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt; 目录，但系统还找不到它。需要完成以下配置：&lt;/span&gt;&lt;/p&gt;&lt;ol start=&quot;&quot; cid=&quot;n15&quot; mdtype=&quot;list&quot; style=&quot;box-sizing: border-box;margin-top: 0.8em;margin-bottom: 0.8em;padding-left: 30px;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px;text-wrap-mode: wrap&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p cid=&quot;n17&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0px;margin-bottom: 0.5rem;white-space-collapse: preserve;position: relative&quot;&gt;&lt;span md-inline=&quot;strong&quot; class=&quot;md-pair-s &quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;strong style=&quot;box-sizing: border-box&quot;&gt;配置动态链接库&lt;/strong&gt;&lt;/span&gt; &lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;让系统能够找到新版 OpenSSL 的动态库文件（&lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;.so&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt; 文件）。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;md-fences md-end-block ty-contain-cm modeLoaded&quot; spellcheck=&quot;false&quot; cid=&quot;n18&quot; mdtype=&quot;fences&quot; style=&quot;box-sizing: border-box;overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;border: 1px solid rgb(231, 234, 237);border-radius: 3px;padding: 8px 4px 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;position: relative !important&quot;&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 创建新的配置文件&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #AA1111&quot;&gt;&amp;#39;/usr/local/openssl-1.1.1/lib&amp;#39;&lt;/span&gt; | &lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;sudo&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;tee&lt;/span&gt; /etc/ld.so.conf.d/openssl-1.1.1.conf&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 更新动态链接库缓存&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;sudo&lt;/span&gt; ldconfig&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p cid=&quot;n20&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0px;margin-bottom: 0.5rem;white-space-collapse: preserve;position: relative&quot;&gt;&lt;span md-inline=&quot;strong&quot; class=&quot;md-pair-s &quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;strong style=&quot;box-sizing: border-box&quot;&gt;配置命令行环境（可选）&lt;/strong&gt;&lt;/span&gt; &lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;如果你希望在终端直接使用新版 &lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;openssl&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt; 命令，可以设置环境变量。建议创建一个独立的脚本，而不是直接覆盖 &lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;/usr/bin/openssl&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;md-fences md-end-block ty-contain-cm modeLoaded&quot; spellcheck=&quot;false&quot; cid=&quot;n21&quot; mdtype=&quot;fences&quot; style=&quot;box-sizing: border-box;overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;border: 1px solid rgb(231, 234, 237);border-radius: 3px;padding: 8px 4px 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;position: relative !important&quot;&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 创建环境变量脚本&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;sudo&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;tee&lt;/span&gt; /etc/profile.d/openssl-1.1.1.sh &amp;lt;&amp;lt; &lt;span style=&quot;box-sizing: border-box;color: #AA1111&quot;&gt;&amp;#39;EOF&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #770088&quot;&gt;export&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #0000FF&quot;&gt;PATH&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;color: #981A1A&quot;&gt;=&lt;/span&gt;/usr/local/openssl-1.1.1/bin:&lt;span style=&quot;box-sizing: border-box;color: #0000FF&quot;&gt;$PATH&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #770088&quot;&gt;export&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #0000FF&quot;&gt;LD_LIBRARY_PATH&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;color: #981A1A&quot;&gt;=&lt;/span&gt;/usr/local/openssl-1.1.1/lib:&lt;span style=&quot;box-sizing: border-box;color: #0000FF&quot;&gt;$LD_LIBRARY_PATH&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #770088&quot;&gt;export&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box;color: #0000FF&quot;&gt;PKG_CONFIG_PATH&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;color: #981A1A&quot;&gt;=&lt;/span&gt;/usr/local/openssl-1.1.1/lib/pkgconfig:&lt;span style=&quot;box-sizing: border-box;color: #0000FF&quot;&gt;$PKG_CONFIG_PATH&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;EOF&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span cm-text=&quot;&quot; cm-zwsp=&quot;&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 加载环境变量（或重新登录终端）&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;source&lt;/span&gt; /etc/profile.d/openssl-1.1.1.sh&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 cid=&quot;n22&quot; mdtype=&quot;heading&quot; class=&quot;md-end-block md-heading&quot; style=&quot;box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;position: relative;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;✅ 验证与后续使用&lt;/span&gt;&lt;/h3&gt;&lt;p cid=&quot;n23&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;完成以上步骤后，进行验证：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;md-fences md-end-block ty-contain-cm modeLoaded&quot; spellcheck=&quot;false&quot; cid=&quot;n24&quot; mdtype=&quot;fences&quot; style=&quot;box-sizing: border-box;overflow: visible;font-family: var(--monospace);font-size: 0.9em;break-inside: avoid;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;border: 1px solid rgb(231, 234, 237);border-radius: 3px;padding: 8px 4px 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);position: relative !important&quot;&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 检查默认命令版本（应显示新版本号 1.1.1w）&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #3300AA&quot;&gt;openssl&lt;/span&gt; version&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span cm-text=&quot;&quot; cm-zwsp=&quot;&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;&lt;span style=&quot;box-sizing: border-box;color: #AA5500&quot;&gt;# 检查系统原生版本（应仍为旧版本 1.0.2k）&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span role=&quot;presentation&quot; style=&quot;box-sizing: border-box;padding-right: 0.1px&quot;&gt;/usr/bin/openssl version&lt;/span&gt;&lt;/pre&gt;&lt;p cid=&quot;n25&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px&quot;&gt;&lt;span md-inline=&quot;strong&quot; class=&quot;md-pair-s &quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;strong style=&quot;box-sizing: border-box&quot;&gt;后续提醒&lt;/strong&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul cid=&quot;n26&quot; mdtype=&quot;list&quot; data-mark=&quot;-&quot; style=&quot;box-sizing: border-box;margin-top: 0.8em;padding-left: 30px;position: relative;color: rgb(51, 51, 51);font-family: &amp;#39;Open Sans&amp;#39;, &amp;#39;Clear Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size: 16px;text-wrap-mode: wrap&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p cid=&quot;n28&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0px;margin-bottom: 0.5rem;white-space-collapse: preserve;position: relative&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;本次操作仅为系统安装了 OpenSSL 1.1.1 的库和命令。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p cid=&quot;n30&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0px;margin-bottom: 0.5rem;white-space-collapse: preserve;position: relative&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;若要让你的 Nginx 支持 TLS 1.3，还需要&lt;/span&gt;&lt;span md-inline=&quot;strong&quot; class=&quot;md-pair-s &quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;strong style=&quot;box-sizing: border-box&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;使用这个新路径（&lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;--with-openssl=/usr/local/openssl-1.1.1&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;）重新编译 Nginx&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;，让 Nginx 在编译时链接到新的 OpenSSL 库。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p cid=&quot;n32&quot; mdtype=&quot;paragraph&quot; class=&quot;md-end-block md-p&quot; style=&quot;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0px;margin-bottom: 0.5rem;white-space-collapse: preserve;position: relative&quot;&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt;如果在验证时发现 &lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;openssl version&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; style=&quot;box-sizing: border-box&quot;&gt; 显示的版本号未变，请重新登录 SSH 会话或检查 &lt;/span&gt;&lt;span md-inline=&quot;code&quot; spellcheck=&quot;false&quot; style=&quot;box-sizing: border-box&quot;&gt;&lt;code style=&quot;box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border: 1px solid rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding: 0px 2px;font-size: 0.9em&quot;&gt;source&lt;/code&gt;&lt;/span&gt;&lt;span md-inline=&quot;plain&quot; class=&quot;md-plain md-expand&quot; style=&quot;box-sizing: border-box&quot;&gt; 命令是否已正确执行。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 07 Apr 2026 09:34:47 +0800</pubDate></item><item><title>VMware克隆Ubuntu网络配置冲突问题</title><link>https://www.shnne.com/post/4935.html</link><description>&lt;p&gt;这个问题通常是因为两台虚拟机使用了相同的 &lt;strong&gt;MAC 地址&lt;/strong&gt; 或 &lt;strong&gt;机器 ID（machine-id）&lt;/strong&gt; 导致的网络配置冲突。在 VMware 中克隆 Ubuntu 系统时，如果没有特殊处理，克隆出的虚拟机可能会保留原虚拟机的网络标识信息，导致冲突。&lt;/p&gt;&lt;h3&gt;主要可能原因及解决方法：&lt;/h3&gt;&lt;h4&gt;1. &lt;strong&gt;MAC 地址冲突&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;克隆虚拟机时，如果选择了“创建完整克隆”但未重新生成 MAC 地址，可能会导致两台虚拟机使用相同的 MAC 地址。&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;解决步骤&lt;/strong&gt;：&lt;/p&gt;&lt;/li&gt;&lt;ol class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;关闭两台虚拟机。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;在 VMware 中编辑每台虚拟机的设置，确保&lt;strong&gt;网络适配器&lt;/strong&gt;中的 MAC 地址不同（可以点击“生成”按钮重新生成）。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;启动虚拟机后，可能需要更新网络配置文件中的 MAC 地址绑定（如果使用了静态 IP 且绑定了 MAC）。&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ul&gt;&lt;h4&gt;2. &lt;strong&gt;机器 ID（/etc/machine-id）重复&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;Ubuntu 使用 &lt;code&gt;/etc/machine-id&lt;/code&gt; 作为唯一标识，如果克隆后未重新生成，可能导致网络服务（如 DHCP、Avahi 等）行为异常。&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;解决步骤&lt;/strong&gt;：&lt;/p&gt;&lt;/li&gt;&lt;ol class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;启动第二台虚拟机（第一台关闭）。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;在第二台虚拟机中执行以下命令：&lt;/p&gt;&lt;pre&gt;sudo&amp;nbsp;rm&amp;nbsp;/etc/machine-id
sudo&amp;nbsp;systemd-machine-id-setup&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;重启网络服务或直接重启虚拟机。&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ul&gt;&lt;h4&gt;3. &lt;strong&gt;DHCP 租约冲突&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;如果使用了 DHCP 且两台虚拟机在 DHCP 服务器中使用了相同的标识，可能导致 IP 分配冲突。&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;解决&lt;/strong&gt;：
在 DHCP 服务器上清除旧租约，或确保两台虚拟机的唯一标识不同。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;4. &lt;strong&gt;静态 IP 配置冲突&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;检查两台虚拟机的网络配置文件，确保 IP 地址、网关、DNS 等配置正确且不冲突。&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;配置文件路径&lt;/strong&gt;（根据 Ubuntu 版本）：&lt;/p&gt;&lt;/li&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;p&gt;Ubuntu 18.04+：&lt;code&gt;/etc/netplan/*.yaml&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Ubuntu 16.04：&lt;code&gt;/etc/network/interfaces&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;示例 Netplan 配置&lt;/strong&gt;（确保每台设备的 &lt;code&gt;addresses&lt;/code&gt; 唯一）：&lt;/p&gt;&lt;pre&gt;network:
&amp;nbsp;&amp;nbsp;version:&amp;nbsp;2
&amp;nbsp;&amp;nbsp;ethernets:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ens33:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addresses:&amp;nbsp;[10.0.0.101/24]&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;另一台改为&amp;nbsp;10.0.0.250/24
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gateway4:&amp;nbsp;10.0.0.1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nameservers:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addresses:&amp;nbsp;[8.8.8.8]&lt;/pre&gt;&lt;p&gt;应用配置：&lt;code&gt;sudo netplan apply&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;5. &lt;strong&gt;ARP 缓存问题&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;主机或网络设备可能缓存了 IP 与 MAC 的映射关系，导致流量被错误转发。&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;在主机（或路由器）上清除 ARP 缓存&lt;/strong&gt;：&lt;/p&gt;&lt;pre&gt;#&amp;nbsp;Windows&amp;nbsp;主机
arp&amp;nbsp;-d&amp;nbsp;10.0.0.101
arp&amp;nbsp;-d&amp;nbsp;10.0.0.250

#&amp;nbsp;Linux&amp;nbsp;主机
sudo&amp;nbsp;ip&amp;nbsp;neigh&amp;nbsp;flush&amp;nbsp;dev&amp;nbsp;&amp;lt;网卡名&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;6. &lt;strong&gt;检查 VMware 网络模式&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;确保两台虚拟机使用相同的网络模式（如 NAT、桥接等），且网络配置允许同时运行多台设备。&lt;/p&gt;&lt;h3&gt;建议操作顺序：&lt;/h3&gt;&lt;ol class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;修改 MAC 地址&lt;/strong&gt;（在 VMware 设置中）。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;更新网络配置文件&lt;/strong&gt;，确保 IP 地址正确。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;重新生成 &lt;code&gt;machine-id&lt;/code&gt;&lt;/strong&gt;（仅第二台需要）。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;重启两台虚拟机&lt;/strong&gt;，并检查网络状态：&lt;code&gt;ip addr show&lt;/code&gt;。&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;如果问题依旧，可以在两台虚拟机上抓包分析（如 &lt;code&gt;tcpdump -i ens33 -n&lt;/code&gt;），观察 ARP 请求和响应情况。&lt;/p&gt;</description><pubDate>Wed, 11 Feb 2026 09:18:28 +0800</pubDate></item><item><title>01-二进制部署docker安装和卸载</title><link>https://www.shnne.com/post/4493.html</link><description>&lt;h4&gt;一、安装&lt;/h4&gt;&lt;h6&gt;1.下载安装包&lt;/h6&gt;&lt;p&gt;参考地址：&lt;a href=&quot;https://docs.docker.com/engine/install/binaries/#install-daemon-and-client-binaries-on-linux&quot; target=&quot;_blank&quot; class=&quot;url&quot;&gt;https://docs.docker.com/engine/install/binaries/#install-daemon-and-client-binaries-on-linux&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;root@docker:~#&amp;nbsp;wget&amp;nbsp;https://download.docker.com/linux/static/stable/x86_64/docker-27.0.3.tgz&lt;/pre&gt;&lt;h6&gt;2.解压软件包&lt;/h6&gt;&lt;pre&gt;root@docker:~#&amp;nbsp;tar&amp;nbsp;xf&amp;nbsp;docker-27.0.3.tgz&lt;/pre&gt;&lt;h6&gt;3.拷贝到PATH变量&lt;/h6&gt;&lt;pre&gt;root@docker:~#&amp;nbsp;cp&amp;nbsp;docker/*&amp;nbsp;/usr/local/bin/&lt;/pre&gt;&lt;h6&gt;4.启动docker&lt;/h6&gt;&lt;pre&gt;root@docker:~#&amp;nbsp;dockerd&amp;nbsp;&amp;amp;&lt;/pre&gt;&lt;h6&gt;5.查看docker的版本号&lt;/h6&gt;&lt;pre&gt;root@docker:~#&amp;nbsp;docker&amp;nbsp;version
Client:
&amp;nbsp;Version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;27.0.3
&amp;nbsp;API&amp;nbsp;version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.46
&amp;nbsp;Go&amp;nbsp;version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;go1.21.11
&amp;nbsp;Git&amp;nbsp;commit:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7d4bcd8
&amp;nbsp;Built:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sat&amp;nbsp;Jun&amp;nbsp;29&amp;nbsp;00:01:25&amp;nbsp;2024
&amp;nbsp;OS/Arch:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;linux/amd64
&amp;nbsp;Context:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default

Server:&amp;nbsp;Docker&amp;nbsp;Engine&amp;nbsp;-&amp;nbsp;Community
&amp;nbsp;Engine:
&amp;nbsp;&amp;nbsp;Version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;27.0.3
&amp;nbsp;&amp;nbsp;API&amp;nbsp;version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.46&amp;nbsp;(minimum&amp;nbsp;version&amp;nbsp;1.24)
&amp;nbsp;&amp;nbsp;Go&amp;nbsp;version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;go1.21.11
&amp;nbsp;&amp;nbsp;Git&amp;nbsp;commit:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;662f78c
&amp;nbsp;&amp;nbsp;Built:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sat&amp;nbsp;Jun&amp;nbsp;29&amp;nbsp;00:03:05&amp;nbsp;2024
&amp;nbsp;&amp;nbsp;OS/Arch:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;linux/amd64
&amp;nbsp;&amp;nbsp;Experimental:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;false
&amp;nbsp;containerd:
&amp;nbsp;&amp;nbsp;Version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v1.7.18
&amp;nbsp;&amp;nbsp;GitCommit:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ae71819c4f5e67bb4d5ae76a6b735f29cc25774e
&amp;nbsp;runc:
&amp;nbsp;&amp;nbsp;Version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.1.13
&amp;nbsp;&amp;nbsp;GitCommit:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v1.1.13-0-g58aa920
&amp;nbsp;docker-init:
&amp;nbsp;&amp;nbsp;Version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.19.0
&amp;nbsp;&amp;nbsp;GitCommit:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;de40ad0&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h5&gt;二、卸载&lt;/h5&gt;&lt;h6&gt;1.停止docker服务&lt;/h6&gt;&lt;pre&gt;root@docker:~#&amp;nbsp;pkill&amp;nbsp;dockerd&lt;/pre&gt;&lt;p&gt;温馨提示:
	停止服务后，再次版本会出现如下的提示
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?&lt;/p&gt;&lt;h6&gt;2.删除docker相关的程序&lt;/h6&gt;&lt;pre&gt;root@docker:~#&amp;nbsp;for&amp;nbsp;i&amp;nbsp;in&amp;nbsp;`ls&amp;nbsp;docker`;do&amp;nbsp;rm&amp;nbsp;-f&amp;nbsp;/usr/local/bin/$i&amp;nbsp;;done&lt;/pre&gt;&lt;h6&gt;3.查看卸载结果&lt;/h6&gt;&lt;pre&gt;root@docker101:~#&amp;nbsp;docker

Command&amp;nbsp;&amp;#39;docker&amp;#39;&amp;nbsp;not&amp;nbsp;found,&amp;nbsp;but&amp;nbsp;can&amp;nbsp;be&amp;nbsp;installed&amp;nbsp;with:

snap&amp;nbsp;install&amp;nbsp;docker&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;version&amp;nbsp;24.0.5,&amp;nbsp;or
apt&amp;nbsp;&amp;nbsp;install&amp;nbsp;docker.io&amp;nbsp;&amp;nbsp;#&amp;nbsp;version&amp;nbsp;20.10.12-0ubuntu2~20.04.1

See&amp;nbsp;&amp;#39;snap&amp;nbsp;info&amp;nbsp;docker&amp;#39;&amp;nbsp;for&amp;nbsp;additional&amp;nbsp;versions.&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Tue, 20 Jan 2026 09:26:36 +0800</pubDate></item><item><title>Ubuntu24.04如何部署gitlab</title><link>https://www.shnne.com/post/4265.html</link><description>&lt;p&gt;在 Ubuntu 24.04 上部署 GitLab 有多种方式，以下是几种常见的方法：&lt;/p&gt;&lt;h2&gt;方法一：使用官方 Omnibus 包（推荐）&lt;/h2&gt;&lt;h3&gt;1. 安装必要依赖&lt;/h3&gt;&lt;pre&gt;sudo&amp;nbsp;apt&amp;nbsp;update
sudo&amp;nbsp;apt&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;curl&amp;nbsp;openssh-server&amp;nbsp;ca-certificates&amp;nbsp;tzdata&amp;nbsp;perl&lt;/pre&gt;&lt;h3&gt;2. 添加 GitLab 官方仓库&lt;/h3&gt;&lt;pre&gt;#&amp;nbsp;信任&amp;nbsp;GitLab&amp;nbsp;GPG&amp;nbsp;密钥
curl&amp;nbsp;-fsSL&amp;nbsp;https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey&amp;nbsp;|&amp;nbsp;sudo&amp;nbsp;gpg&amp;nbsp;--dearmor&amp;nbsp;-o&amp;nbsp;/etc/apt/keyrings/gitlab.gpg

#&amp;nbsp;添加仓库
echo&amp;nbsp;&amp;quot;deb&amp;nbsp;[signed-by=/etc/apt/keyrings/gitlab.gpg]&amp;nbsp;https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu&amp;nbsp;$(lsb_release&amp;nbsp;-cs)&amp;nbsp;main&amp;quot;&amp;nbsp;|&amp;nbsp;sudo&amp;nbsp;tee&amp;nbsp;/etc/apt/sources.list.d/gitlab_gitlab-ce.list&lt;/pre&gt;&lt;h3&gt;3. 安装 GitLab CE&lt;/h3&gt;&lt;pre&gt;sudo&amp;nbsp;apt&amp;nbsp;update
sudo&amp;nbsp;apt&amp;nbsp;install&amp;nbsp;gitlab-ce&lt;/pre&gt;&lt;h3&gt;4. 配置 GitLab&lt;/h3&gt;&lt;pre&gt;#&amp;nbsp;编辑配置文件
sudo&amp;nbsp;nano&amp;nbsp;/etc/gitlab/gitlab.rb

#&amp;nbsp;修改关键配置（根据你的环境调整）
external_url&amp;nbsp;&amp;#39;http://your-domain.com&amp;#39;&amp;nbsp;&amp;nbsp;#&amp;nbsp;或&amp;nbsp;&amp;#39;http://your-server-ip&amp;#39;&lt;/pre&gt;&lt;h3&gt;5. 重新配置并启动&lt;/h3&gt;&lt;pre&gt;sudo&amp;nbsp;gitlab-ctl&amp;nbsp;reconfigure
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;start

#&amp;nbsp;查看状态
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;status&lt;/pre&gt;&lt;h2&gt;方法二：使用 Docker 部署&lt;/h2&gt;&lt;h3&gt;1. 安装 Docker&lt;/h3&gt;&lt;pre&gt;sudo&amp;nbsp;apt&amp;nbsp;update
sudo&amp;nbsp;apt&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;docker.io&amp;nbsp;docker-compose

#&amp;nbsp;启动&amp;nbsp;Docker&amp;nbsp;服务
sudo&amp;nbsp;systemctl&amp;nbsp;enable&amp;nbsp;--now&amp;nbsp;docker&lt;/pre&gt;&lt;h3&gt;2. 创建 docker-compose.yml&lt;/h3&gt;&lt;pre&gt;mkdir&amp;nbsp;gitlab-docker&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;cd&amp;nbsp;gitlab-docker
nano&amp;nbsp;docker-compose.yml&lt;/pre&gt;&lt;pre&gt;version:&amp;nbsp;&amp;#39;3.6&amp;#39;
services:
&amp;nbsp;&amp;nbsp;web:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image:&amp;nbsp;&amp;#39;gitlab/gitlab-ce:latest&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;restart:&amp;nbsp;always
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hostname:&amp;nbsp;&amp;#39;gitlab.example.com&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;environment:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GITLAB_OMNIBUS_CONFIG:&amp;nbsp;|
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;external_url&amp;nbsp;&amp;#39;http://your-server-ip&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;可添加其他配置
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ports:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;#39;80:80&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;#39;443:443&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;#39;22:22&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;volumes:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;#39;./config:/etc/gitlab&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;#39;./logs:/var/log/gitlab&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;#39;./data:/var/opt/gitlab&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;shm_size:&amp;nbsp;&amp;#39;256m&amp;#39;&lt;/pre&gt;&lt;h3&gt;3. 启动 GitLab&lt;/h3&gt;&lt;pre&gt;docker-compose&amp;nbsp;up&amp;nbsp;-d

#&amp;nbsp;查看日志
docker-compose&amp;nbsp;logs&amp;nbsp;-f&lt;/pre&gt;&lt;h2&gt;方法三：使用 Snap 包（最简单）&lt;/h2&gt;&lt;pre&gt;#&amp;nbsp;安装&amp;nbsp;Snap（如果未安装）
sudo&amp;nbsp;apt&amp;nbsp;update
sudo&amp;nbsp;apt&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;snapd

#&amp;nbsp;安装&amp;nbsp;GitLab
sudo&amp;nbsp;snap&amp;nbsp;install&amp;nbsp;gitlab-ce

#&amp;nbsp;配置
sudo&amp;nbsp;snap&amp;nbsp;set&amp;nbsp;gitlab-ce&amp;nbsp;external-url=&amp;quot;http://your-server-ip&amp;quot;

#&amp;nbsp;等待配置完成（大约需要几分钟）
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;reconfigure&lt;/pre&gt;&lt;h2&gt;初始配置和访问&lt;/h2&gt;&lt;h3&gt;1. 获取初始 root 密码&lt;/h3&gt;&lt;pre&gt;#&amp;nbsp;Omnibus&amp;nbsp;安装
sudo&amp;nbsp;cat&amp;nbsp;/etc/gitlab/initial_root_password

#&amp;nbsp;Docker&amp;nbsp;安装
docker&amp;nbsp;exec&amp;nbsp;-it&amp;nbsp;gitlab-docker_web_1&amp;nbsp;grep&amp;nbsp;&amp;#39;Password:&amp;#39;&amp;nbsp;/etc/gitlab/initial_root_password&lt;/pre&gt;&lt;h3&gt;2. 访问 GitLab&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;打开浏览器访问：&lt;code&gt;http://your-server-ip&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;使用用户名：&lt;code&gt;root&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;使用上面获取的密码&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;3. 常用管理命令&lt;/h3&gt;&lt;pre&gt;#&amp;nbsp;查看状态
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;status

#&amp;nbsp;启动/停止/重启服务
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;start
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;stop
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;restart

#&amp;nbsp;查看日志
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;tail

#&amp;nbsp;重新配置
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;reconfigure

#&amp;nbsp;更新&amp;nbsp;GitLab
sudo&amp;nbsp;apt&amp;nbsp;update
sudo&amp;nbsp;apt&amp;nbsp;install&amp;nbsp;gitlab-ce
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;reconfigure&lt;/pre&gt;&lt;h2&gt;配置优化建议&lt;/h2&gt;&lt;h3&gt;1. 调整资源配置&lt;/h3&gt;&lt;p&gt;编辑 &lt;code&gt;/etc/gitlab/gitlab.rb&lt;/code&gt;：&lt;/p&gt;&lt;pre&gt;#&amp;nbsp;根据服务器内存调整
puma[&amp;#39;worker_processes&amp;#39;]&amp;nbsp;=&amp;nbsp;2&amp;nbsp;&amp;nbsp;#&amp;nbsp;默认为&amp;nbsp;CPU&amp;nbsp;核心数
sidekiq[&amp;#39;concurrency&amp;#39;]&amp;nbsp;=&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;默认为&amp;nbsp;25

#&amp;nbsp;PostgreSQL&amp;nbsp;配置
postgresql[&amp;#39;shared_buffers&amp;#39;]&amp;nbsp;=&amp;nbsp;&amp;quot;256MB&amp;quot;
postgresql[&amp;#39;max_worker_processes&amp;#39;]&amp;nbsp;=&amp;nbsp;8

#&amp;nbsp;Redis&amp;nbsp;配置
redis[&amp;#39;maxmemory&amp;#39;]&amp;nbsp;=&amp;nbsp;&amp;quot;256mb&amp;quot;&lt;/pre&gt;&lt;h3&gt;2. 配置电子邮件&lt;/h3&gt;&lt;pre&gt;gitlab_rails[&amp;#39;smtp_enable&amp;#39;]&amp;nbsp;=&amp;nbsp;true
gitlab_rails[&amp;#39;smtp_address&amp;#39;]&amp;nbsp;=&amp;nbsp;&amp;quot;smtp.gmail.com&amp;quot;
gitlab_rails[&amp;#39;smtp_port&amp;#39;]&amp;nbsp;=&amp;nbsp;587
gitlab_rails[&amp;#39;smtp_user_name&amp;#39;]&amp;nbsp;=&amp;nbsp;&amp;quot;your-email@gmail.com&amp;quot;
gitlab_rails[&amp;#39;smtp_password&amp;#39;]&amp;nbsp;=&amp;nbsp;&amp;quot;your-password&amp;quot;
gitlab_rails[&amp;#39;smtp_domain&amp;#39;]&amp;nbsp;=&amp;nbsp;&amp;quot;gmail.com&amp;quot;
gitlab_rails[&amp;#39;smtp_authentication&amp;#39;]&amp;nbsp;=&amp;nbsp;&amp;quot;login&amp;quot;
gitlab_rails[&amp;#39;smtp_enable_starttls_auto&amp;#39;]&amp;nbsp;=&amp;nbsp;true
gitlab_rails[&amp;#39;smtp_tls&amp;#39;]&amp;nbsp;=&amp;nbsp;false
gitlab_rails[&amp;#39;gitlab_email_from&amp;#39;]&amp;nbsp;=&amp;nbsp;&amp;#39;your-email@gmail.com&amp;#39;&lt;/pre&gt;&lt;h3&gt;3. 启用 HTTPS（需要域名和 SSL 证书）&lt;/h3&gt;&lt;pre&gt;external_url&amp;nbsp;&amp;#39;https://gitlab.example.com&amp;#39;

#&amp;nbsp;使用&amp;nbsp;Let&amp;#39;s&amp;nbsp;Encrypt
letsencrypt[&amp;#39;enable&amp;#39;]&amp;nbsp;=&amp;nbsp;true
letsencrypt[&amp;#39;contact_emails&amp;#39;]&amp;nbsp;=&amp;nbsp;[&amp;#39;admin@example.com&amp;#39;]
letsencrypt[&amp;#39;auto_renew&amp;#39;]&amp;nbsp;=&amp;nbsp;true&lt;/pre&gt;&lt;h2&gt;防火墙配置&lt;/h2&gt;&lt;pre&gt;#&amp;nbsp;开放必要端口
sudo&amp;nbsp;ufw&amp;nbsp;allow&amp;nbsp;http
sudo&amp;nbsp;ufw&amp;nbsp;allow&amp;nbsp;https
sudo&amp;nbsp;ufw&amp;nbsp;allow&amp;nbsp;ssh
sudo&amp;nbsp;ufw&amp;nbsp;allow&amp;nbsp;22/tcp&amp;nbsp;&amp;nbsp;#&amp;nbsp;Git&amp;nbsp;over&amp;nbsp;SSH

#&amp;nbsp;启用防火墙
sudo&amp;nbsp;ufw&amp;nbsp;enable
sudo&amp;nbsp;ufw&amp;nbsp;status&lt;/pre&gt;&lt;h2&gt;备份和恢复&lt;/h2&gt;&lt;pre&gt;#&amp;nbsp;创建备份
sudo&amp;nbsp;gitlab-backup&amp;nbsp;create

#&amp;nbsp;备份存储在&amp;nbsp;/var/opt/gitlab/backups/
#&amp;nbsp;恢复备份（需要先停止服务）
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;stop&amp;nbsp;unicorn
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;stop&amp;nbsp;sidekiq
sudo&amp;nbsp;gitlab-rake&amp;nbsp;gitlab:backup:restore&amp;nbsp;BACKUP=备份文件名
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;start&lt;/pre&gt;&lt;h2&gt;常见问题解决&lt;/h2&gt;&lt;h3&gt;1. 502 错误&lt;/h3&gt;&lt;pre&gt;#&amp;nbsp;检查服务状态
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;status

#&amp;nbsp;查看日志
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;tail&amp;nbsp;nginx
sudo&amp;nbsp;gitlab-ctl&amp;nbsp;tail&amp;nbsp;puma&lt;/pre&gt;&lt;h3&gt;2. 内存不足&lt;/h3&gt;&lt;pre&gt;#&amp;nbsp;增加交换空间
sudo&amp;nbsp;fallocate&amp;nbsp;-l&amp;nbsp;4G&amp;nbsp;/swapfile
sudo&amp;nbsp;chmod&amp;nbsp;600&amp;nbsp;/swapfile
sudo&amp;nbsp;mkswap&amp;nbsp;/swapfile
sudo&amp;nbsp;swapon&amp;nbsp;/swapfile

#&amp;nbsp;永久添加
echo&amp;nbsp;&amp;#39;/swapfile&amp;nbsp;none&amp;nbsp;swap&amp;nbsp;sw&amp;nbsp;0&amp;nbsp;0&amp;#39;&amp;nbsp;|&amp;nbsp;sudo&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;/etc/fstab&lt;/pre&gt;&lt;h3&gt;3. 启动缓慢&lt;/h3&gt;&lt;p&gt;首次启动需要较长时间（10-30分钟），请耐心等待。&lt;/p&gt;&lt;h2&gt;系统要求建议&lt;/h2&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;最低配置&lt;/strong&gt;：4GB RAM，2 CPU 核心，10GB 存储&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;推荐配置&lt;/strong&gt;：8GB RAM，4 CPU 核心，50GB+ 存储&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;支持 100 用户以上&lt;/strong&gt;：16GB RAM，8 CPU 核心，100GB+ 存储&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;选择哪种方式取决于你的需求：&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;生产环境&lt;/strong&gt;：推荐 Omnibus 包&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;测试/开发&lt;/strong&gt;：Docker 或 Snap&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;快速体验&lt;/strong&gt;：Snap 最简单&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><pubDate>Thu, 08 Jan 2026 15:02:49 +0800</pubDate></item><item><title>对容器进行压测</title><link>https://www.shnne.com/post/4085.html</link><description>&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: decimal;&quot;&gt;&lt;li&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-q10foy&quot; id=&quot;user-content-1启动容器&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 16px; font-family: Roboto, system-ui, sans-serif; font-weight: 500; font-size: 1.5rem; line-height: 1.333; letter-spacing: 0px; border-bottom: 1px solid var(--mui-palette-divider); position: relative; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;启动容器&lt;/h3&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4 style=&quot;box-sizing: inherit; margin: 24px 0px; font-family: Roboto, system-ui, sans-serif; font-weight: 500; font-size: 1.143rem; line-height: 1.333; letter-spacing: 0px; position: relative; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;拉取：docker pull jasonyin2020/oldboyedu-linux-tools:v0.1&lt;/h4&gt;(1).运行容器&lt;div class=&quot;MuiBox-root css-14tyjzo&quot; style=&quot;box-sizing: inherit; height: 41px; margin-top: 16px; margin-bottom: 16px; font-family: Roboto, system-ui, sans-serif; letter-spacing: 0.28px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;MuiStack-root css-1g4yje1&quot; style=&quot;box-sizing: inherit; display: flex; flex-direction: column; height: 41px;&quot;&gt;&lt;div class=&quot;MuiBox-root css-mu0cnk&quot; style=&quot;box-sizing: inherit; min-height: 0px; position: relative;&quot;&gt;&lt;pre class=&quot;MuiBox-root css-15znsqi&quot; tabindex=&quot;0&quot; style=&quot;box-sizing: inherit; height: 41px; overflow: auto; padding: 8px; min-height: 41px; border-radius: 4px; color: var(--mui-palette-docker-grey-700, #393F49); background-color: var(--mui-palette-background-secondary, #F9F9FA); border-width: 1px; border-style: solid; border-color: var(--mui-palette-docker-grey-100, #F4F4F6); margin-top: 0px; margin-bottom: 0px;&quot;&gt;docker&amp;nbsp;container&amp;nbsp;run&amp;nbsp;--rm&amp;nbsp;-it&amp;nbsp;&amp;nbsp;--name&amp;nbsp;oldboyedu-linux&amp;nbsp;&amp;nbsp;-m&amp;nbsp;1g&amp;nbsp;--cpus=2&amp;nbsp;jasonyin2020/oldboyedu-linux-tools:v0.1&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-1acd36n&quot; id=&quot;user-content-2单独开启一个终端查看容器状态&quot; style=&quot;box-sizing: inherit; margin: 24px 0px; font-family: Roboto, system-ui, sans-serif; font-weight: 500; font-size: 1.143rem; line-height: 1.333; letter-spacing: 0px; position: relative; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1wqeyfi&quot; href=&quot;https://hub.docker.com/r/jasonyin2020/oldboyedu-linux-tools#2%E5%8D%95%E7%8B%AC%E5%BC%80%E5%90%AF%E4%B8%80%E4%B8%AA%E7%BB%88%E7%AB%AF%E6%9F%A5%E7%9C%8B%E5%AE%B9%E5%99%A8%E7%8A%B6%E6%80%81&quot; data-discover=&quot;true&quot; style=&quot;box-sizing: inherit; margin: 0px; font: inherit; letter-spacing: inherit; --Link-underlineColor: rgba(var(--mui-palette-primary-mainChannel) / 0.4); text-decoration-color: inherit; opacity: 0; position: absolute; left: -28px; top: 10.2188px; transform: translate(0px, -50%); padding-right: 8px;&quot;&gt;&lt;svg viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium icon-link css-foypc2&quot; focusable=&quot;false&quot; aria-hidden=&quot;true&quot; data-testid=&quot;LinkIcon&quot;&gt;&lt;path d=&quot;M12.7076 18.3639L11.2933 19.7781C9.34072 21.7308 6.1749 21.7308 4.22228 19.7781C2.26966 17.8255 2.26966 14.6597 4.22228 12.7071L5.63649 11.2929M18.3644 12.7071L19.7786 11.2929C21.7312 9.34024 21.7312 6.17441 19.7786 4.22179C17.826 2.26917 14.6602 2.26917 12.7076 4.22179L11.2933 5.636M8.50045 15.4999L15.5005 8.49994&quot; stroke=&quot;currentColor&quot; fill=&quot;none&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;(2).单独开启一个终端，查看容器状态&lt;/h6&gt;&lt;div class=&quot;MuiBox-root css-14tyjzo&quot; style=&quot;box-sizing: inherit; height: 41px; margin-top: 16px; margin-bottom: 16px; font-family: Roboto, system-ui, sans-serif; letter-spacing: 0.28px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;MuiStack-root css-1g4yje1&quot; style=&quot;box-sizing: inherit; display: flex; flex-direction: column; height: 41px;&quot;&gt;&lt;div class=&quot;MuiBox-root css-mu0cnk&quot; style=&quot;box-sizing: inherit; min-height: 0px; position: relative;&quot;&gt;&lt;pre class=&quot;MuiBox-root css-15znsqi&quot; tabindex=&quot;0&quot; style=&quot;box-sizing: inherit; height: 41px; overflow: auto; padding: 8px; min-height: 41px; border-radius: 4px; color: var(--mui-palette-docker-grey-700, #393F49); background-color: var(--mui-palette-background-secondary, #F9F9FA); border-width: 1px; border-style: solid; border-color: var(--mui-palette-docker-grey-100, #F4F4F6); margin-top: 0px; margin-bottom: 0px;&quot;&gt;docker&amp;nbsp;stats&amp;nbsp;oldboyedu-linux&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-q10foy&quot; id=&quot;user-content-对容器进行压测&quot; style=&quot;box-sizing: inherit; margin: 24px 0px 16px; font-family: Roboto, system-ui, sans-serif; font-weight: 500; font-size: 1.5rem; line-height: 1.333; letter-spacing: 0px; border-bottom: 1px solid var(--mui-palette-divider); position: relative; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1wqeyfi&quot; href=&quot;https://hub.docker.com/r/jasonyin2020/oldboyedu-linux-tools#%E5%AF%B9%E5%AE%B9%E5%99%A8%E8%BF%9B%E8%A1%8C%E5%8E%8B%E6%B5%8B&quot; data-discover=&quot;true&quot; style=&quot;box-sizing: inherit; margin: 0px; font: inherit; letter-spacing: inherit; --Link-underlineColor: rgba(var(--mui-palette-primary-mainChannel) / 0.4); text-decoration-color: inherit; opacity: 0; position: absolute; left: -32px; top: 13.9844px; transform: translate(0px, -50%); padding-right: 8px;&quot;&gt;&lt;svg viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium icon-link css-foypc2&quot; focusable=&quot;false&quot; aria-hidden=&quot;true&quot; data-testid=&quot;LinkIcon&quot;&gt;&lt;path d=&quot;M12.7076 18.3639L11.2933 19.7781C9.34072 21.7308 6.1749 21.7308 4.22228 19.7781C2.26966 17.8255 2.26966 14.6597 4.22228 12.7071L5.63649 11.2929M18.3644 12.7071L19.7786 11.2929C21.7312 9.34024 21.7312 6.17441 19.7786 4.22179C17.826 2.26917 14.6602 2.26917 12.7076 4.22179L11.2933 5.636M8.50045 15.4999L15.5005 8.49994&quot; stroke=&quot;currentColor&quot; fill=&quot;none&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;对容器进行压测&lt;/h3&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-1acd36n&quot; id=&quot;user-content-1cpu压力测试------产生4个cpu进程1分钟后停止运行注意观察cpu的使用率尽管我指定了4颗cpu但应该不会超过200&quot; style=&quot;box-sizing: inherit; margin: 24px 0px; font-family: Roboto, system-ui, sans-serif; font-weight: 500; font-size: 1.143rem; line-height: 1.333; letter-spacing: 0px; position: relative; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1wqeyfi&quot; href=&quot;https://hub.docker.com/r/jasonyin2020/oldboyedu-linux-tools#1cpu%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95------%E4%BA%A7%E7%94%9F4%E4%B8%AAcpu%E8%BF%9B%E7%A8%8B1%E5%88%86%E9%92%9F%E5%90%8E%E5%81%9C%E6%AD%A2%E8%BF%90%E8%A1%8C%E6%B3%A8%E6%84%8F%E8%A7%82%E5%AF%9Fcpu%E7%9A%84%E4%BD%BF%E7%94%A8%E7%8E%87%E5%B0%BD%E7%AE%A1%E6%88%91%E6%8C%87%E5%AE%9A%E4%BA%864%E9%A2%97cpu%E4%BD%86%E5%BA%94%E8%AF%A5%E4%B8%8D%E4%BC%9A%E8%B6%85%E8%BF%87200&quot; data-discover=&quot;true&quot; style=&quot;box-sizing: inherit; margin: 0px; font: inherit; letter-spacing: inherit; --Link-underlineColor: rgba(var(--mui-palette-primary-mainChannel) / 0.4); text-decoration-color: inherit; opacity: 0; position: absolute; left: -28px; top: 10.2188px; transform: translate(0px, -50%); padding-right: 8px;&quot;&gt;&lt;svg viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium icon-link css-foypc2&quot; focusable=&quot;false&quot; aria-hidden=&quot;true&quot; data-testid=&quot;LinkIcon&quot;&gt;&lt;path d=&quot;M12.7076 18.3639L11.2933 19.7781C9.34072 21.7308 6.1749 21.7308 4.22228 19.7781C2.26966 17.8255 2.26966 14.6597 4.22228 12.7071L5.63649 11.2929M18.3644 12.7071L19.7786 11.2929C21.7312 9.34024 21.7312 6.17441 19.7786 4.22179C17.826 2.26917 14.6602 2.26917 12.7076 4.22179L11.2933 5.636M8.50045 15.4999L15.5005 8.49994&quot; stroke=&quot;currentColor&quot; fill=&quot;none&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;(1).CPU压力测试 ----&amp;gt; 产生4个cpu进程1分钟后停止运行（注意观察CPU的使用率，尽管我指定了4颗CPU，但应该不会超过200%）&lt;/h6&gt;&lt;div class=&quot;MuiBox-root css-14tyjzo&quot; style=&quot;box-sizing: inherit; height: 41px; margin-top: 16px; margin-bottom: 16px; font-family: Roboto, system-ui, sans-serif; letter-spacing: 0.28px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;MuiStack-root css-1g4yje1&quot; style=&quot;box-sizing: inherit; display: flex; flex-direction: column; height: 41px;&quot;&gt;&lt;div class=&quot;MuiBox-root css-mu0cnk&quot; style=&quot;box-sizing: inherit; min-height: 0px; position: relative;&quot;&gt;&lt;pre class=&quot;MuiBox-root css-15znsqi&quot; tabindex=&quot;0&quot; style=&quot;box-sizing: inherit; height: 41px; overflow: auto; padding: 8px; min-height: 41px; border-radius: 4px; color: var(--mui-palette-docker-grey-700, #393F49); background-color: var(--mui-palette-background-secondary, #F9F9FA); border-width: 1px; border-style: solid; border-color: var(--mui-palette-docker-grey-100, #F4F4F6); margin-top: 0px; margin-bottom: 0px;&quot;&gt;stress&amp;nbsp;-c&amp;nbsp;4&amp;nbsp;--verbose&amp;nbsp;--timeout&amp;nbsp;1m&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-1acd36n&quot; id=&quot;user-content-2memory压力测试-----产生5个work工作经常并且每个工作经常占用200000000-bytes即200mb且不释放内存但不会超过1g的使用空间&quot; style=&quot;box-sizing: inherit; margin: 24px 0px; font-family: Roboto, system-ui, sans-serif; font-weight: 500; font-size: 1.143rem; line-height: 1.333; letter-spacing: 0px; position: relative; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1wqeyfi&quot; href=&quot;https://hub.docker.com/r/jasonyin2020/oldboyedu-linux-tools#2memory%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95-----%E4%BA%A7%E7%94%9F5%E4%B8%AAwork%E5%B7%A5%E4%BD%9C%E7%BB%8F%E5%B8%B8%E5%B9%B6%E4%B8%94%E6%AF%8F%E4%B8%AA%E5%B7%A5%E4%BD%9C%E7%BB%8F%E5%B8%B8%E5%8D%A0%E7%94%A8200000000-bytes%E5%8D%B3200mb%E4%B8%94%E4%B8%8D%E9%87%8A%E6%94%BE%E5%86%85%E5%AD%98%E4%BD%86%E4%B8%8D%E4%BC%9A%E8%B6%85%E8%BF%871g%E7%9A%84%E4%BD%BF%E7%94%A8%E7%A9%BA%E9%97%B4&quot; data-discover=&quot;true&quot; style=&quot;box-sizing: inherit; margin: 0px; font: inherit; letter-spacing: inherit; --Link-underlineColor: rgba(var(--mui-palette-primary-mainChannel) / 0.4); text-decoration-color: inherit; opacity: 0; position: absolute; left: -28px; top: 10.2188px; transform: translate(0px, -50%); padding-right: 8px;&quot;&gt;&lt;svg viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium icon-link css-foypc2&quot; focusable=&quot;false&quot; aria-hidden=&quot;true&quot; data-testid=&quot;LinkIcon&quot;&gt;&lt;path d=&quot;M12.7076 18.3639L11.2933 19.7781C9.34072 21.7308 6.1749 21.7308 4.22228 19.7781C2.26966 17.8255 2.26966 14.6597 4.22228 12.7071L5.63649 11.2929M18.3644 12.7071L19.7786 11.2929C21.7312 9.34024 21.7312 6.17441 19.7786 4.22179C17.826 2.26917 14.6602 2.26917 12.7076 4.22179L11.2933 5.636M8.50045 15.4999L15.5005 8.49994&quot; stroke=&quot;currentColor&quot; fill=&quot;none&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;(2).Memory压力测试 ---&amp;gt; 产生5个work工作经常，并且每个工作经常占用200000000 Bytes(即200MB)，且不释放内存，但不会超过1G的使用空间。&lt;/h6&gt;&lt;div class=&quot;MuiBox-root css-14tyjzo&quot; style=&quot;box-sizing: inherit; height: 41px; margin-top: 16px; margin-bottom: 16px; font-family: Roboto, system-ui, sans-serif; letter-spacing: 0.28px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;MuiStack-root css-1g4yje1&quot; style=&quot;box-sizing: inherit; display: flex; flex-direction: column; height: 41px;&quot;&gt;&lt;div class=&quot;MuiBox-root css-mu0cnk&quot; style=&quot;box-sizing: inherit; min-height: 0px; position: relative;&quot;&gt;&lt;pre class=&quot;MuiBox-root css-15znsqi&quot; tabindex=&quot;0&quot; style=&quot;box-sizing: inherit; height: 41px; overflow: auto; padding: 8px; min-height: 41px; border-radius: 4px; color: var(--mui-palette-docker-grey-700, #393F49); background-color: var(--mui-palette-background-secondary, #F9F9FA); border-width: 1px; border-style: solid; border-color: var(--mui-palette-docker-grey-100, #F4F4F6); margin-top: 0px; margin-bottom: 0px;&quot;&gt;stress&amp;nbsp;&amp;nbsp;-m&amp;nbsp;5&amp;nbsp;--vm-bytes&amp;nbsp;200000000&amp;nbsp;--vm-keep&amp;nbsp;--verbose&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-q10foy&quot; id=&quot;user-content-其他帮助信息&quot; style=&quot;box-sizing: inherit; margin: 24px 0px 16px; font-family: Roboto, system-ui, sans-serif; font-weight: 500; font-size: 1.5rem; line-height: 1.333; letter-spacing: 0px; border-bottom: 1px solid var(--mui-palette-divider); position: relative; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1wqeyfi&quot; href=&quot;https://hub.docker.com/r/jasonyin2020/oldboyedu-linux-tools#%E5%85%B6%E4%BB%96%E5%B8%AE%E5%8A%A9%E4%BF%A1%E6%81%AF&quot; data-discover=&quot;true&quot; style=&quot;box-sizing: inherit; margin: 0px; font: inherit; letter-spacing: inherit; --Link-underlineColor: rgba(var(--mui-palette-primary-mainChannel) / 0.4); text-decoration-color: inherit; opacity: 0; position: absolute; left: -32px; top: 13.9844px; transform: translate(0px, -50%); padding-right: 8px;&quot;&gt;&lt;svg viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium icon-link css-foypc2&quot; focusable=&quot;false&quot; aria-hidden=&quot;true&quot; data-testid=&quot;LinkIcon&quot;&gt;&lt;path d=&quot;M12.7076 18.3639L11.2933 19.7781C9.34072 21.7308 6.1749 21.7308 4.22228 19.7781C2.26966 17.8255 2.26966 14.6597 4.22228 12.7071L5.63649 11.2929M18.3644 12.7071L19.7786 11.2929C21.7312 9.34024 21.7312 6.17441 19.7786 4.22179C17.826 2.26917 14.6602 2.26917 12.7076 4.22179L11.2933 5.636M8.50045 15.4999L15.5005 8.49994&quot; stroke=&quot;currentColor&quot; fill=&quot;none&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;其他帮助信息&lt;/h3&gt;&lt;div class=&quot;MuiBox-root css-14tyjzo&quot; style=&quot;box-sizing: inherit; height: 41px; margin-top: 16px; margin-bottom: 16px; font-family: Roboto, system-ui, sans-serif; letter-spacing: 0.28px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;MuiStack-root css-1g4yje1&quot; style=&quot;box-sizing: inherit; display: flex; flex-direction: column; height: 41px;&quot;&gt;&lt;div class=&quot;MuiBox-root css-mu0cnk&quot; style=&quot;box-sizing: inherit; min-height: 0px; position: relative;&quot;&gt;&lt;pre class=&quot;MuiBox-root css-15znsqi&quot; tabindex=&quot;0&quot; style=&quot;box-sizing: inherit; height: 41px; overflow: auto; padding: 8px; min-height: 41px; border-radius: 4px; color: var(--mui-palette-docker-grey-700, #393F49); background-color: var(--mui-palette-background-secondary, #F9F9FA); border-width: 1px; border-style: solid; border-color: var(--mui-palette-docker-grey-100, #F4F4F6); margin-top: 0px; margin-bottom: 0px;&quot;&gt;&amp;quot;stress&amp;nbsp;--help&amp;quot;&amp;nbsp;or&amp;nbsp;stress&amp;nbsp;-h&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 18 Dec 2025 14:22:05 +0800</pubDate></item><item><title>CentOS 7配置操作记录到messages</title><link>https://www.shnne.com/post/3809.html</link><description>&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;vi&amp;nbsp;/etc/bashrc
在最后添加
PROMPT_COMMAND=&amp;#39;{&amp;nbsp;msg=$(history&amp;nbsp;1&amp;nbsp;|&amp;nbsp;{&amp;nbsp;read&amp;nbsp;x&amp;nbsp;y;&amp;nbsp;echo&amp;nbsp;$y;&amp;nbsp;});logger&amp;nbsp;&amp;quot;[euid=$(whoami)]&amp;quot;:$(who&amp;nbsp;am&amp;nbsp;i):[`pwd`]&amp;quot;$msg&amp;quot;;&amp;nbsp;}&amp;#39;
source&amp;nbsp;/etc/bashrc&amp;nbsp;

验证
tail&amp;nbsp;-f&amp;nbsp;/var/log/messages&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 14 Nov 2025 17:23:28 +0800</pubDate></item><item><title>mysql参数之key_buffer_size 设置多大合适</title><link>https://www.shnne.com/post/3558.html</link><description>&lt;p&gt;&lt;code&gt;key_buffer_size&lt;/code&gt; 是 MySQL 中一个非常重要的参数，&lt;strong&gt;专门用于 MyISAM 存储引擎&lt;/strong&gt;，用来缓存 MyISAM 表的索引块（index blocks）。它对 MyISAM 表的读写性能有显著影响。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;重要提示：&lt;/strong&gt; 如果你主要使用的是 InnoDB 存储引擎（现代应用的主流选择），那么 &lt;code&gt;key_buffer_size&lt;/code&gt; 的重要性就大大降低了，InnoDB 使用自己的缓冲池 &lt;code&gt;innodb_buffer_pool_size&lt;/code&gt;。&lt;/p&gt;&lt;/blockquote&gt;&lt;hr/&gt;&lt;h3&gt;一、&lt;code&gt;key_buffer_size&lt;/code&gt; 的作用&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;该参数决定了 MySQL 为 MyISAM 索引文件（&lt;code&gt;.MYI&lt;/code&gt; 文件）分配多少内存用于缓存索引数据。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;更大的 &lt;code&gt;key_buffer_size&lt;/code&gt; 可以减少磁盘 I/O，提高 MyISAM 表的查询和索引操作性能。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr/&gt;&lt;h3&gt;二、如何设置合适的大小？&lt;/h3&gt;&lt;h4&gt;✅ 基本原则：&lt;/h4&gt;&lt;ol class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;只影响 MyISAM 表&lt;/strong&gt;：如果你的数据库中几乎没有 MyISAM 表，可以设置为较小值（如 8M~64M）。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;不要超过 MyISAM 索引总大小&lt;/strong&gt;：设置过大会浪费内存，甚至导致系统交换（swap）。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;一般不超过物理内存的 25%&lt;/strong&gt;：尤其在混合使用 MyISAM 和 InnoDB 时，要为 &lt;code&gt;innodb_buffer_pool_size&lt;/code&gt; 留出足够空间。&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr/&gt;&lt;h4&gt;✅ 推荐设置方法：&lt;/h4&gt;&lt;h5&gt;方法 1：根据 MyISAM 索引实际大小设置&lt;/h5&gt;&lt;pre&gt;--&amp;nbsp;查看所有&amp;nbsp;MyISAM&amp;nbsp;表的索引大小总和（单位：MB）
SELECT&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CONCAT(ROUND(SUM(INDEX_LENGTH)&amp;nbsp;/&amp;nbsp;(1024*1024),&amp;nbsp;2),&amp;nbsp;&amp;#39;&amp;nbsp;MB&amp;#39;)&amp;nbsp;AS&amp;nbsp;&amp;#39;Total&amp;nbsp;MyISAM&amp;nbsp;Index&amp;nbsp;Size&amp;#39;
FROM&amp;nbsp;information_schema.TABLES
WHERE&amp;nbsp;ENGINE&amp;nbsp;=&amp;nbsp;&amp;#39;MyISAM&amp;#39;;&lt;/pre&gt;&lt;p&gt;假设查询结果是 &lt;code&gt;128MB&lt;/code&gt;，那么你可以设置：&lt;/p&gt;&lt;pre&gt;key_buffer_size&amp;nbsp;=&amp;nbsp;192M&amp;nbsp;&amp;nbsp;#&amp;nbsp;略大于实际索引大小，留出增长空间&lt;/pre&gt;&lt;blockquote&gt;&lt;p&gt;建议设置为实际索引大小的 1.5 倍左右。&lt;/p&gt;&lt;/blockquote&gt;&lt;hr/&gt;&lt;h5&gt;方法 2：通用经验值（适用于 MyISAM 为主）&lt;/h5&gt;&lt;figure&gt;&lt;table&gt;&lt;thead&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;th&gt;服务器内存&lt;/th&gt;&lt;th&gt;建议 &lt;code&gt;key_buffer_size&lt;/code&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1GB&lt;/td&gt;&lt;td&gt;128M ~ 256M&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2GB&lt;/td&gt;&lt;td&gt;256M ~ 512M&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4GB+&lt;/td&gt;&lt;td&gt;512M ~ 1G&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&lt;blockquote&gt;&lt;p&gt;⚠️ 如果你使用的是 64 位系统且内存充足，可以设置到 1G~2G，但&lt;strong&gt;不要超过 MyISAM 索引总大小的 2 倍&lt;/strong&gt;。&lt;/p&gt;&lt;/blockquote&gt;&lt;hr/&gt;&lt;h5&gt;方法 3：监控使用情况，动态调整&lt;/h5&gt;&lt;p&gt;查看 &lt;code&gt;key_buffer_size&lt;/code&gt; 的使用率：&lt;/p&gt;&lt;pre&gt;--&amp;nbsp;查看&amp;nbsp;key&amp;nbsp;buffer&amp;nbsp;使用情况
SHOW&amp;nbsp;VARIABLES&amp;nbsp;LIKE&amp;nbsp;&amp;#39;key_buffer_size&amp;#39;;
SHOW&amp;nbsp;STATUS&amp;nbsp;LIKE&amp;nbsp;&amp;#39;Key_read%&amp;#39;;
SHOW&amp;nbsp;STATUS&amp;nbsp;LIKE&amp;nbsp;&amp;#39;Key_write%&amp;#39;;
SHOW&amp;nbsp;STATUS&amp;nbsp;LIKE&amp;nbsp;&amp;#39;Key_blocks_used&amp;#39;;
SHOW&amp;nbsp;STATUS&amp;nbsp;LIKE&amp;nbsp;&amp;#39;Key_blocks_unused&amp;#39;;&lt;/pre&gt;&lt;p&gt;计算使用率：&lt;/p&gt;&lt;pre&gt;--&amp;nbsp;计算已使用的&amp;nbsp;key&amp;nbsp;buffer&amp;nbsp;比例
--&amp;nbsp;公式：(Key_blocks_unused&amp;nbsp;/&amp;nbsp;key_blocks_total)&amp;nbsp;*&amp;nbsp;100
--&amp;nbsp;如果&amp;nbsp;unused&amp;nbsp;很小，说明&amp;nbsp;buffer&amp;nbsp;快满了，可能需要增大&lt;/pre&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;Key_blocks_unused&lt;/code&gt;：未使用的 block 数&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;key_buffer_size / 1024&lt;/code&gt; ≈ 总 block 数（每个 block 1KB）&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;如果 &lt;code&gt;Key_blocks_unused&lt;/code&gt; 很小，说明 &lt;code&gt;key_buffer_size&lt;/code&gt; 可能不足。&lt;/p&gt;&lt;hr/&gt;&lt;h3&gt;三、性能相关状态值&lt;/h3&gt;&lt;figure&gt;&lt;table&gt;&lt;thead&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;th&gt;状态变量&lt;/th&gt;&lt;th&gt;含义&lt;/th&gt;&lt;th&gt;理想状态&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Key_read_requests&lt;/code&gt;&lt;/td&gt;&lt;td&gt;索引读请求总数&lt;/td&gt;&lt;td&gt;越大越好&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Key_reads&lt;/code&gt;&lt;/td&gt;&lt;td&gt;实际从磁盘读取索引的次数&lt;/td&gt;&lt;td&gt;应远小于 &lt;code&gt;Key_read_requests&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Key_write_requests&lt;/code&gt;&lt;/td&gt;&lt;td&gt;索引写请求总数&lt;/td&gt;&lt;td&gt;越大越好&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Key_writes&lt;/code&gt;&lt;/td&gt;&lt;td&gt;实际写入磁盘的次数&lt;/td&gt;&lt;td&gt;应远小于 &lt;code&gt;Key_write_requests&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;命中率计算：&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;索引读命中率&amp;nbsp;=&amp;nbsp;(Key_read_requests&amp;nbsp;-&amp;nbsp;Key_reads)&amp;nbsp;/&amp;nbsp;Key_read_requests&amp;nbsp;≈&amp;nbsp;99%+&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;如果命中率低于 90%，考虑增大 &lt;code&gt;key_buffer_size&lt;/code&gt;。&lt;/p&gt;&lt;hr/&gt;&lt;h3&gt;四、配置示例（my.cnf）&lt;/h3&gt;&lt;pre&gt;[mysqld]
#&amp;nbsp;如果&amp;nbsp;MyISAM&amp;nbsp;使用较多
key_buffer_size&amp;nbsp;=&amp;nbsp;512M

#&amp;nbsp;如果几乎全是&amp;nbsp;InnoDB，可设小
#&amp;nbsp;key_buffer_size&amp;nbsp;=&amp;nbsp;32M

#&amp;nbsp;其他相关参数（可选）
read_buffer_size&amp;nbsp;=&amp;nbsp;2M
read_rnd_buffer_size&amp;nbsp;=&amp;nbsp;1M&lt;/pre&gt;&lt;hr/&gt;&lt;h3&gt;五、总结：设置建议&lt;/h3&gt;&lt;figure&gt;&lt;table&gt;&lt;thead&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;th&gt;场景&lt;/th&gt;&lt;th&gt;建议值&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;纯 MyISAM，内存充足&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;设置为 MyISAM 索引总大小的 1.5 倍，最大不超过 1G~2G&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;混合引擎（MyISAM + InnoDB）&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;256M ~ 512M，优先保证 &lt;code&gt;innodb_buffer_pool_size&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;几乎全是 InnoDB&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;8M ~ 64M 即可&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;低内存服务器（&amp;lt;1G）&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;16M ~ 64M&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&lt;hr/&gt;&lt;h3&gt;六、额外建议&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;尽量使用 InnoDB&lt;/strong&gt;：MyISAM 已逐渐被淘汰，不支持事务、行锁、崩溃恢复等。新项目建议使用 InnoDB。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;定期监控&lt;/strong&gt;：使用 &lt;code&gt;SHOW STATUS&lt;/code&gt; 观察 key buffer 命中率和使用情况。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;不要盲目设大&lt;/strong&gt;：过大的 &lt;code&gt;key_buffer_size&lt;/code&gt; 会导致内存紧张，反而降低性能。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr/&gt;&lt;p&gt;✅ &lt;strong&gt;最终建议&lt;/strong&gt;：先运行 SQL 查询 MyISAM 索引总大小，然后设置 &lt;code&gt;key_buffer_size&lt;/code&gt; 为该值的 1.5 倍，并监控命中率和系统内存使用情况，逐步优化。&lt;/p&gt;</description><pubDate>Mon, 20 Oct 2025 10:28:28 +0800</pubDate></item><item><title>关于ubuntu24.04的php7.2版本 php curl https gnutls recv error -110 The TLS connection was non-properly ter</title><link>https://www.shnne.com/post/3515.html</link><description>&lt;h2&gt;关于ubuntu24.04的php7.2版本 php curl https gnutls recv error -110 The TLS connection was non-properly terminated报错误问题&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;原因ubuntu的php7.2版本 php请求 curl https gnutls recv error -110 The TLS connection was non-properly terminated.[ssl_version] =&amp;gt; GnuTLS/3.8.3 ，[version_number] =&amp;gt; 525568，[libz_version] =&amp;gt; 1.3出现这个错误&lt;/p&gt;
&lt;p&gt;因为系统curl使用的 GnuTLS/3.8.3 不兼容导致&lt;/p&gt;
&lt;p&gt;解决办法：&lt;/p&gt;
&lt;p&gt;要让 PHP 使用 &lt;strong&gt;OpenSSL&lt;/strong&gt; 作为 cURL 的 TLS 后端，最彻底、最可控的方法是：&lt;strong&gt;先手动编译 OpenSSL，再编译 libcurl（链接到你编译的 OpenSSL），最后编译 PHP（链接到你编译的 libcurl）&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;这样可以完全绕过系统 &lt;code&gt;libcurl&lt;/code&gt; 使用 GnuTLS 或 NSS 的问题。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;# 创建工作目录
mkdir ~/build &amp;amp;&amp;amp; cd ~/build

# 安装编译依赖
sudo apt update
sudo apt install -y build-essential autoconf libtool pkg-config git
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;? 第一步：编译 OpenSSL（推荐 1.1.1 或 3.0 ）&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;PHP 7.2 兼容 OpenSSL 1.1.1 和 3.0，推荐使用 &lt;strong&gt;OpenSSL 1.1.1w&lt;/strong&gt;（稳定）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;方式 A：编译 OpenSSL 1.1.1（推荐用于 PHP 7.2）&lt;/h3&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;cd ~/build
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w

# 配置（安装到 /usr/local/openssl-1.1.1）
./config --prefix=/usr/local/openssl-1.1.1 --openssldir=/usr/local/openssl-1.1.1 shared zlib

# 编译并安装
make -j$(nproc)
sudo make install
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;方式 B：编译 OpenSSL 3.0&lt;/h3&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;cd ~/build
wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
tar -xzf openssl-3.0.13.tar.gz
cd openssl-3.0.13

./config --prefix=/usr/local/openssl-3.0 --openssldir=/usr/local/openssl-3.0 shared zlib
make -j$(nproc)
sudo make install
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;第二步：编译 libcurl（链接到你编译的 OpenSSL）&lt;/h2&gt;
&lt;h3&gt;下载 libcurl 源码&lt;/h3&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;cd ~/build
wget https://curl.se/download/curl-8.5.0.tar.gz
tar -xzf curl-8.5.0.tar.gz
cd curl-8.5.0

# 创建安装目录
sudo mkdir -p /usr/local/curl
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;配置（关键：指定 OpenSSL 路径）&lt;/h3&gt;
&lt;h4&gt;如果你编译了 OpenSSL 1.1.1：&lt;/h4&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;./configure \
  --prefix=/usr/local/curl \
  --with-openssl=/usr/local/openssl-1.1.1 \
  --without-gnutls \
  --without-nss \
  --enable-shared \
  --enable-optimize \
  --disable-ldap \
  --disable-ldaps
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;如果你编译了 OpenSSL 3.0：&lt;/h4&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;./configure \
  --prefix=/usr/local/curl \
  --with-openssl=/usr/local/openssl-3.0 \
  --without-gnutls \
  --without-nss \
  --enable-shared \
  --enable-optimize \
  --disable-ldap \
  --disable-ldaps
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;&lt;p&gt;关键参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--with-openssl=/path&lt;/code&gt;：指定你编译的 OpenSSL 路径&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--without-gnutls --without-nss&lt;/code&gt;：禁用其他 TLS 后端&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--enable-shared&lt;/code&gt;：生成动态库（PHP 需要）&lt;/li&gt;

&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h3&gt;编译并安装 libcurl&lt;/h3&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;make -j$(nproc)
sudo make install
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;验证 libcurl 是否使用 OpenSSL&lt;/h2&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;# 临时设置库路径 可以不加
export LD_LIBRARY_PATH=&amp;quot;/usr/local/curl/lib:/usr/local/openssl-1.1.1/lib:$LD_LIBRARY_PATH&amp;quot;
# 或如果是 OpenSSL 3.0: /usr/local/openssl-3.0/lib

# 运行 curl --version
/usr/local/curl/bin/curl --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;正确输出应为：&lt;/p&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;curl 8.5.0 (x86_64-pc-linux-gnu) libcurl/8.5.0 OpenSSL/1.1.1w
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;&lt;p&gt;如果显示 &lt;code&gt;OpenSSL&lt;/code&gt;，说明成功！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;配置系统库路径（可选）&lt;/h2&gt;
&lt;p&gt;为了让系统找到你编译的库，添加库路径：&lt;/p&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;echo &amp;#39;/usr/local/curl/lib&amp;#39; | sudo tee /etc/ld.so.conf.d/curl.conf
echo &amp;#39;/usr/local/openssl-1.1.1/lib&amp;#39; | sudo tee /etc/ld.so.conf.d/openssl.conf

# 更新动态链接库缓存
sudo ldconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;第三步：后续编译 PHP 时使用自编译的 libcurl&lt;/h2&gt;
&lt;p&gt;当你编译 PHP 7.2 时，使用：&lt;/p&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;cd php-7.2.34

./configure \
  --prefix=/usr/local/php72 \
  --with-config-file-path=/usr/local/php72/etc \
  --with-curl=/usr/local/curl \
  --with-openssl=/usr/local/openssl-1.1.1 \
  --enable-mbstring \
  --enable-fpm \
  ...
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;&lt;p&gt;关键：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--with-curl=/usr/local/curl&lt;/code&gt;：指向你编译的 libcurl&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--with-openssl=/usr/local/openssl-1.1.1&lt;/code&gt;：指向你编译的 OpenSSL&lt;/li&gt;

&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;make -j$(nproc)
sudo make install
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;最终验证 PHP cURL&lt;/h2&gt;
&lt;pre&gt;&lt;code class='language-php' lang='php'&gt;&amp;lt;?php
$curl = curl_version();
echo &amp;quot;SSL Version: &amp;quot; . $curl[&amp;#39;ssl_version&amp;#39;] . &amp;quot;\n&amp;quot;;
echo &amp;quot;cURL Version: &amp;quot; . $curl[&amp;#39;version&amp;#39;] . &amp;quot;\n&amp;quot;;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;运行：&lt;/p&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;/usr/local/php72/bin/php test.php

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt; 输出：&lt;/p&gt;
&lt;pre&gt;&lt;code class='language-shell' lang='shell'&gt;SSL Version: OpenSSL/1.1.1w
cURL Version: 8.5.0
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;或者
/usr/local/php72/bin/php -r &amp;quot;var_dump(curl_version());&amp;quot;

输出
string(14) &amp;quot;OpenSSL/1.1.1w&amp;quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description><pubDate>Thu, 16 Oct 2025 16:52:02 +0800</pubDate></item><item><title>Ubuntu 24.04 LTS开机自启动脚本设置方法</title><link>https://www.shnne.com/post/3019.html</link><description>&lt;p&gt;Ubuntu中设置开机自启动脚本
Ubuntu 24.04 LTS 使用systemd作为服务管理器，开机自启动脚本可以通过systemd来管理一个服务，通过设置该服务来执行脚本，早些的做法是把自启动脚本通过rc.local文件来进行设置，但是在ubuntu中，管理这个文件的服务默认是不开启的，所以必须先配置rc-local.service，然后再建立rc.local文件来实现目的。&lt;/p&gt;&lt;p&gt;步骤1：修改 rc-local.service文件
首先，需要编辑 /lib/systemd/system/rc-local.service文件，原文件中没有[Install]部分，要自行添加[Install] 部分定义开机自启动的行为，修改为如图所示：&lt;/p&gt;&lt;pre&gt;[Unit]
Description=/etc/rc.local&amp;nbsp;Compatibility
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local&amp;nbsp;start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target
Alias=rc-local.service&lt;/pre&gt;&lt;p&gt;步骤2：创建/etc/rc.local文件
由于Ubuntu默认不存在这个文件，需要手动在/etc 路径下创建 rc.local文件并添加自启动的脚本内容，假如我们的账户是test，在test的家目录下存在一个mount.sh的脚本文件，需要开机的时候系统自动执行这个脚本，那么在rc.local的文件中应该这样写：&lt;/p&gt;&lt;pre&gt;#！/bin/bash
/home/test/mount.sh
exit&amp;nbsp;0&lt;/pre&gt;&lt;p&gt;步骤3：修改/etc/rc.local的权限&lt;/p&gt;&lt;pre&gt;sudo&amp;nbsp;chmod&amp;nbsp;+x&amp;nbsp;/etc/rc.local

或者直接切换到root用户，在root用户的终端下执行

chmod&amp;nbsp;+x&amp;nbsp;/etc/rc.local&lt;/pre&gt;&lt;p&gt;步骤4：启动rc-local.service&lt;/p&gt;&lt;pre&gt;使用systemctl来启动服务
sudo&amp;nbsp;systemctl&amp;nbsp;enable&amp;nbsp;rc-local.service
sudo&amp;nbsp;systemctl&amp;nbsp;start&amp;nbsp;rc-local.service

或者直接切换到root用户，在root用户的终端下执行

systemctl&amp;nbsp;start&amp;nbsp;rc-local.service
systemctl&amp;nbsp;enable&amp;nbsp;rc-local.service&lt;/pre&gt;&lt;p&gt;步骤5：查看rc-local.service的服务状态&lt;/p&gt;&lt;pre&gt;使用systemctl来查看服务状态

sudo&amp;nbsp;systemctl&amp;nbsp;status&amp;nbsp;rc-local.service

或者直接切换到root用户，在root用户的终端下执行

systemctl&amp;nbsp;status&amp;nbsp;rc-local.service&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Fri, 22 Aug 2025 10:12:32 +0800</pubDate></item></channel></rss>