<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>小航博客</title>
<link>https://www.csbsgyl.com/</link>
<description>小航博客专注服务器运维、网络配置与虚拟化实战，涵盖 ZeroTier 虚拟组网、华为交换机配置、Linux 路由与 NAT、服务器硬件与 RAID、ESXi/PVE 虚拟化等方向，每篇均为可复现的完整操作教程。</description>
<language>zh-CN</language>
<atom:link href="https://www.csbsgyl.com/feed.xml" rel="self" type="application/rss+xml"/>
<lastBuildDate>Sat, 25 Oct 2025 21:44:05 +0800</lastBuildDate>
<generator>xiaohang-blog (Rust)</generator>
<item>
<title>Zerotier 根节点（Planet）使用教程</title>
<link>https://www.csbsgyl.com/archives/zerotier-root-tutorial/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/zerotier-root-tutorial/</guid>
<pubDate>Sat, 25 Oct 2025 21:44:05 +0800</pubDate>
<description>介绍 ZeroTier Planet 根节点文件在 Windows、Linux、macOS 与 Android 客户端中的配置方法，包含文件替换、服务重启、加入网络和节点验证步骤。</description>
<category>zerotier</category>
<category>zerotier</category>
<category>Planet</category>
<category>虚拟组网</category>
<category>内网穿透</category>
<content:encoded><![CDATA[<figure style="align-items: start; display: flex; flex-direction: column" data-content-type="image"><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /></figure><p><br>客户端配置</p><p>Zerotier 客户端支持：Windows、Mac、Linux、Android</p><h2 id="windows-配置">Windows 配置</h2><ol><li><p>去 Zerotier 官网 下载客户端并安装。</p></li><li><p>将 <strong>planet 文件</strong>覆盖粘贴到：</p><pre><code class="language-apex">C:\ProgramData\ZeroTier\One</code></pre><blockquote><p>注意：该目录为隐藏目录，需要允许显示隐藏文件夹才能访问。</p></blockquote></li></ol><ul><li><p>重启 Zerotier 服务：</p><ul><li><p>Win+S → 搜索“服务” → 找到 <strong>ZeroTier One</strong> → 重启服务。</p></li></ul></li><li><p>加入网络：</p><ul><li><p>使用管理员身份打开 PowerShell</p></li><li><p>执行命令：</p><pre><code class="language-apex">zerotier-cli.bat join &lt;网络ID&gt;</code></pre></li><li><p>出现 <code>200 join OK</code> 即表示加入成功</p></li></ul></li></ul><h3 id="linux-客户端-适用于-openwrt-群晖等">Linux 客户端（适用于 OpenWrt、群晖等）</h3><ol><li><p>安装 Zerotier Linux 客户端。</p></li><li><p>进入目录：</p><pre><code class="language-apex">/var/lib/zerotier-one</code></pre></li><li><p>替换目录下的 <strong>planet 文件</strong>。</p></li><li><p>重启服务：</p><pre><code class="language-apex">service zerotier-one restart</code></pre></li><li><p>加入网络：</p><pre><code class="language-apex">zerotier-cli join &lt;网络ID&gt;</code></pre></li><li><p>登录 Zerotier 管理后台，批准客户端加入请求。</p></li><li><p>查看 Planet 节点角色：</p><pre><code class="language-apex">zerotier-cli peers</code></pre></li></ol><hr><h3 id="1-3-macos-客户端配置">1.3 MacOS 客户端配置</h3><ol><li><p>进入目录：</p><pre><code class="language-apex">/Library/Application Support/ZeroTier/One/</code></pre></li><li><p>替换 <strong>planet 文件</strong>。</p></li><li><p>重启 Zerotier One：</p><pre><code class="language-apex">cat /Library/Application\ Support/ZeroTier/One/zerotier-one.pid | sudo xargs kill</code></pre></li><li><p>加入网络：</p><pre><code class="language-apex">zerotier-cli join &lt;网络ID&gt;</code></pre></li><li><p>管理后台批准请求，使用 <code>zerotier-cli peers</code> 查看 Planet 节点角色。</p></li></ol><h3 id="安卓客户端配置-zerotier-非官方安卓客户端">安卓客户端配置<br><br>      <a href="https://github.com/kaaass/ZerotierFix" target="_blank" rel="noopener"><u>Zerotier 非官方安卓客户端</u></a></h3><ul><li><p>使用非官方 Zerotier 安卓客户端即可，方法类似：加入网络 → 管理后台批准。</p></li></ul><p><strong>不过我这边测试安卓官方APP已经支持更换planet</strong></p><h2 id="planet-文件说明">Planet 文件说明</h2><h3 id="planet-文件对应-zerotier-根节点角色华中bgp-主线路华中bgp-备线路华西移动">Planet 文件对应 Zerotier 根节点角色<br><br><a href="https://www.csbsgyl.com/upload/planet" target="_self" rel="nofollow">华中BGP---主线路</a><br><a href="https://www.csbsgyl.com/upload/planet" target="_self" rel="nofollow">华中BGP---备线路</a><br><a href="https://dwz.csbsgyl.com/3V5i" target="_self" rel="nofollow">华西移动-- 主线路</a></h3><ul><li><p>请咨询你的服务商确认服务器所在节点，按节点选择 planet 文件使用即可</p></li></ul><figure style="align-items: start; display: flex; flex-direction: column" data-content-type="image"><img src="https://www.csbsgyl.com/upload/68747470733a2f2f68656e727967642d6173736574732e622d63646e2e6e65742f6265737a656c2f73637265656e73686f742d6e65772e706e67.png" style="width:50%;height:auto;" loading="lazy" decoding="async" alt="" width="400" height="600" /></figure>]]></content:encoded>
</item>
<item>
<title>Debian 双网卡配置：主网卡上网，副网卡通过静态路由访问多内网</title>
<link>https://www.csbsgyl.com/archives/debian-shuang-wang-qia-pei-zhi-zhu-wang-qia-shang-wang-fu-wang-qia-tong-guo-jing-tai-lu-you-fang-wen-duo-nei-wang/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/debian-shuang-wang-qia-pei-zhi-zhu-wang-qia-shang-wang-fu-wang-qia-tong-guo-jing-tai-lu-you-fang-wen-duo-nei-wang/</guid>
<pubDate>Wed, 16 Sep 2026 11:37:09 +0800</pubDate>
<description>本文介绍 Debian 12/13 双网卡场景下，如何保持主网卡默认上网，同时让副网卡通过指定下一跳访问多个内网网段，并实现重启自动生效。 大家好，我是云核筑梦家。</description>
<category>网络</category>
<category>服务器</category>
<category>有用的小知识</category>
<category>Debian</category>
<content:encoded><![CDATA[<p><strong>摘要：</strong> 本文介绍 Debian 12/13 双网卡场景下，如何保持主网卡默认上网，同时让副网卡通过指定下一跳访问多个内网网段，并实现重启自动生效。</p><p>大家好，我是<strong>云核筑梦家</strong>。</p><p>在服务器实际部署中，经常会遇到这样的网络需求：</p><ul><li><p>第一张网卡连接公网，负责服务器默认上网。</p></li><li><p>第二张网卡连接内部网络。</p></li><li><p>第二张网卡不能抢占默认路由。</p></li><li><p>需要通过第二张网卡的上联网关访问多个其他内网网段。</p></li><li><p>所有配置需要在服务器重启后自动恢复。</p></li></ul><p>这类场景如果直接给两张网卡都配置 <code>gateway</code>，很容易出现默认路由冲突，甚至导致 Debian 的 <code>networking.service</code> 启动失败。</p><p>本文以 Debian 12 / Debian 13 为例，介绍一种更加稳定的配置方法：<strong>主网卡保留默认网关，副网卡只配置 IP，通过静态路由访问其他内网。</strong></p><hr><h2 id="一-网络拓扑示例">一、网络拓扑示例</h2><p>本文所有 IP 均为实验示例，请根据自己的实际网络进行修改。</p><p>假设服务器拥有两张网卡：</p><pre><code class="language-text">ens18：公网网卡
IP：203.0.113.10/24
网关：203.0.113.1

ens19：内网网卡
IP：10.10.11.6/24</code></pre><p>内网下一跳网关：</p><pre><code class="language-text">10.10.11.1</code></pre><p>另外还需要通过这个网关访问：</p><pre><code class="language-text">10.10.12.0/24
10.10.13.0/24
10.10.14.0/24</code></pre><p>最终我们需要实现：</p><pre><code class="language-text">普通公网流量
    ↓
ens18
    ↓
203.0.113.1

10.10.11.0/24
    ↓
ens19 直接访问

10.10.12.0/24
10.10.13.0/24
10.10.14.0/24
    ↓
10.10.11.1
    ↓
ens19</code></pre><p>这样主网卡和内网网卡互不影响。</p><hr><h2 id="二-查看当前网卡">二、查看当前网卡</h2><p>首先执行：</p><pre><code class="language-bash">ip addr</code></pre><p>例如：</p><pre><code class="language-text">2: ens18: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt;
    inet 203.0.113.10/24

3: ens19: &lt;BROADCAST,MULTICAST&gt;</code></pre><p>可以看到：</p><pre><code class="language-text">ens18 = 已经配置公网 IP
ens19 = 第二张网卡，暂未配置</code></pre><p>再查看当前路由：</p><pre><code class="language-bash">ip route</code></pre><p>正常情况下公网默认路由类似：</p><pre><code class="language-text">default via 203.0.113.1 dev ens18</code></pre><p>这条默认路由需要保留。</p><hr><h2 id="三-配置第二张网卡">三、配置第二张网卡</h2><p>Debian 使用传统 <code>ifupdown</code> 网络配置时，可以给第二张网卡创建独立配置文件。</p><p>创建：</p><pre><code class="language-bash">nano /etc/network/interfaces.d/ens19</code></pre><p>写入：</p><pre><code class="language-text">auto ens19
iface ens19 inet static
    address 10.10.11.6/24</code></pre><p>这里有一个很重要的地方：</p><p><strong>不要配置 </strong><code>gateway</code><strong>。</strong></p><p>不要写成：</p><pre><code class="language-text">auto ens19
iface ens19 inet static
    address 10.10.11.6/24
    gateway 10.10.11.1</code></pre><p>因为主网卡本身已经存在默认网关。</p><p>如果第二张网卡再次配置：</p><pre><code class="language-text">gateway 10.10.11.1</code></pre><p>Debian 会尝试再向主路由表添加一条默认路由。</p><p>某些环境下可能出现：</p><pre><code class="language-text">RTNETLINK answers: File exists</code></pre><p>甚至：</p><pre><code class="language-text">Job for networking.service failed because the control process exited with error code.</code></pre><p>所以这种网络结构下，副网卡没有必要配置默认网关。</p><hr><h2 id="四-启动第二张网卡">四、启动第二张网卡</h2><p>可以先单独启动网卡：</p><pre><code class="language-bash">ip link set ens19 up</code></pre><p>然后：</p><pre><code class="language-bash">ifup ens19</code></pre><p>如果之前已经启动过，可能会看到：</p><pre><code class="language-text">ifup: interface ens19 already configured</code></pre><p>这并不一定代表配置错误。</p><p>查看：</p><pre><code class="language-bash">ip addr show ens19</code></pre><p>正常应该可以看到：</p><pre><code class="language-text">inet 10.10.11.6/24</code></pre><p>同时系统会自动生成一条直连路由：</p><pre><code class="language-text">10.10.11.0/24 dev ens19 proto kernel scope link src 10.10.11.6</code></pre><p>这意味着：</p><pre><code class="language-text">10.10.11.0/24</code></pre><p>这个网段不需要额外配置静态路由。</p><hr><h2 id="五-测试内网网关">五、测试内网网关</h2><p>首先确认第二张网卡到内网网关正常。</p><p>执行：</p><pre><code class="language-bash">ping -I ens19 10.10.11.1</code></pre><p>正常返回：</p><pre><code class="language-text">64 bytes from 10.10.11.1: icmp_seq=1 ttl=64 time=0.xxx ms</code></pre><p>说明：</p><pre><code class="language-text">服务器
  ↓
ens19
  ↓
10.10.11.1</code></pre><p>这一段网络已经正常。</p><hr><h2 id="六-添加其他内网静态路由">六、添加其他内网静态路由</h2><p>接下来添加需要通过 <code>10.10.11.1</code> 访问的网段。</p><p>执行：</p><pre><code class="language-bash">ip route replace 10.10.12.0/24 via 10.10.11.1 dev ens19
ip route replace 10.10.13.0/24 via 10.10.11.1 dev ens19
ip route replace 10.10.14.0/24 via 10.10.11.1 dev ens19</code></pre><p>这里推荐使用：</p><pre><code class="language-bash">ip route replace</code></pre><p>而不是：</p><pre><code class="language-bash">ip route add</code></pre><p>因为 <code>replace</code> 在路由已经存在时会直接更新，不容易出现：</p><pre><code class="language-text">RTNETLINK answers: File exists</code></pre><hr><h2 id="七-查看路由是否正确">七、查看路由是否正确</h2><p>执行：</p><pre><code class="language-bash">ip route</code></pre><p>最终应该类似：</p><pre><code class="language-text">default via 203.0.113.1 dev ens18

203.0.113.0/24 dev ens18 proto kernel scope link src 203.0.113.10

10.10.11.0/24 dev ens19 proto kernel scope link src 10.10.11.6

10.10.12.0/24 via 10.10.11.1 dev ens19
10.10.13.0/24 via 10.10.11.1 dev ens19
10.10.14.0/24 via 10.10.11.1 dev ens19</code></pre><p>这时候服务器的默认上网出口仍然是：</p><pre><code class="language-text">203.0.113.1 → ens18</code></pre><p>而三个内网网段则全部从：</p><pre><code class="language-text">10.10.11.1 → ens19</code></pre><p>访问。</p><hr><h2 id="八-验证具体流量走哪张网卡">八、验证具体流量走哪张网卡</h2><p>Linux 有一个非常好用的命令：</p><pre><code class="language-bash">ip route get</code></pre><p>例如：</p><pre><code class="language-bash">ip route get 10.10.12.1</code></pre><p>正常应该返回：</p><pre><code class="language-text">10.10.12.1 via 10.10.11.1 dev ens19 src 10.10.11.6</code></pre><p>这句话的意思就是：</p><pre><code class="language-text">目标：10.10.12.1

下一跳：
10.10.11.1

出口网卡：
ens19

源地址：
10.10.11.6</code></pre><p>同样可以检查：</p><pre><code class="language-bash">ip route get 10.10.13.1
ip route get 10.10.14.1</code></pre><hr><h2 id="九-测试三个内网">九、测试三个内网</h2><p>分别执行：</p><pre><code class="language-bash">ping 10.10.12.1</code></pre><pre><code class="language-bash">ping 10.10.13.1</code></pre><pre><code class="language-bash">ping 10.10.14.1</code></pre><p>如果都能够正常收到回复，就说明静态路由已经生效。</p><hr><h2 id="十-配置永久静态路由">十、配置永久静态路由</h2><p>前面执行的：</p><pre><code class="language-bash">ip route replace</code></pre><p>只对当前系统运行状态生效。</p><p>服务器重启以后，这些手动添加的路由会消失。</p><p>所以需要写入：</p><pre><code class="language-text">/etc/network/interfaces.d/ens19</code></pre><p>最终配置如下：</p><pre><code class="language-text">auto ens19
iface ens19 inet static
    address 10.10.11.6/24

    up ip route replace 10.10.12.0/24 via 10.10.11.1 dev ens19
    up ip route replace 10.10.13.0/24 via 10.10.11.1 dev ens19
    up ip route replace 10.10.14.0/24 via 10.10.11.1 dev ens19</code></pre><p>也可以直接使用命令生成：</p><pre><code class="language-bash">cat &gt;/etc/network/interfaces.d/ens19 &lt;&lt;'EOF'
auto ens19
iface ens19 inet static
    address 10.10.11.6/24

    up ip route replace 10.10.12.0/24 via 10.10.11.1 dev ens19
    up ip route replace 10.10.13.0/24 via 10.10.11.1 dev ens19
    up ip route replace 10.10.14.0/24 via 10.10.11.1 dev ens19
EOF</code></pre><p>查看：</p><pre><code class="language-bash">cat /etc/network/interfaces.d/ens19</code></pre><p>这样以后 <code>ens19</code> 启动时，就会自动添加这些路由。</p><hr><h2 id="十一-为什么第二张网卡不需要-gateway">十一、为什么第二张网卡不需要 gateway？</h2><p>很多人容易产生一个误区：</p><blockquote><p>第二张网卡连接了一个三层网关，所以一定要配置 gateway。</p></blockquote><p>实际上并不是。</p><p>在 Linux 中：</p><pre><code class="language-text">gateway</code></pre><p>通常意味着：</p><pre><code class="language-text">默认路由</code></pre><p>例如：</p><pre><code class="language-text">gateway 203.0.113.1</code></pre><p>最终实际上就是：</p><pre><code class="language-bash">ip route add default via 203.0.113.1</code></pre><p>但我们的服务器已经有：</p><pre><code class="language-text">default via 203.0.113.1 dev ens18</code></pre><p>服务器只需要通过第二张网卡访问指定内网，所以真正需要的是：</p><pre><code class="language-text">10.10.12.0/24 → 10.10.11.1
10.10.13.0/24 → 10.10.11.1
10.10.14.0/24 → 10.10.11.1</code></pre><p>而不是再增加一个默认路由。</p><p>所以：</p><pre><code class="language-text">第二张网卡不配置 gateway</code></pre><p>并不代表它不能经过网关。</p><p>我们只是通过<strong>静态路由明确告诉系统哪些目标需要经过这个网关</strong>。</p><hr><h2 id="十二-为什么直接-ping-其他内网最开始不通">十二、为什么直接 ping 其他内网最开始不通？</h2><p>假设最开始路由表只有：</p><pre><code class="language-text">default via 203.0.113.1 dev ens18

10.10.11.0/24 dev ens19</code></pre><p>这时候执行：</p><pre><code class="language-bash">ping 10.10.12.1</code></pre><p>Linux 查看路由表后发现：</p><pre><code class="language-text">没有 10.10.12.0/24 的路由</code></pre><p>于是只能使用：</p><pre><code class="language-text">default</code></pre><p>最终流量就会变成：</p><pre><code class="language-text">10.10.12.1
    ↓
默认路由
    ↓
ens18
    ↓
公网网关</code></pre><p>自然无法访问内部网络。</p><p>添加：</p><pre><code class="language-bash">ip route replace 10.10.12.0/24 via 10.10.11.1 dev ens19</code></pre><p>以后，就变成：</p><pre><code class="language-text">10.10.12.1
    ↓
10.10.11.1
    ↓
ens19</code></pre><p>所以访问恢复正常。</p><hr><h2 id="十三-不要随意重启整个-networking">十三、不要随意重启整个 networking</h2><p>远程 SSH 操作服务器的时候，不建议随便执行：</p><pre><code class="language-bash">systemctl restart networking</code></pre><p>因为这个操作可能同时重启：</p><pre><code class="language-text">ens18
ens19</code></pre><p>如果 <code>ens18</code> 是当前 SSH 使用的公网网卡，一旦配置存在问题，很可能直接导致服务器失联。</p><p>修改第二张网卡时，更推荐：</p><pre><code class="language-bash">ifdown ens19
ifup ens19</code></pre><p>或者先通过临时命令测试：</p><pre><code class="language-bash">ip addr
ip route</code></pre><p>确认完全正常后，再写入永久配置。</p><hr><h2 id="十四-常用排查命令">十四、常用排查命令</h2><h3 id="查看所有网卡">查看所有网卡</h3><pre><code class="language-bash">ip addr</code></pre><h3 id="查看路由表">查看路由表</h3><pre><code class="language-bash">ip route</code></pre><h3 id="查看指定网卡">查看指定网卡</h3><pre><code class="language-bash">ip addr show ens19</code></pre><h3 id="查看访问某个-ip-使用哪条路由">查看访问某个 IP 使用哪条路由</h3><pre><code class="language-bash">ip route get 10.10.12.1</code></pre><h3 id="指定网卡-ping">指定网卡 Ping</h3><pre><code class="language-bash">ping -I ens19 10.10.11.1</code></pre><h3 id="查看-debian-网络服务">查看 Debian 网络服务</h3><pre><code class="language-bash">systemctl status networking --no-pager -l</code></pre><h3 id="查看网络服务日志">查看网络服务日志</h3><pre><code class="language-bash">journalctl -u networking -n 50 --no-pager</code></pre><hr><h2 id="十五-最终方案总结">十五、最终方案总结</h2><p>本次网络配置可以概括为：</p><pre><code class="language-text">              Debian Server

        ┌─────────────────────┐
        │                     │
公网 ──→│ ens18               │
        │ 主默认路由           │
        │                     │
内网 ──→│ ens19               │
        │ 仅配置内网 IP        │
        │ + 静态路由           │
        └─────────────────────┘</code></pre><p>公网：</p><pre><code class="language-text">默认流量
↓
ens18
↓
公网网关</code></pre><p>内网：</p><pre><code class="language-text">10.10.11.0/24
↓
ens19 直连</code></pre><p>其他内部网段：</p><pre><code class="language-text">10.10.12.0/24
10.10.13.0/24
10.10.14.0/24
↓
10.10.11.1
↓
ens19</code></pre><p>这种方式的优势是：</p><ul><li><p>不影响公网默认出口</p></li><li><p>不需要双默认网关</p></li><li><p>路由关系清晰</p></li><li><p>不容易出现默认路由冲突</p></li><li><p>支持多个内部网段</p></li><li><p>Debian 重启后可以自动恢复</p></li><li><p>非常适合 IDC、管理网络、监控网络、业务内网等双网卡服务器环境</p></li></ul><p>对于一台同时连接公网和多个内部网段的 Debian 服务器来说，<strong>主网卡负责默认路由，副网卡配合静态路由</strong>，通常是更加简单、稳定、容易维护的方案。</p>]]></content:encoded>
</item>
<item>
<title>Windows 远程桌面账户被锁定的快速处理方法</title>
<link>https://www.csbsgyl.com/archives/windows-yuan-cheng-zhuo-mian-zhang-hu-bei-suo-ding-de-kuai-su-chu-li-fang-fa/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/windows-yuan-cheng-zhuo-mian-zhang-hu-bei-suo-ding-de-kuai-su-chu-li-fang-fa/</guid>
<pubDate>Tue, 08 Sep 2026 11:39:36 +0800</pubDate>
<description>Windows 远程桌面因多次登录失败导致账户被锁定时，可以通过 VNC 进入系统，在管理员 PowerShell 中关闭账户锁定策略，快速恢复远程登录。 大家好，我是云核筑梦家。</description>
<category>网络</category>
<category>有用的小知识</category>
<content:encoded><![CDATA[<p><strong>摘要：</strong> Windows 远程桌面因多次登录失败导致账户被锁定时，可以通过 VNC 进入系统，在管理员 PowerShell 中关闭账户锁定策略，快速恢复远程登录。</p><p>大家好，我是云核筑梦家。</p><p>在使用 Windows 远程桌面连接服务器时，有时候会遇到下面这样的提示：</p><p>“为安全考虑，已锁定该用户账户，原因是登录尝试或密码更改尝试过多。请稍候片刻再重试，或与系统管理员联系。”</p><p>这种情况通常是 Windows 的账户锁定策略被触发。</p><p>如果此时远程桌面已经无法登录，但是还可以通过服务器的 VNC 控制台进入 Windows，就可以直接在系统中修改账户锁定策略。</p><h2 id="一-通过vnc进入windows">一、通过VNC进入Windows</h2><p>首先通过服务器提供的 VNC 控制台进入 Windows 系统。</p><p>进入桌面以后，打开：</p><pre><code>Windows PowerShell</code></pre><p>建议右键选择：</p><p><strong>以管理员身份运行</strong></p><p>后面的命令都建议在管理员 PowerShell 中执行。</p><h2 id="二-查看当前账户锁定策略">二、查看当前账户锁定策略</h2><p>首先执行：</p><pre><code>net accounts</code></pre><p>执行以后可以看到当前 Windows 的账户策略，例如：</p><pre><code>强制用户在时间到期之后多久必须注销?: 从不
密码最短使用期限(天): 0
密码最长使用期限(天): 42
密码长度最小值: 0
锁定阈值: 5
锁定持续时间(分): 10
锁定观察窗口(分): 10
计算机角色: WORKSTATION</code></pre><p>这里主要需要关注：</p><ul><li><p>锁定阈值</p></li><li><p>锁定持续时间</p></li><li><p>锁定观察窗口</p></li></ul><p>例如：</p><pre><code>锁定阈值: 5</code></pre><p>表示账户连续登录失败达到 5 次以后，Windows 会自动锁定该账户。</p><h2 id="三-关闭账户锁定策略">三、关闭账户锁定策略</h2><p>如果现在需要关闭账户锁定，可以执行：</p><pre><code>net accounts /lockoutthreshold:0</code></pre><p>执行成功以后会提示：</p><pre><code>命令成功完成。</code></pre><p>这里的数字 0 代表：</p><p><strong>从不因为连续登录失败而锁定账户。</strong></p><p>也就是说，设置完成以后，不会再因为密码连续输入错误达到一定次数而触发账户锁定。</p><h2 id="四-确认是否设置成功">四、确认是否设置成功</h2><p>设置完成以后，再次执行：</p><pre><code>net accounts</code></pre><p>然后查看锁定阈值。</p><p>如果看到：</p><pre><code>锁定阈值: 从不</code></pre><p>说明账户锁定策略已经成功关闭。</p><p>此时可能仍然会看到：</p><pre><code>锁定持续时间(分): 10
锁定观察窗口(分): 10</code></pre><p>这个不用处理。</p><p>只要锁定阈值已经显示为“从不”，就代表账户不会再因为连续登录失败而触发锁定。</p><h2 id="五-快速处理方法">五、快速处理方法</h2><p>如果只是需要快速处理远程桌面账户锁定的问题，实际上只需要执行两条命令。</p><p>首先关闭账户锁定：</p><pre><code>net accounts /lockoutthreshold:0</code></pre><p>然后查看是否已经生效：</p><pre><code>net accounts</code></pre><p>确认输出中出现：</p><pre><code>锁定阈值: 从不</code></pre><p>即可重新测试 Windows 远程桌面登录。</p><h2 id="六-重新开启账户锁定策略">六、重新开启账户锁定策略</h2><p>如果后续需要重新开启账户锁定，例如设置连续登录错误 10 次以后锁定，可以执行：</p><pre><code>net accounts /lockoutthreshold:10
net accounts /lockoutduration:10
net accounts /lockoutwindow:10</code></pre><p>这三条命令分别代表：</p><ul><li><p>连续登录失败 10 次后锁定</p></li><li><p>账户锁定时间为 10 分钟</p></li><li><p>锁定观察窗口为 10 分钟</p></li></ul><p>设置完成以后再次执行：</p><pre><code>net accounts</code></pre><p>正常情况下可以看到：</p><pre><code>锁定阈值: 10
锁定持续时间(分): 10
锁定观察窗口(分): 10</code></pre><p>说明账户锁定策略已经重新开启。</p><h2 id="七-常用命令整理">七、常用命令整理</h2><p>查看当前 Windows 账户策略：</p><pre><code>net accounts</code></pre><p>关闭账户锁定：</p><pre><code>net accounts /lockoutthreshold:0</code></pre><p>设置连续登录失败 10 次后锁定：</p><pre><code>net accounts /lockoutthreshold:10</code></pre><p>设置账户锁定时间为 10 分钟：</p><pre><code>net accounts /lockoutduration:10</code></pre><p>设置锁定观察窗口为 10 分钟：</p><pre><code>net accounts /lockoutwindow:10</code></pre><h2 id="八-处理流程">八、处理流程</h2><p>整个处理过程可以简单理解为：</p><pre><code>RDP提示账户被锁定
        ↓
通过VNC进入Windows
        ↓
管理员运行PowerShell
        ↓
执行 net accounts
        ↓
查看账户锁定策略
        ↓
执行 net accounts /lockoutthreshold:0
        ↓
再次执行 net accounts
        ↓
确认“锁定阈值: 从不”
        ↓
重新测试远程桌面</code></pre><h2 id="九-总结">九、总结</h2><p>当 Windows 远程桌面提示：</p><p>“已锁定该用户账户”</p><p>并且还可以通过 VNC 进入 Windows 时，可以直接使用管理员 PowerShell 处理。</p><p>首先执行：</p><pre><code>net accounts</code></pre><p>查看当前账户锁定策略。</p><p>然后执行：</p><pre><code>net accounts /lockoutthreshold:0</code></pre><p>关闭账户锁定。</p><p>最后再次执行：</p><pre><code>net accounts</code></pre><p>如果看到：</p><pre><code>锁定阈值: 从不</code></pre><p>说明设置已经成功。</p><p>整个处理过程中最关键的命令就是：</p><pre><code>net accounts /lockoutthreshold:0</code></pre><p>通过这个方法，可以快速处理 Windows 远程桌面因多次登录失败导致的账户锁定问题。</p>]]></content:encoded>
</item>
<item>
<title>TaierSpeedtest：Linux服务器国内三网测速工具使用教程</title>
<link>https://www.csbsgyl.com/archives/taierspeedtest-linuxfu-wu-qi-guo-nei-san-wang-ce-su-gong-ju-shi-yong-jiao-cheng/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/taierspeedtest-linuxfu-wu-qi-guo-nei-san-wang-ce-su-gong-ju-shi-yong-jiao-cheng/</guid>
<pubDate>Sat, 05 Sep 2026 18:21:09 +0800</pubDate>
<description>TaierSpeedtest 是一款第三方 Linux 网络测速工具，可测试国内电信、联通、移动不同地区节点的延迟、单线程及多线程上下行速度，并支持 IPv4、IPv6、JSON……</description>
<category>服务器</category>
<category>网络</category>
<category>Linux</category>
<category>有用的小知识</category>
<category>网络</category>
<content:encoded><![CDATA[<h2 id="摘要">摘要</h2><p>TaierSpeedtest 是一款第三方 Linux 网络测速工具，可测试国内电信、联通、移动不同地区节点的延迟、单线程及多线程上下行速度，并支持 IPv4、IPv6、JSON 输出和测速结果图片。</p><p>大家好，我是云核筑梦家。</p><p>平时我们购买云服务器、独立服务器或者测试 IDC 网络线路时，经常会遇到一个问题：</p><p>服务器带宽看起来很大，但是实际到不同运营商的网络质量到底怎么样？</p><p>例如：</p><ul><li><p>到电信速度怎么样？</p></li><li><p>到联通有没有明显瓶颈？</p></li><li><p>到移动延迟高不高？</p></li><li><p>单线程性能如何？</p></li><li><p>多线程能不能真正跑满带宽？</p></li><li><p>IPv6 网络质量怎么样？</p></li></ul><p>今天给大家介绍一个比较方便的 Linux 三网测速工具：</p><p><strong>TaierSpeedtest</strong></p><p>项目地址：</p><pre><code>https://github.com/MiaM1ku/taierspeedtest</code></pre><p>它可以直接在 Linux 服务器上运行，不需要安装桌面环境，非常适合 VPS、云服务器、IDC 服务器以及家庭 Linux 主机进行网络质量测试。</p><hr><h2 id="一-taierspeedtest-是什么">一、TaierSpeedtest 是什么？</h2><p>TaierSpeedtest 是一个使用 Go 开发的第三方 Linux 网络测速客户端。</p><p>项目 README 中介绍，该工具兼容“全球网测/泰尔测速”相关测速服务协议，可以在 Linux 环境下完成网络测速。</p><p>需要特别说明：</p><p><strong>TaierSpeedtest 是第三方社区项目，并不是官方 Linux 客户端。</strong></p><p>它最大的特点是可以直接在纯命令行 Linux 环境中运行。</p><p>目前主要支持：</p><pre><code>Linux AMD64
Linux ARM64</code></pre><p>因此常见的服务器基本都可以直接使用，例如：</p><pre><code>Debian
Ubuntu
CentOS
Rocky Linux
AlmaLinux
openEuler
Proxmox VE</code></pre><hr><h2 id="二-支持哪些测速项目">二、支持哪些测速项目？</h2><p>TaierSpeedtest 可以测试：</p><ul><li><p>IPv4</p></li><li><p>IPv6</p></li><li><p>网络延迟</p></li><li><p>单线程上传</p></li><li><p>单线程下载</p></li><li><p>多线程上传</p></li><li><p>多线程下载</p></li><li><p>电信</p></li><li><p>联通</p></li><li><p>移动</p></li><li><p>指定省份</p></li><li><p>指定城市</p></li><li><p>指定运营商</p></li></ul><p>同时还支持：</p><pre><code>JSON 输出
PNG 测速结果图
自定义线程数
自定义测速时长</code></pre><p>对于服务器线路测试来说已经比较全面。</p><hr><h2 id="三-一键运行">三、一键运行</h2><p>不需要提前安装 Go，也不需要自己编译。</p><p>直接执行：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh)</code></pre><p>脚本会自动识别当前服务器 CPU 架构，并从项目 GitHub Release 下载对应版本运行。</p><p>支持：</p><pre><code>x86_64 / amd64
aarch64 / arm64</code></pre><p>进入程序以后会看到测速点选择。</p><p>如果直接回车，默认测试：</p><pre><code>北京
上海
广州</code></pre><p>并分别测试：</p><pre><code>电信
联通
移动</code></pre><p>也就是说默认会测试北上广三地三网。</p><hr><h2 id="四-测试指定地区">四、测试指定地区</h2><p>如果我们只想测试某个地区，可以使用：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) --points 四川</code></pre><p>例如填写：</p><pre><code>四川</code></pre><p>程序会测试四川对应城市的：</p><pre><code>电信
联通
移动</code></pre><p>对于测试四川、成都方向线路来说比较方便。</p><hr><h2 id="五-指定多个地区测速">五、指定多个地区测速</h2><p>也可以一次指定多个省份或者城市。</p><p>例如：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) --points 北京,上海,浙江</code></pre><p>这样会依次测试：</p><pre><code>北京三网
上海三网
浙江三网</code></pre><p>如果想看一台服务器到全国不同区域的网络表现，这种方式会更加方便。</p><hr><h2 id="六-指定运营商测速">六、指定运营商测速</h2><p>有时候我们并不需要测试三网，只关心某一家运营商。</p><p>例如只测试成都电信：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) --points 成都电信</code></pre><p>也可以一次指定多个目标：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) --points 成都电信,杭州联通</code></pre><p>这种方式比较适合测试服务器针对特定地区、特定运营商的线路质量。</p><hr><h2 id="七-单线程与多线程测速">七、单线程与多线程测速</h2><p>TaierSpeedtest 支持两种主要测速方式：</p><h3 id="1-单线程测速">1. 单线程测速</h3><p>执行：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) --points 四川 --mode single</code></pre><p>单线程测速可以比较直观地反映：</p><pre><code>单连接下载能力
单连接上传能力
TCP 单流性能
跨区域网络质量</code></pre><p>有时候一条线路多线程可以跑满，但是单线程非常差，这种情况在实际业务中可能依然会影响用户体验。</p><hr><h3 id="2-多线程测速">2. 多线程测速</h3><p>执行：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) --points 四川 --mode multi</code></pre><p>多线程主要用于测试：</p><pre><code>线路总体吞吐能力
服务器出口能力
运营商方向最大速度</code></pre><p>如果你的服务器是：</p><pre><code>100Mbps
200Mbps
500Mbps
1Gbps</code></pre><p>可以使用多线程测速观察线路实际能够跑到多少。</p><hr><h3 id="3-单线程-多线程一起测试">3. 单线程 + 多线程一起测试</h3><p>直接使用：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) --points 四川 --mode both</code></pre><p>这个也是我比较推荐的方式。</p><p>可以同时对比：</p><pre><code>单线程上传
单线程下载
多线程上传
多线程下载</code></pre><p>对于判断服务器真实线路质量更加直观。</p><hr><h2 id="八-关闭测速结果图片">八、关闭测速结果图片</h2><p>默认情况下，测速完成后程序可以生成测速结果图片。</p><p>如果只是在服务器终端中测试，不需要生成图片，可以增加：</p><pre><code>--no-image</code></pre><p>例如：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) \
--points 四川 \
--mode both \
--no-image</code></pre><p>如果需要做脚本调用或者服务器批量检测，我更建议关闭图片功能。</p><hr><h2 id="九-json-输出">九、JSON 输出</h2><p>TaierSpeedtest 还提供了一个非常实用的功能：</p><pre><code>--json</code></pre><p>例如：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) \
--points 四川 \
--mode multi \
--no-image \
--json</code></pre><p>程序会以 JSON 格式输出测速结果。</p><p>其中可以包含：</p><pre><code>地区
IPv4 / IPv6
延迟
单线程上传
单线程下载
多线程上传
多线程下载</code></pre><p>这个功能非常适合后续进行自动化处理。</p><p>例如可以继续开发成：</p><pre><code>TaierSpeedtest
      ↓
JSON
      ↓
测速数据采集程序
      ↓
Prometheus
      ↓
Grafana</code></pre><p>最终实现自己的服务器三网测速监控平台。</p><hr><h2 id="十-ipv6-测速">十、IPv6 测速</h2><p>如果服务器 IPv6 可以正常访问互联网，程序会自动检测并增加 IPv6 测试。</p><p>如果不需要测试 IPv6，可以使用：</p><pre><code>--no-ipv6</code></pre><p>例如：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) \
--points 四川 \
--no-ipv6</code></pre><p>如果希望强制进行 IPv6 测试，可以使用：</p><pre><code>--ipv6</code></pre><hr><h2 id="十一-自定义测速线程">十一、自定义测速线程</h2><p>默认多线程情况下：</p><pre><code>下载线程：8
上传线程：4</code></pre><p>可以通过参数自行调整。</p><p>例如：</p><pre><code>--down-threads 8
--up-threads 4</code></pre><p>完整示例：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) \
--points 四川 \
--mode multi \
--down-threads 8 \
--up-threads 4 \
--no-image</code></pre><p>通常没有特殊需求的话，保持默认即可。</p><p>线程数并不是越大越好。</p><p>过高的线程数可能会让测速结果失去实际参考意义，同时也会增加测速服务器以及本机网络负载。</p><hr><h2 id="十二-自定义测速时间">十二、自定义测速时间</h2><p>程序支持：</p><pre><code>--duration</code></pre><p>例如：</p><pre><code>--duration 5</code></pre><p>表示每个测速方向测试约 5 秒。</p><p>程序内部对测速时间进行了限制，目前单个方向最低约 5 秒，最高约 13 秒。</p><p>一般使用默认参数就已经足够。</p><hr><h2 id="十三-常用命令整理">十三、常用命令整理</h2><h3 id="四川三网测速">四川三网测速</h3><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) --points 四川</code></pre><h3 id="成都电信测速">成都电信测速</h3><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) --points 成都电信</code></pre><h3 id="四川三网多线程测速">四川三网多线程测速</h3><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) \
--points 四川 \
--mode multi</code></pre><h3 id="四川三网测速并关闭图片">四川三网测速并关闭图片</h3><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) \
--points 四川 \
--mode both \
--no-image</code></pre><h3 id="json-输出">JSON 输出</h3><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) \
--points 四川 \
--mode multi \
--no-image \
--json</code></pre><h3 id="不测试-ipv6">不测试 IPv6</h3><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh) \
--points 四川 \
--no-ipv6</code></pre><hr><h2 id="十四-需要注意流量消耗">十四、需要注意流量消耗</h2><p>这里需要特别提醒一下。</p><p>TaierSpeedtest 和 Ping、TCP 探测不一样。</p><p>Ping 测试可能只产生几十 KB 的流量，而真正的上下行测速会主动产生大量网络数据。</p><p>尤其是在：</p><pre><code>高带宽服务器
多线程测速
同时测试多个地区
同时测试三网
IPv4 + IPv6</code></pre><p>这些情况下，一次完整测试可能产生比较明显的流量。</p><p>因此不建议配置类似：</p><pre><code>每分钟测速一次
每5分钟测速一次</code></pre><p>这种高频自动任务。</p><p>如果只是长期观察服务器线路质量，可以考虑：</p><pre><code>30分钟一次
1小时一次
每天固定时间测试</code></pre><p>具体频率需要根据自己的服务器带宽、流量套餐以及实际需求决定。</p><hr><h2 id="十五-它适合哪些场景">十五、它适合哪些场景？</h2><p>个人认为这个工具比较适合以下场景。</p><h3 id="vps-线路测试">VPS 线路测试</h3><p>购买 VPS 后，可以快速看看：</p><pre><code>电信怎么样
联通怎么样
移动怎么样</code></pre><hr><h3 id="idc-服务器验收">IDC 服务器验收</h3><p>服务器上架以后，可以测试：</p><pre><code>出口带宽
不同运营商速度
不同地区线路质量</code></pre><hr><h3 id="bgp-多线服务器测试">BGP 多线服务器测试</h3><p>如果服务器使用的是：</p><pre><code>电信
联通
移动
BGP</code></pre><p>可以通过不同运营商测速结果，大概判断线路质量是否均衡。</p><hr><h3 id="网络调整前后对比">网络调整前后对比</h3><p>例如：</p><pre><code>更换上游线路
调整 BGP
更换出口
调整路由策略
更换防火墙
更换机房</code></pre><p>都可以在调整前后各跑一次测速进行对比。</p><hr><h2 id="十六-不要把测速当成带宽的绝对标准">十六、不要把测速当成带宽的绝对标准</h2><p>测速结果只能作为一个参考。</p><p>网络速度会受到很多因素影响，例如：</p><pre><code>测速服务器负载
测试时间
跨网互联情况
TCP 拥塞控制
服务器 CPU
服务器网卡
出口带宽
运营商路由
网络拥塞
丢包
延迟</code></pre><p>所以：</p><pre><code>一次测速结果 ≠ 线路永久性能</code></pre><p>建议在不同时间段进行多次测试。</p><p>例如：</p><pre><code>上午
下午
晚高峰
凌晨</code></pre><p>这样得到的数据会更有参考价值。</p><hr><h2 id="十七-关于项目安全和使用边界">十七、关于项目安全和使用边界</h2><p>TaierSpeedtest 是第三方社区项目。</p><p>在使用这类项目时，建议遵循以下原则：</p><pre><code>仅用于个人网络质量测试
避免高频自动测速
避免大规模批量测试
不要对公共测速资源进行持续压测</code></pre><p>同时建议安装前自行查看项目源码及更新记录。</p><p>对于生产服务器，也可以先在测试环境确认程序行为后再进行使用。</p><hr><h2 id="十八-免责声明">十八、免责声明</h2><p>本文介绍的 TaierSpeedtest 为第三方社区项目，与中国信息通信研究院、“全球网测”及相关官方机构不存在隶属、合作或授权关系。</p><p>本文内容仅用于 Linux 网络环境下的个人网络质量测试、技术研究与学习交流，不建议用于商业测速服务、大规模批量测试、高频自动测速或其他可能对公共测速服务造成额外负载的场景。</p><p>项目所涉及的名称、服务、接口及相关权益归其原权利人所有。项目功能及可用性可能随着服务端调整而发生变化，请以项目原仓库说明及相关服务条款为准。</p><p>本文不重新分发项目程序及二进制文件，安装命令均指向项目原 GitHub 仓库。使用者应自行评估网络流量消耗，并遵守当地法律法规及相关服务使用规则。</p><hr><h2 id="十九-总结">十九、总结</h2><p>TaierSpeedtest 最大的优势就是：</p><pre><code>无需桌面环境
Linux 直接运行
支持 AMD64 / ARM64
支持电信 / 联通 / 移动
支持指定地区
支持单线程测速
支持多线程测速
支持 IPv4 / IPv6
支持 JSON
支持测速结果图片</code></pre><p>对于平时经常折腾：</p><pre><code>VPS
云服务器
IDC
BGP
网络线路
服务器出口</code></pre><p>的朋友来说，是一个比较方便的线路测试工具。</p><p>如果只是临时测试服务器到国内不同运营商的网络质量，直接一条命令就可以完成：</p><pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/MiaM1ku/taierspeedtest/main/run.sh)</code></pre><p>项目地址：</p><pre><code>https://github.com/MiaM1ku/taierspeedtest</code></pre><p>建议大家合理使用公共测速资源，不要进行高频、持续或者大规模测速。</p>]]></content:encoded>
</item>
<item>
<title>CentOS Stream 9 使用 FRR 与华为 USG 建立 BGP 动态同步 ZeroTier 路由</title>
<link>https://www.csbsgyl.com/archives/centos-stream-9-shi-yong-frr-yu-hua-wei-usg-jian-li-bgp-dong-tai-tong-bu-zerotier-lu-you/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/centos-stream-9-shi-yong-frr-yu-hua-wei-usg-jian-li-bgp-dong-tai-tong-bu-zerotier-lu-you/</guid>
<pubDate>Thu, 03 Sep 2026 19:13:32 +0800</pubDate>
<description>本文介绍如何在 CentOS Stream 9 部署 FRRouting，通过 eBGP 将 ZeroTier 动态路由自动同步至华为 USG，替代传统静态路由维护。 大家好，我是云核筑梦家。</description>
<category>网络</category>
<category>华为交换机</category>
<category>Linux</category>
<category>网络</category>
<content:encoded><![CDATA[<blockquote><p>摘要：本文介绍如何在 CentOS Stream 9 部署 FRRouting，通过 eBGP 将 ZeroTier 动态路由自动同步至华为 USG，替代传统静态路由维护。</p></blockquote><p>大家好，我是<strong>云核筑梦家</strong>。</p><p>在使用 ZeroTier 做异地组网时，我们通常会在 ZeroTier Controller 中配置 Managed Routes，让 Linux 自动获得不同远端节点的业务路由。</p><p>如果 Linux 上层还有华为 USG 防火墙，传统方式一般需要在防火墙上手工添加静态路由。节点和业务网段越来越多后，每次新增、删除或调整路由都需要重复修改防火墙配置，维护成本会逐渐增加。</p><p>本文通过 <strong>FRRouting（FRR）+ BGP</strong> 实现自动同步：</p><p><strong>ZeroTier 路由变化 → Linux Kernel 路由变化 → FRR 自动读取 → BGP 发布/撤销 → 华为 USG 自动更新路由</strong></p><p>这样以后只需要管理 ZeroTier 路由，华为侧无需再逐条维护对应的静态路由。</p><blockquote><p>本文所有 IP、AS 号、接口名称和业务网段均为实验示例，请根据实际网络环境修改。</p></blockquote><h2 id="一-实验环境">一、实验环境</h2><p>本文使用以下实验参数：</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>设备</p></th><th scope="col" colspan="1" rowspan="1"><p>IP 地址</p></th><th scope="col" colspan="1" rowspan="1"><p>BGP AS</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>华为 USG</p></td><td colspan="1" rowspan="1"><p><code>10.88.200.1/24</code></p></td><td colspan="1" rowspan="1"><p><code>65100</code></p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>CentOS Stream 9</p></td><td colspan="1" rowspan="1"><p><code>10.88.200.2/24</code></p></td><td colspan="1" rowspan="1"><p><code>65101</code></p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>Linux ZeroTier 地址</p></td><td colspan="1" rowspan="1"><p><code>10.66.0.2/24</code></p></td><td colspan="1" rowspan="1"><p>-</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>ZeroTier 节点 A</p></td><td colspan="1" rowspan="1"><p><code>10.66.0.3</code></p></td><td colspan="1" rowspan="1"><p>-</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>ZeroTier 节点 B</p></td><td colspan="1" rowspan="1"><p><code>10.66.0.4</code></p></td><td colspan="1" rowspan="1"><p>-</p></td></tr></tbody></table></div></div><p>Linux 与华为通过 <code>10.88.200.0/24</code> 建立 eBGP。</p><p>ZeroTier 虚拟网络使用 <code>10.66.0.0/24</code>。</p><p>实验中的业务路由示例：</p><ul><li><p><code>10.20.0.0/21</code> 下一跳 <code>10.66.0.4</code></p></li><li><p><code>172.20.11.0/24</code> 下一跳 <code>10.66.0.3</code></p></li><li><p><code>172.20.12.0/24</code> 下一跳 <code>10.66.0.3</code></p></li><li><p><code>172.20.13.0/24</code> 下一跳 <code>10.66.0.3</code></p></li><li><p><code>172.20.14.0/24</code> 下一跳 <code>10.66.0.3</code></p></li></ul><h2 id="二-安装-frrouting">二、安装 FRRouting</h2><p>先确认系统版本：</p><pre><code>cat /etc/os-release</code></pre><p>本文使用 CentOS Stream 9。</p><p>安装 FRR：</p><pre><code>dnf install -y frr</code></pre><p>查看软件包信息：</p><pre><code>dnf info frr</code></pre><h2 id="三-启用-bgp-服务">三、启用 BGP 服务</h2><p>FRR 安装完成后，默认可能没有启用 BGP Daemon。</p><p>查看当前配置：</p><pre><code>grep -E '^(bgpd|bfdd|vtysh_enable)=' /etc/frr/daemons</code></pre><p>如果看到：</p><pre><code>bgpd=no</code></pre><p>执行：</p><pre><code>sed -i 's/^bgpd=no/bgpd=yes/' /etc/frr/daemons</code></pre><p>启动 FRR，并设置为开机启动：</p><pre><code>systemctl enable frr
systemctl restart frr</code></pre><p>检查进程：</p><pre><code>ps -ef | grep -E 'bgpd|zebra' | grep -v grep</code></pre><p>正常情况下应该能够看到 <code>zebra</code> 和 <code>bgpd</code> 进程。</p><h2 id="四-确认-zerotier-路由">四、确认 ZeroTier 路由</h2><p>查看 Linux 当前路由：</p><pre><code>ip route</code></pre><p>实验环境可能类似：</p><pre><code>default via 10.88.200.1 dev eth1 proto static metric 100
10.20.0.0/21 via 10.66.0.4 dev ztxxxxxxxx proto static metric 5000
10.88.200.0/24 dev eth1 proto kernel scope link
10.66.0.0/24 dev ztxxxxxxxx proto kernel scope link
172.20.11.0/24 via 10.66.0.3 dev ztxxxxxxxx proto static metric 5000
172.20.12.0/24 via 10.66.0.3 dev ztxxxxxxxx proto static metric 5000
172.20.13.0/24 via 10.66.0.3 dev ztxxxxxxxx proto static metric 5000
172.20.14.0/24 via 10.66.0.3 dev ztxxxxxxxx proto static metric 5000</code></pre><p>这里的重点是：<strong>不要在 FRR 中把所有业务网段一个一个写死。</strong></p><p>例如不建议采用：</p><pre><code>network 10.20.0.0/21
network 172.20.11.0/24
network 172.20.12.0/24</code></pre><p>否则以后 ZeroTier 新增一个业务网段，还要再次登录 Linux 修改 FRR。</p><p>本文希望实现的效果是：</p><blockquote><p>只要 Linux Kernel 中出现“下一跳属于 ZeroTier 地址池”的路由，就自动通过 BGP 发布给华为。</p></blockquote><h2 id="五-配置-zerotier-下一跳过滤">五、配置 ZeroTier 下一跳过滤</h2><p>进入 FRR：</p><pre><code>vtysh</code></pre><p>假设 ZeroTier 虚拟地址池为：</p><p><code>10.66.0.0/24</code></p><p>创建 Prefix List：</p><pre><code>configure terminal

ip prefix-list ZT-NEXTHOP seq 10 permit 10.66.0.0/24 le 32</code></pre><p>这条规则用来匹配下一跳属于 <code>10.66.0.0/24</code> 的路由。</p><p>例如：</p><ul><li><p><code>10.66.0.3</code> 可以匹配</p></li><li><p><code>10.66.0.4</code> 可以匹配</p></li><li><p><code>10.88.200.1</code> 不匹配</p></li></ul><p>因此 Linux 默认路由不会被错误发布出去。</p><h2 id="六-创建-kernel-路由重分发策略">六、创建 Kernel 路由重分发策略</h2><p>创建 Route-Map：</p><pre><code>route-map ZT-REDIST permit 10
 match ip next-hop prefix-list ZT-NEXTHOP
 set community 65101:100 additive
exit</code></pre><p>它的工作逻辑如下：</p><ol><li><p>FRR 获取 Linux Kernel 路由。</p></li><li><p>检查该路由的下一跳。</p></li><li><p>如果下一跳属于 ZeroTier 地址池，则允许进入 BGP。</p></li><li><p>给路由增加 <code>65101:100</code> Community。</p></li></ol><p>例如：</p><p><code>172.20.11.0/24 via 10.66.0.3</code></p><p>能够通过过滤。</p><p>而：</p><p><code>0.0.0.0/0 via 10.88.200.1</code></p><p>不会通过。</p><h2 id="七-增加第二层出口过滤">七、增加第二层出口过滤</h2><p>为了进一步降低误发布路由的风险，可以增加一层 Community 过滤。</p><p>创建 Community List：</p><pre><code>bgp community-list standard ZT-COMMUNITY permit 65101:100</code></pre><p>创建出口 Route-Map：</p><pre><code>route-map ZT-OUT permit 10
 match community ZT-COMMUNITY
exit</code></pre><p>这样只有经过 <code>ZT-REDIST</code> 正确处理，并带有 <code>65101:100</code> Community 的路由，才能最终发送给华为。</p><p>完整逻辑为：</p><p><strong>Kernel 路由 → 检查 ZeroTier 下一跳 → 打 Community → 出口再次检查 → 发布给 USG</strong></p><p>这种做法可以降低以后误配置其他 BGP 路由时被意外发布给防火墙的风险。</p><h2 id="八-禁止华为反向向-linux-注入路由">八、禁止华为反向向 Linux 注入路由</h2><p>本文主要需求是：</p><p><strong>Linux → Huawei USG</strong></p><p>不需要：</p><p><strong>Huawei USG → Linux</strong></p><p>因此创建入口拒绝策略：</p><pre><code>route-map BLOCK-IN deny 10
exit</code></pre><p>这样即使以后华为侧误配置了“引入静态路由”“引入直连路由”或其他 BGP 路由，Linux 也不会接收。</p><h2 id="九-配置-linux-bgp">九、配置 Linux BGP</h2><p>实验参数：</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>参数</p></th><th scope="col" colspan="1" rowspan="1"><p>Linux</p></th><th scope="col" colspan="1" rowspan="1"><p>华为 USG</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>IP</p></td><td colspan="1" rowspan="1"><p><code>10.88.200.2</code></p></td><td colspan="1" rowspan="1"><p><code>10.88.200.1</code></p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>AS</p></td><td colspan="1" rowspan="1"><p><code>65101</code></p></td><td colspan="1" rowspan="1"><p><code>65100</code></p></td></tr></tbody></table></div></div><p>配置：</p><pre><code>router bgp 65101
 bgp router-id 10.88.200.2
 bgp log-neighbor-changes

 neighbor 10.88.200.1 remote-as 65100
 neighbor 10.88.200.1 description Huawei-USG

 address-family ipv4 unicast
  redistribute kernel route-map ZT-REDIST
  neighbor 10.88.200.1 route-map BLOCK-IN in
  neighbor 10.88.200.1 route-map ZT-OUT out
 exit-address-family
exit</code></pre><p>保存配置：</p><pre><code>end
write memory</code></pre><p>FRR 配置默认保存到：</p><pre><code>/etc/frr/frr.conf</code></pre><p>建议做一次备份：</p><pre><code>cp /etc/frr/frr.conf /root/frr.conf.production-$(date +%Y%m%d-%H%M%S)</code></pre><h2 id="十-linux-最终核心配置">十、Linux 最终核心配置</h2><p>最终核心配置如下：</p><pre><code>ip prefix-list ZT-NEXTHOP seq 10 permit 10.66.0.0/24 le 32

bgp community-list standard ZT-COMMUNITY permit 65101:100

route-map ZT-REDIST permit 10
 match ip next-hop prefix-list ZT-NEXTHOP
 set community 65101:100 additive
exit

route-map ZT-OUT permit 10
 match community ZT-COMMUNITY
exit

route-map BLOCK-IN deny 10
exit

router bgp 65101
 bgp router-id 10.88.200.2
 bgp log-neighbor-changes
 neighbor 10.88.200.1 remote-as 65100
 neighbor 10.88.200.1 description Huawei-USG

 address-family ipv4 unicast
  redistribute kernel route-map ZT-REDIST
  neighbor 10.88.200.1 route-map BLOCK-IN in
  neighbor 10.88.200.1 route-map ZT-OUT out
 exit-address-family
exit</code></pre><p>这里没有写死任何业务网段。</p><p>需要固定的只有：</p><ul><li><p>华为和 Linux 的 BGP 邻居地址</p></li><li><p>ZeroTier 虚拟地址池</p></li><li><p>两端 BGP AS</p></li></ul><p>以后业务网段增加或删除，不需要修改这段配置。</p><h2 id="十一-配置华为-usg-bgp">十一、配置华为 USG BGP</h2><p>华为侧开启 BGP，实验参数如下：</p><ul><li><p>本地 AS：<code>65100</code></p></li><li><p>Router ID：<code>10.88.200.1</code></p></li><li><p>邻居 IP：<code>10.88.200.2</code></p></li><li><p>邻居 AS：<code>65101</code></p></li></ul><p>因为华为和 Linux 位于同一个三层网段，所以属于直连 eBGP。</p><p>EBGP 最大跳数保持 <code>1</code> 即可。</p><p>BFD 前期可以暂时关闭，先确保普通 BGP 稳定运行。</p><p>CLI 配置逻辑类似：</p><pre><code>bgp 65100
 router-id 10.88.200.1
 peer 10.88.200.2 as-number 65101

 ipv4-family unicast
  peer 10.88.200.2 enable</code></pre><p>不同 USG 软件版本的 CLI 命令可能略有差异，也可以直接通过 Web 页面配置。</p><h2 id="十二-检查-bgp-邻居">十二、检查 BGP 邻居</h2><p>Linux 执行：</p><pre><code>vtysh -c "show bgp ipv4 unicast summary"</code></pre><p>正常情况下可以看到类似：</p><pre><code>Neighbor       V     AS      State/PfxRcd   PfxSnt
10.88.200.1    4     65100              0        5</code></pre><p>如果 <code>State/PfxRcd</code> 显示数字，而不是 <code>Idle</code>、<code>Active</code> 或 <code>Connect</code>，说明 BGP 已经进入 Established 状态。</p><p>这里显示 <code>0</code> 是正常的。</p><p>因为本文通过 <code>BLOCK-IN</code> 禁止 Linux 接收华为发布的路由，所以 Linux 收到的 Prefix 数量为 0。</p><p><code>PfxSnt 5</code> 表示 Linux 正在向华为发送 5 条路由。</p><h2 id="十三-查看-frr-获取到的-linux-路由">十三、查看 FRR 获取到的 Linux 路由</h2><p>执行：</p><pre><code>vtysh -c "show ip route"</code></pre><p>示例：</p><pre><code>K&gt;* 10.20.0.0/21 [0/5000] via 10.66.0.4
K&gt;* 172.20.11.0/24 [0/5000] via 10.66.0.3
K&gt;* 172.20.12.0/24 [0/5000] via 10.66.0.3
K&gt;* 172.20.13.0/24 [0/5000] via 10.66.0.3
K&gt;* 172.20.14.0/24 [0/5000] via 10.66.0.3</code></pre><p>其中：</p><p><code>K = Kernel Route</code></p><p>这也是本文最终使用：</p><pre><code>redistribute kernel route-map ZT-REDIST</code></pre><p>而不是 <code>redistribute static</code> 的原因。</p><h2 id="十四-检查-linux-实际发布了哪些路由">十四、检查 Linux 实际发布了哪些路由</h2><p>执行：</p><pre><code>vtysh -c "show bgp ipv4 unicast neighbors 10.88.200.1 advertised-routes"</code></pre><p>正常应该只看到业务路由，例如：</p><pre><code>10.20.0.0/21
172.20.11.0/24
172.20.12.0/24
172.20.13.0/24
172.20.14.0/24</code></pre><p>不应该看到：</p><pre><code>0.0.0.0/0
10.88.200.0/24
10.66.0.0/24</code></pre><p>如果只发布预期业务网段，就说明 Route-Map 已经正常工作。</p><h2 id="十五-华为查看学习到的路由">十五、华为查看学习到的路由</h2><p>查看 BGP 邻居：</p><pre><code>display bgp peer</code></pre><p>邻居状态应该为：</p><p><code>Established</code></p><p>查看 BGP 路由：</p><pre><code>display bgp routing-table</code></pre><p>查看已经进入主路由表的 BGP 路由：</p><pre><code>display ip routing-table protocol bgp</code></pre><p>实验环境示例：</p><pre><code>Destination/Mask    Proto   Cost    NextHop       Interface
10.20.0.0/21        EBGP    5000    10.88.200.2   Vlanif200
172.20.11.0/24      EBGP    5000    10.88.200.2   Vlanif200
172.20.12.0/24      EBGP    5000    10.88.200.2   Vlanif200
172.20.13.0/24      EBGP    5000    10.88.200.2   Vlanif200
172.20.14.0/24      EBGP    5000    10.88.200.2   Vlanif200</code></pre><p>如果路由 Flags 中带有 <code>D</code>，表示该路由已经 Download to FIB，可以参与实际转发。</p><h2 id="十六-原有静态路由不要一次性删除">十六、原有静态路由不要一次性删除</h2><p>生产环境建议采用渐进式切换。</p><p>推荐顺序：</p><ol><li><p>建立 BGP。</p></li><li><p>确认邻居状态为 Established。</p></li><li><p>确认所有业务路由已经通过 BGP 学习。</p></li><li><p>选择一个测试网段。</p></li><li><p>删除该网段原有静态路由。</p></li><li><p>查看该路由是否自动切换为 EBGP。</p></li><li><p>测试实际业务访问。</p></li><li><p>确认无问题后，再删除剩余静态路由。</p></li></ol><p>例如：</p><pre><code>display ip routing-table 172.20.14.0</code></pre><p>确认协议已经变成 <code>EBGP</code>，下一跳正确指向 Linux 后，再继续清理其他静态路由。</p><h2 id="十七-新增-zerotier-路由测试">十七、新增 ZeroTier 路由测试</h2><p>假设以后在 ZeroTier Controller 中新增：</p><p><code>192.168.88.0/24 via 10.66.0.8</code></p><p>Linux 自动获得：</p><pre><code>192.168.88.0/24 via 10.66.0.8 dev ztxxxxxxxx</code></pre><p>因为 <code>10.66.0.8</code> 属于 <code>10.66.0.0/24</code>，所以会自动被 <code>ZT-REDIST</code> 匹配。</p><p>随后流程为：</p><p><strong>ZeroTier → Linux Kernel → FRR → BGP → Huawei USG</strong></p><p>华为最终会自动获得：</p><p><code>192.168.88.0/24 → 10.88.200.2</code></p><p>整个过程中不需要再次登录华为新增静态路由。</p><h2 id="十八-删除-zerotier-路由">十八、删除 ZeroTier 路由</h2><p>如果在 ZeroTier Controller 中删除：</p><p><code>192.168.88.0/24 via 10.66.0.8</code></p><p>Linux Kernel 中对应路由消失后，FRR 会自动向华为发送 BGP Withdraw。</p><p>华为随后自动删除对应 BGP 路由。</p><p>因此可以实现：</p><p><strong>添加 Managed Route 自动发布，删除 Managed Route 自动撤销。</strong></p><h2 id="十九-常用排查命令">十九、常用排查命令</h2><p>Linux 查看 BGP 邻居：</p><pre><code>vtysh -c "show bgp ipv4 unicast summary"</code></pre><p>查看 FRR 路由：</p><pre><code>vtysh -c "show ip route"</code></pre><p>查看 BGP 路由：</p><pre><code>vtysh -c "show bgp ipv4 unicast"</code></pre><p>查看实际向华为发布的路由：</p><pre><code>vtysh -c "show bgp ipv4 unicast neighbors 10.88.200.1 advertised-routes"</code></pre><p>查看 FRR 服务：</p><pre><code>systemctl status frr</code></pre><p>查看 BGP 进程：</p><pre><code>ps -ef | grep bgpd</code></pre><p>查看 TCP 179：</p><pre><code>ss -lntp | grep ':179'</code></pre><p>华为查看邻居：</p><pre><code>display bgp peer</code></pre><p>华为查看 BGP 路由：</p><pre><code>display bgp routing-table</code></pre><p>华为查看已经安装的 BGP 路由：</p><pre><code>display ip routing-table protocol bgp</code></pre><h2 id="二十-目前方案仍存在的一个问题">二十、目前方案仍存在的一个问题</h2><p>这套方案解决的是：</p><p><strong>Linux Kernel 路由发生变化后，华为能够自动同步。</strong></p><p>但仍有一种特殊情况需要注意。</p><p>假设 Linux 中存在：</p><p><code>172.20.11.0/24 via 10.66.0.3</code></p><p>如果 ZeroTier 节点 <code>10.66.0.3</code> 已经掉线，但是 ZeroTier Managed Route 暂时仍保留在 Linux Kernel 中，那么 FRR 依然会认为这条路由存在。</p><p>此时可能出现：</p><p><strong>ZeroTier 节点失联 → Kernel 路由仍存在 → FRR 继续发布 → 华为继续转发 → 流量黑洞</strong></p><p>对于要求更高的生产环境，可以进一步增加：</p><ul><li><p>ZeroTier 节点健康检测</p></li><li><p>自动路由撤销</p></li><li><p>BFD</p></li><li><p>脚本联动</p></li><li><p>双 Linux FRR 冗余</p></li><li><p>BGP MED 主备控制</p></li></ul><p>这些可以作为后续进一步优化的方向。</p><h2 id="总结">总结</h2><p>本文通过 <strong>CentOS Stream 9 + FRRouting + ZeroTier + Huawei USG</strong> 实现了 ZeroTier 业务路由自动同步。</p><p>传统方式需要：</p><p><strong>新增业务网段 → 登录防火墙 → 添加静态路由</strong></p><p>改造以后变成：</p><p><strong>ZeroTier 添加 Managed Route → 自动同步至 Huawei USG</strong></p><p>FRR 使用 <code>redistribute kernel</code> 获取 Linux Kernel 路由，再通过 Route-Map 只选择下一跳属于 ZeroTier 网段的路由。</p><p>同时使用 Community 和出口 Route-Map 做第二层过滤，降低默认路由、管理网段或其他非预期路由被错误发布的风险。</p><p>对于 ZeroTier 节点较多、业务网段经常增加或调整的环境，这种方案可以明显减少静态路由维护工作量，也让路由增加和撤销更加自动化。</p>]]></content:encoded>
</item>
<item>
<title>PVE 挂载飞牛 fnOS NFS 作为虚拟机存储教程</title>
<link>https://www.csbsgyl.com/archives/pve-gua-zai-fei-niu-fnos-nfs-zuo-wei-xu-ni-ji-cun-chu-jiao-cheng/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/pve-gua-zai-fei-niu-fnos-nfs-zuo-wei-xu-ni-ji-cun-chu-jiao-cheng/</guid>
<pubDate>Mon, 31 Aug 2026 18:50:58 +0800</pubDate>
<description>简单记录一下 Proxmox VE 挂载飞牛 fnOS NFS，作为虚拟机磁盘存储的方法。 大家好，我是云核筑梦家。 一、飞牛开启 NFS 进入： 系统设置 → 文件共享协议 → NFS 打开：……</description>
<category>有用的小知识</category>
<category>飞牛</category>
<content:encoded><![CDATA[<p><strong>摘要：</strong> 简单记录一下 Proxmox VE 挂载飞牛 fnOS NFS，作为虚拟机磁盘存储的方法。</p><p>大家好，我是<strong>云核筑梦家</strong>。</p><h2 id="一-飞牛开启-nfs">一、飞牛开启 NFS</h2><p>进入：</p><pre><code>系统设置
→ 文件共享协议
→ NFS</code></pre><p>打开：</p><pre><code>NFS 服务</code></pre><p>飞牛会显示类似：</p><pre><code>nfs://&lt;飞牛IP&gt;/fs/1000/nfs</code></pre><p>记住 Export 路径：</p><pre><code>/fs/1000/nfs</code></pre><hr><h2 id="二-创建-images-文件夹">二、创建 images 文件夹</h2><p>进入飞牛：</p><pre><code>文件管理
→ 我的文件
→ 新建文件夹</code></pre><p>创建：</p><pre><code>images</code></pre><p>然后进入：</p><pre><code>系统设置
→ 文件共享协议
→ NFS
→ 设置可见文件夹范围</code></pre><p>选择：</p><pre><code>自定义文件夹</code></pre><p>勾选：</p><pre><code>images</code></pre><p>保存即可。</p><blockquote><p>这一步很重要，否则 PVE 可能会提示 <code>Permission denied</code>。</p></blockquote><hr><h2 id="三-pve-添加-nfs">三、PVE 添加 NFS</h2><p>进入：</p><pre><code>数据中心
→ 存储
→ 添加
→ NFS</code></pre><p>填写：</p><pre><code>ID：fnos-nfs

服务器：
&lt;飞牛IP&gt;

Export：
/fs/1000/nfs

内容：
磁盘映像

NFS版本：
默认</code></pre><p>然后点击：</p><pre><code>新增</code></pre><hr><h2 id="四-完成">四、完成</h2><p>添加成功后，会看到：</p><pre><code>fnos-nfs
类型：NFS
内容：磁盘映像</code></pre><p>之后创建虚拟机或添加磁盘时，存储位置直接选择：</p><pre><code>fnos-nfs</code></pre><p>即可。</p><h2 id="常见报错">常见报错</h2><p>如果提示：</p><pre><code>Permission denied
failed to create .../images</code></pre><p>一般就是飞牛里没有提前创建并开放：</p><pre><code>images</code></pre><p>创建并加入 NFS 可见文件夹后，再重新添加即可。</p><p>如果是准备用来存 <strong>PVE 备份</strong>，则提前创建：</p><pre><code>dump</code></pre><p>并在 PVE 中把内容类型选择为：</p><pre><code>VZDump 备份文件</code></pre>]]></content:encoded>
</item>
<item>
<title>Linux 硬盘性能测试完整教程：HDD、SSD、NVMe、RAID 通用</title>
<link>https://www.csbsgyl.com/archives/linux-ying-pan-xing-neng-ce-shi-wan-zheng-jiao-cheng-hdd-ssd-nvme-raid-tong-yong/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/linux-ying-pan-xing-neng-ce-shi-wan-zheng-jiao-cheng-hdd-ssd-nvme-raid-tong-yong/</guid>
<pubDate>Thu, 27 Aug 2026 22:23:11 +0800</pubDate>
<description>本文介绍 Linux 下使用 fio 测试 HDD、SATA/SAS SSD、NVMe、RAID 的方法，覆盖系统盘、挂载数据盘和空盘，并区分安全测试与破坏性测试。 前言 大家好，我是云核筑梦家。</description>
<category>服务器</category>
<category>Linux</category>
<content:encoded><![CDATA[<h2 id="摘要">摘要</h2><p>本文介绍 Linux 下使用 fio 测试 HDD、SATA/SAS SSD、NVMe、RAID 的方法，覆盖系统盘、挂载数据盘和空盘，并区分安全测试与破坏性测试。</p><h3 id="前言">前言</h3><p>大家好，我是云核筑梦家。</p><p>服务器上常见的存储设备包括机械硬盘、SATA SSD、SAS SSD、NVMe SSD，以及由 RAID 卡组成的 RAID 阵列。</p><p>想知道一块盘实际性能怎么样，通常需要关注：</p><pre><code>顺序读取速度
顺序写入速度
4K 随机读取 IOPS
4K 随机写入 IOPS
混合随机读写
IO 延迟</code></pre><p>Linux 下推荐使用：</p><pre><code>fio</code></pre><p>本教程不针对某一台服务器，而是按照不同磁盘使用场景分别介绍测试方式。</p><hr><h2 id="一-测试前先识别磁盘">一、测试前先识别磁盘</h2><p>查看磁盘：</p><pre><code>lsblk</code></pre><p>推荐使用更详细的格式：</p><pre><code>lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,ROTA,MODEL</code></pre><p>其中：</p><pre><code>NAME        设备名称
SIZE        容量
TYPE        disk / part / lvm 等
FSTYPE      文件系统
MOUNTPOINTS 挂载目录
ROTA        是否旋转磁盘
MODEL       硬盘型号</code></pre><p><code>ROTA</code> 一般可以辅助判断：</p><pre><code>ROTA=1    通常为机械硬盘
ROTA=0    通常为 SSD / NVMe</code></pre><p>查看 NVMe：</p><pre><code>nvme list</code></pre><p>如果提示没有命令：</p><p>Debian / Ubuntu：</p><pre><code>apt update &amp;&amp; apt install -y nvme-cli</code></pre><p>Rocky / AlmaLinux / CentOS：</p><pre><code>dnf install -y nvme-cli</code></pre><hr><h2 id="二-查看磁盘剩余空间">二、查看磁盘剩余空间</h2><p>如果要通过测试文件测试，首先确认挂载点有足够空间：</p><pre><code>df -h</code></pre><p>例如需要测试某个挂载目录：</p><pre><code>df -h /data</code></pre><p>测试文件不要超过该分区的可用空间。</p><hr><h2 id="三-安装-fio">三、安装 fio</h2><h3 id="debian-ubuntu">Debian / Ubuntu</h3><pre><code>apt update &amp;&amp; apt install -y fio</code></pre><h3 id="rocky-linux-almalinux-rhel">Rocky Linux / AlmaLinux / RHEL</h3><pre><code>dnf install -y fio</code></pre><h3 id="centos-7">CentOS 7</h3><pre><code>yum install -y fio</code></pre><p>查看版本：</p><pre><code>fio --version</code></pre><hr><h2 id="四-先理解两种测试方式">四、先理解两种测试方式</h2><p>Linux 磁盘测试主要分两类。</p><h3 id="方式一-测试文件">方式一：测试文件</h3><p>例如：</p><pre><code>--filename=/data/fio_test</code></pre><p>fio 会在已经挂载的文件系统里面创建测试文件。</p><p>优点：</p><pre><code>不会格式化磁盘
不会直接覆盖整个分区
适合系统盘
适合正在使用的数据盘
风险相对较低</code></pre><p>生产服务器通常推荐这种方式。</p><hr><h3 id="方式二-直接测试裸设备">方式二：直接测试裸设备</h3><p>例如：</p><pre><code>--filename=/dev/sdb</code></pre><p>直接针对整块物理盘进行测试。</p><p>这种方式可以减少文件系统的影响，更接近底层磁盘性能。</p><p>但需要特别注意：</p><blockquote><p>对 <code>/dev/sdb</code> 执行 fio 写入、随机写入或混合读写，会覆盖磁盘现有数据。</p></blockquote><p>因此裸盘写测试只适合：</p><pre><code>新盘
空盘
准备格式化的磁盘
确定没有任何重要数据的设备</code></pre><p>如果磁盘已经有系统、分区、数据库或者其他数据，不要使用裸盘写测试。</p><hr><h2 id="五-通用安全测试-已挂载磁盘">五、通用安全测试：已挂载磁盘</h2><p>这是最常用的方法。</p><p>假设需要测试的磁盘挂载目录为：</p><pre><code>/data</code></pre><p>首先设置测试文件：</p><pre><code>/data/fio_test</code></pre><p>可以根据实际挂载目录修改。</p><hr><h2 id="六-顺序写入测试">六、顺序写入测试</h2><p>主要测试大文件持续写入性能。</p><pre><code>fio \
--name=seq_write \
--filename=/data/fio_test \
--size=10G \
--rw=write \
--bs=1M \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--numjobs=1 \
--group_reporting</code></pre><p>重点看：</p><pre><code>WRITE: bw=</code></pre><p>例如：</p><pre><code>WRITE: bw=500MiB/s</code></pre><p>代表顺序写入大约：</p><pre><code>500 MiB/s</code></pre><hr><h2 id="七-顺序读取测试">七、顺序读取测试</h2><p>使用刚才创建的测试文件：</p><pre><code>fio \
--name=seq_read \
--filename=/data/fio_test \
--size=10G \
--rw=read \
--bs=1M \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--numjobs=1 \
--group_reporting</code></pre><p>重点看：</p><pre><code>READ: bw=</code></pre><hr><h2 id="八-4k-随机读取测试">八、4K 随机读取测试</h2><p>随机读取是判断数据库、虚拟机、小文件业务性能的重要指标。</p><pre><code>fio \
--name=4k_randread \
--filename=/data/fio_test \
--size=10G \
--rw=randread \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--numjobs=4 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>重点看：</p><pre><code>IOPS=
BW=
clat=</code></pre><hr><h2 id="九-4k-随机写入测试">九、4K 随机写入测试</h2><pre><code>fio \
--name=4k_randwrite \
--filename=/data/fio_test \
--size=10G \
--rw=randwrite \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--numjobs=4 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>随机写会产生较大的 SSD 写入量。</p><p>生产 SSD / NVMe 不建议长时间反复进行高强度随机写测试。</p><hr><h2 id="十-4k-70-读-30-写混合测试">十、4K 70%读 + 30%写混合测试</h2><p>这是比较常见的一种综合负载。</p><pre><code>fio \
--name=4k_randrw \
--filename=/data/fio_test \
--size=10G \
--rw=randrw \
--rwmixread=70 \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--numjobs=4 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>表示：</p><pre><code>70% 随机读取
30% 随机写入</code></pre><p>相比单独随机读或者随机写，更接近部分数据库、虚拟化和业务服务器的实际负载。</p><hr><h2 id="十一-已挂载磁盘一键综合测试">十一、已挂载磁盘一键综合测试</h2><p>把：</p><pre><code>/data</code></pre><p>换成实际磁盘挂载目录。</p><pre><code>TEST_DIR=/data; TEST_SIZE=10G; \
fio --name=seq_write --filename=$TEST_DIR/fio_test --size=$TEST_SIZE --rw=write --bs=1M --direct=1 --ioengine=libaio --iodepth=32 --numjobs=1 --group_reporting &amp;&amp; \
fio --name=seq_read --filename=$TEST_DIR/fio_test --size=$TEST_SIZE --rw=read --bs=1M --direct=1 --ioengine=libaio --iodepth=32 --numjobs=1 --group_reporting &amp;&amp; \
fio --name=4k_randread --filename=$TEST_DIR/fio_test --size=$TEST_SIZE --rw=randread --bs=4k --direct=1 --ioengine=libaio --iodepth=32 --numjobs=4 --runtime=60 --time_based --group_reporting &amp;&amp; \
fio --name=4k_randrw --filename=$TEST_DIR/fio_test --size=$TEST_SIZE --rw=randrw --rwmixread=70 --bs=4k --direct=1 --ioengine=libaio --iodepth=32 --numjobs=4 --runtime=60 --time_based --group_reporting; \
rm -f $TEST_DIR/fio_test</code></pre><p>测试内容依次为：</p><pre><code>1M 顺序写
1M 顺序读
4K 随机读
4K 70%读 + 30%写
自动删除测试文件</code></pre><p>如果测试系统根分区，可以把：</p><pre><code>TEST_DIR=/data</code></pre><p>修改为：</p><pre><code>TEST_DIR=/root</code></pre><p>如果数据盘挂载在 <code>/mnt/storage</code>：</p><pre><code>TEST_DIR=/mnt/storage</code></pre><p>也就是说，测试文件放在哪个挂载点，就主要测试哪个磁盘或存储卷。</p><hr><h2 id="十二-为什么使用-direct-1">十二、为什么使用 direct=1</h2><p>测试命令中使用：</p><pre><code>--direct=1</code></pre><p>表示尽量绕过 Linux 页缓存。</p><p>如果不开启这个参数，读取测试可能大量命中内存缓存，出现远高于硬盘真实能力的结果。</p><p>因此做磁盘性能测试时通常推荐：</p><pre><code>--direct=1</code></pre><hr><h2 id="十三-为什么要指定-libaio">十三、为什么要指定 libaio</h2><p>很多人直接写：</p><pre><code>--iodepth=32</code></pre><p>但 fio 默认可能使用同步 IO 引擎。</p><p>如果看到：</p><pre><code>ioengine=psync</code></pre><p>并出现：</p><pre><code>queue depth will be capped at 1</code></pre><p>说明虽然设置：</p><pre><code>iodepth=32</code></pre><p>实际上队列深度仍然只有：</p><pre><code>QD1</code></pre><p>可以通过：</p><pre><code>--ioengine=libaio</code></pre><p>让异步队列真正发挥作用。</p><p>现代 Linux 也可以测试：</p><pre><code>--ioengine=io_uring</code></pre><p>例如：</p><pre><code>fio \
--name=test \
--filename=/data/fio_test \
--size=10G \
--rw=randread \
--bs=4k \
--direct=1 \
--ioengine=io_uring \
--iodepth=32 \
--runtime=60 \
--time_based</code></pre><p>如果追求较好的 Linux 版本兼容性，使用：</p><pre><code>libaio</code></pre><p>即可。</p><hr><h2 id="十四-hdd-机械硬盘应该怎么测">十四、HDD 机械硬盘应该怎么测</h2><p>机械硬盘重点关注：</p><pre><code>顺序读写
QD1 随机性能
延迟</code></pre><p>机械盘并不擅长高并发 4K 随机 IO。</p><p>建议顺序测试：</p><pre><code>fio \
--name=hdd_seq \
--filename=/data/fio_test \
--size=10G \
--rw=read \
--bs=1M \
--direct=1 \
--ioengine=libaio \
--iodepth=8 \
--numjobs=1 \
--group_reporting</code></pre><p>随机测试建议不要一开始使用特别高的并发。</p><p>例如：</p><pre><code>fio \
--name=hdd_4k \
--filename=/data/fio_test \
--size=10G \
--rw=randread \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=1 \
--numjobs=1 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>这样比较容易观察机械盘自身的真实延迟。</p><hr><h2 id="十五-sata-ssd-怎么测">十五、SATA SSD 怎么测</h2><p>SATA SSD 的接口理论上限大约在：</p><pre><code>SATA III 6Gbps</code></pre><p>实际优秀 SATA SSD 顺序读写通常不会超过 SATA 接口极限。</p><p>建议使用：</p><pre><code>顺序：1M / QD32
随机：4K / QD32</code></pre><p>例如：</p><pre><code>fio \
--name=sata_ssd \
--filename=/data/fio_test \
--size=20G \
--rw=randrw \
--rwmixread=70 \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--numjobs=4 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><hr><h2 id="十六-sas-ssd-怎么测">十六、SAS SSD 怎么测</h2><p>SAS SSD 的测试方法和 SATA SSD 类似。</p><p>但是企业级 SAS SSD 通常在：</p><pre><code>持续性能
并发 IO
延迟稳定性
耐久度</code></pre><p>方面表现更好。</p><p>建议至少测试：</p><pre><code>1M 顺序读取
1M 顺序写入
4K QD1
4K QD32
70/30 混合随机</code></pre><hr><h2 id="十七-nvme-ssd-怎么测">十七、NVMe SSD 怎么测</h2><p>NVMe 最大特点是：</p><pre><code>高队列深度
高 IOPS
低延迟
高吞吐</code></pre><p>因此 NVMe 不能只使用 QD1 测一下就下结论。</p><p>建议分别测试：</p><pre><code>QD1
QD32
高并发</code></pre><h3 id="nvme-4k-qd1">NVMe 4K QD1</h3><pre><code>fio \
--name=nvme_qd1 \
--filename=/data/fio_test \
--size=20G \
--rw=randread \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=1 \
--numjobs=1 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>这个测试主要看低队列深度延迟。</p><h3 id="nvme-4k-qd32">NVMe 4K QD32</h3><pre><code>fio \
--name=nvme_qd32 \
--filename=/data/fio_test \
--size=20G \
--rw=randread \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--numjobs=1 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><h3 id="nvme-高并发测试">NVMe 高并发测试</h3><pre><code>fio \
--name=nvme_high_qd \
--filename=/data/fio_test \
--size=20G \
--rw=randrw \
--rwmixread=70 \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--numjobs=4 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>这里相当于多个任务同时提交 IO，可以更充分地压测 NVMe。</p><hr><h2 id="十八-raid-阵列怎么测">十八、RAID 阵列怎么测</h2><p>硬件 RAID 在 Linux 中经常表现为：</p><pre><code>/dev/sda</code></pre><p>即使底层可能存在：</p><pre><code>4块
8块
12块
24块</code></pre><p>Linux 仍然只看到一个逻辑磁盘。</p><p>RAID 测试方法与普通磁盘类似。</p><p>如果 RAID 已经安装系统或者保存数据，推荐：</p><pre><code>测试文件方式</code></pre><p>如果 RAID 是刚创建的空逻辑盘，并且确定没有数据，可以进行裸设备测试。</p><p>特别需要注意 RAID 卡的：</p><pre><code>Write Back Cache
Read Ahead
磁盘 Cache
BBU / CacheVault
RAID Level
条带大小</code></pre><p>都会明显影响测试结果。</p><p>短时间顺序写测试很容易被 RAID 卡缓存影响。</p><p>因此 RAID 持续性能测试建议：</p><pre><code>测试文件 ≥ RAID 卡缓存很多倍
持续时间 60 秒以上</code></pre><p>例如：</p><pre><code>fio \
--name=raid_write \
--filename=/data/fio_test \
--size=50G \
--rw=write \
--bs=1M \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><hr><h2 id="十九-空盘裸设备只读测试">十九、空盘裸设备只读测试</h2><p>如果只是想测试一块裸盘的读取性能，可以避免写入。</p><p>假设设备：</p><pre><code>/dev/sdb</code></pre><p>先再次确认：</p><pre><code>lsblk /dev/sdb</code></pre><p>顺序读取：</p><pre><code>fio \
--name=raw_read \
--filename=/dev/sdb \
--readonly \
--rw=read \
--bs=1M \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>随机读取：</p><pre><code>fio \
--name=raw_randread \
--filename=/dev/sdb \
--readonly \
--rw=randread \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>因为只有读取，不会主动覆盖磁盘内容。</p><hr><h2 id="二十-空盘裸设备破坏性测试">二十、空盘裸设备破坏性测试</h2><blockquote><p>以下命令会覆盖目标磁盘数据。</p></blockquote><p>只有在确定设备完全为空、数据可以全部丢弃时才可以执行。</p><p>假设测试：</p><pre><code>/dev/sdb</code></pre><p>建议先连续确认：</p><pre><code>lsblk</code></pre><pre><code>fdisk -l /dev/sdb</code></pre><p>确认无误后才进行测试。</p><p>顺序写：</p><pre><code>fio \
--name=raw_write \
--filename=/dev/sdb \
--rw=write \
--bs=1M \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>4K 随机：</p><pre><code>fio \
--name=raw_randrw \
--filename=/dev/sdb \
--rw=randrw \
--rwmixread=70 \
--bs=4k \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--runtime=60 \
--time_based \
--group_reporting</code></pre><p>执行以后：</p><pre><code>原有文件系统
分区内数据
文件</code></pre><p>都有可能损坏。</p><p>因此生产服务器除非测试全新空盘，否则不要使用裸盘写测试。</p><hr><h2 id="二十一-只想快速看读取速度">二十一、只想快速看读取速度</h2><p>还可以使用：</p><pre><code>hdparm -Tt /dev/sda</code></pre><p>如果没有：</p><pre><code>apt install -y hdparm</code></pre><p>输出通常包含：</p><pre><code>Timing cached reads
Timing buffered disk reads</code></pre><p>需要注意：</p><pre><code>hdparm -T</code></pre><p>主要测试缓存/内存相关能力。</p><p>真正更值得关注的是：</p><pre><code>hdparm -t</code></pre><p>它只能简单查看顺序读取，不能替代 fio。</p><hr><h2 id="二十二-使用-dd-快速测试写入">二十二、使用 dd 快速测试写入</h2><p>简单测试：</p><pre><code>dd if=/dev/zero of=/data/testfile bs=1G count=10 oflag=direct status=progress</code></pre><p>测试完成：</p><pre><code>rm -f /data/testfile</code></pre><p>读取：</p><pre><code>dd if=/data/testfile of=/dev/null bs=1G iflag=direct status=progress</code></pre><p>不过 <code>dd</code> 主要只能看简单吞吐量。</p><p>如果需要：</p><pre><code>IOPS
随机 IO
延迟
并发
队列深度
混合读写</code></pre><p>还是应该使用：</p><pre><code>fio</code></pre><hr><h2 id="二十三-fio-结果怎么看">二十三、fio 结果怎么看</h2><p>fio 最主要关注三个指标。</p><h3 id="bw">BW</h3><pre><code>BW</code></pre><p>即 Bandwidth，吞吐量。</p><p>例如：</p><pre><code>BW=1000MiB/s</code></pre><p>代表大约：</p><pre><code>1000 MiB/s</code></pre><p>主要用于判断：</p><pre><code>顺序读取
顺序写入</code></pre><hr><h3 id="iops">IOPS</h3><pre><code>IOPS</code></pre><p>表示每秒完成多少次 IO 操作。</p><p>例如：</p><pre><code>IOPS=100k</code></pre><p>代表：</p><pre><code>约 100000 次 IO / 秒</code></pre><p>主要用于判断：</p><pre><code>4K 随机性能
数据库
虚拟机
高并发存储</code></pre><hr><h3 id="clat">clat</h3><pre><code>clat</code></pre><p>表示完成延迟。</p><p>常见单位：</p><pre><code>nsec
usec
msec</code></pre><p>换算关系：</p><pre><code>1000 ns = 1 μs
1000 μs = 1 ms</code></pre><p>通常：</p><pre><code>延迟越低越好</code></pre><p>但不能只看平均值。</p><p>还应该观察：</p><pre><code>95%
99%
99.9%</code></pre><p>高百分位延迟，因为它们更容易暴露磁盘卡顿和尾延迟问题。</p><hr><h2 id="二十四-不同磁盘不要只比较-mb-s">二十四、不同磁盘不要只比较 MB/s</h2><p>很多人测试硬盘只看：</p><pre><code>2000MB/s
3000MB/s
5000MB/s</code></pre><p>实际上顺序吞吐只是一个指标。</p><p>例如服务器用于：</p><pre><code>数据库
PVE
VMware
Docker
大量虚拟机
大量小文件</code></pre><p>更应该关注：</p><pre><code>4K IOPS
QD1 延迟
QD32 性能
99% 延迟
持续写入稳定性</code></pre><p>而备份服务器、大文件存储和视频存储通常更关注：</p><pre><code>顺序读写吞吐</code></pre><p>因此没有一个单独的数字可以代表一块磁盘的全部性能。</p><hr><h2 id="二十五-测试文件应该设置多大">二十五、测试文件应该设置多大</h2><p>简单验机：</p><pre><code>5G～10G</code></pre><p>普通 SSD / RAID：</p><pre><code>20G～50G</code></pre><p>希望降低缓存影响：</p><pre><code>50G～100G 或更大</code></pre><p>高性能企业 NVMe 测试持续性能时，可以根据磁盘容量和业务情况进一步增大。</p><p>原则是：</p><blockquote><p>测试文件越小，越容易受到系统缓存、SSD SLC Cache、RAID Cache 等因素影响。</p></blockquote><hr><h2 id="二十六-为什么第一次写很快-后面变慢">二十六、为什么第一次写很快，后面变慢</h2><p>SSD 和 NVMe 经常存在：</p><pre><code>SLC Cache</code></pre><p>短时间写入时可能非常快。</p><p>当缓存写满以后，速度可能明显下降。</p><p>因此想测试持续写入性能，可以：</p><pre><code>fio \
--name=sustained_write \
--filename=/data/fio_test \
--size=100G \
--rw=write \
--bs=1M \
--direct=1 \
--ioengine=libaio \
--iodepth=32 \
--runtime=300 \
--time_based \
--group_reporting</code></pre><p>持续运行：</p><pre><code>300 秒</code></pre><p>比几秒钟的测试更能反映长期写入表现。</p><hr><h2 id="二十七-生产环境测试注意事项">二十七、生产环境测试注意事项</h2><p>生产环境中 fio 会真实产生磁盘负载。</p><p>测试期间可能造成：</p><pre><code>网站响应变慢
数据库延迟升高
虚拟机卡顿
IO Wait 上升
RAID 阵列负载升高
SSD 写入量增加</code></pre><p>因此推荐在业务低峰期进行。</p><p>尤其下面这种测试：</p><pre><code>4K randwrite
4K randrw
多 Job
高 QD
持续几分钟</code></pre><p>会给存储系统带来很高压力。</p><hr><h2 id="二十八-测试时同时观察系统-io">二十八、测试时同时观察系统 IO</h2><p>可以安装：</p><pre><code>apt install -y sysstat</code></pre><p>然后：</p><pre><code>iostat -x 1</code></pre><p>重点关注：</p><pre><code>r/s
w/s
rkB/s
wkB/s
await
%util</code></pre><p>其中：</p><pre><code>await</code></pre><p>代表 IO 平均等待时间。</p><pre><code>%util</code></pre><p>可以辅助判断磁盘是否已经处于高负载。</p><hr><h2 id="二十九-推荐的标准测试组合">二十九、推荐的标准测试组合</h2><p>如果只是服务器验机，我通常建议至少跑以下几个项目：</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>测试项目</p></th><th scope="col" colspan="1" rowspan="1"><p>参数</p></th><th scope="col" colspan="1" rowspan="1"><p>主要用途</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>顺序读</p></td><td colspan="1" rowspan="1"><p>1M QD32</p></td><td colspan="1" rowspan="1"><p>大文件读取</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>顺序写</p></td><td colspan="1" rowspan="1"><p>1M QD32</p></td><td colspan="1" rowspan="1"><p>大文件写入</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>4K 随机读</p></td><td colspan="1" rowspan="1"><p>QD1</p></td><td colspan="1" rowspan="1"><p>低延迟能力</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>4K 随机读</p></td><td colspan="1" rowspan="1"><p>QD32</p></td><td colspan="1" rowspan="1"><p>并发 IOPS</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>4K 随机写</p></td><td colspan="1" rowspan="1"><p>QD32</p></td><td colspan="1" rowspan="1"><p>写 IOPS</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>4K 70/30</p></td><td colspan="1" rowspan="1"><p>QD32</p></td><td colspan="1" rowspan="1"><p>综合业务负载</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>持续写</p></td><td colspan="1" rowspan="1"><p>60～300秒</p></td><td colspan="1" rowspan="1"><p>缓存耗尽后性能</p></td></tr></tbody></table></div></div><p>这样得到的数据比单纯执行一次：</p><pre><code>dd</code></pre><p>更有参考意义。</p><hr><h2 id="三十-总结">三十、总结</h2><p>Linux 下测试 HDD、SSD、NVMe、SAS 和 RAID，推荐统一使用：</p><pre><code>fio</code></pre><p>如果磁盘中已经存在数据：</p><pre><code>使用测试文件</code></pre><p>如果是一块完全空的新盘：</p><pre><code>可以进行裸设备测试</code></pre><p>如果只是测试裸盘读取：</p><pre><code>可以使用只读测试</code></pre><p>如果需要测试真实存储性能，建议同时观察：</p><pre><code>顺序读写
4K IOPS
QD1
QD32
混合读写
平均延迟
99% 延迟
持续性能</code></pre><p>对于机械盘、SSD、NVMe 和 RAID，也不要使用同一个数字简单判断好坏，因为它们的设计目标和性能特点本身就不同。</p><p>日常服务器验机建议优先使用文件方式，不破坏现有分区和数据；只有确认目标设备为空盘时，才考虑直接针对 <code>/dev/sdX</code> 或 <code>/dev/nvmeXnY</code> 进行写入测试。</p>]]></content:encoded>
</item>
<item>
<title>CentOS 9 配置 ZeroTier 双向转发与 NAT 教程</title>
<link>https://www.csbsgyl.com/archives/centos-9-pei-zhi-zerotier-shuang-xiang-zhuan-fa-yu-nat-jiao-cheng/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/centos-9-pei-zhi-zerotier-shuang-xiang-zhuan-fa-yu-nat-jiao-cheng/</guid>
<pubDate>Tue, 25 Aug 2026 22:22:57 +0800</pubDate>
<description>本文记录一下在 CentOS 9 上配置 ZeroTier 网络转发的方法，实现： ZeroTier 设备可以访问服务器所在内网 内网设备可以访问 ZeroTier 网络 开启 NAT 地址转换……</description>
<category>zerotier</category>
<category>zerotier</category>
<content:encoded><![CDATA[<h2 id="简介">简介</h2><p>大家好，我是云核筑梦家。</p><p>本文记录一下在 <strong>CentOS 9</strong> 上配置 ZeroTier 网络转发的方法，实现：</p><ul><li><p>ZeroTier 设备可以访问服务器所在内网</p></li><li><p>内网设备可以访问 ZeroTier 网络</p></li><li><p>开启 NAT 地址转换</p></li><li><p>放行 ZeroTier UDP 9993 端口</p></li><li><p>配置永久生效</p></li></ul><p>适用于将一台 CentOS 9 服务器作为 <strong>ZeroTier 网关/旁路由</strong> 使用。</p><hr><h2 id="一-查看网卡">一、查看网卡</h2><p>首先查看服务器网卡：</p><pre><code>ip addr</code></pre><p>例如：</p><pre><code>eth0        # 本地物理网卡
ztxxxxxxxx  # ZeroTier 虚拟网卡</code></pre><p>实际使用时，请把下面教程中的：</p><pre><code>eth0
ztxxxxxxxx</code></pre><p>修改成自己的网卡名称。</p><hr><h2 id="二-安装并启动-firewalld">二、安装并启动 firewalld</h2><p>CentOS 9 使用：</p><pre><code>dnf install -y firewalld
systemctl enable --now firewalld</code></pre><p>检查运行状态：</p><pre><code>systemctl status firewalld</code></pre><hr><h2 id="三-开启-ipv4-路由转发">三、开启 IPv4 路由转发</h2><p>执行：</p><pre><code>cat &gt;/etc/sysctl.d/99-ip-forward.conf &lt;&lt;'EOF'
net.ipv4.ip_forward = 1
EOF

sysctl --system</code></pre><p>检查：</p><pre><code>sysctl net.ipv4.ip_forward</code></pre><p>正常应该显示：</p><pre><code>net.ipv4.ip_forward = 1</code></pre><hr><h2 id="四-配置-firewalld-网卡区域">四、配置 firewalld 网卡区域</h2><p>物理网卡加入 <code>public</code>：</p><pre><code>firewall-cmd --permanent --zone=public --add-interface=eth0</code></pre><p>ZeroTier 网卡加入 <code>trusted</code>：</p><pre><code>firewall-cmd --permanent --zone=trusted --add-interface=ztxxxxxxxx</code></pre><p>其中 <code>trusted</code> 区域默认信任进入该区域的网络连接，适合用于可信的 ZeroTier 虚拟网络。</p><hr><h2 id="五-开启-nat">五、开启 NAT</h2><p>执行：</p><pre><code>firewall-cmd --permanent --zone=public --add-masquerade</code></pre><p>这样 ZeroTier 设备通过 CentOS 9 访问物理网络时，可以进行 NAT 地址转换。</p><hr><h2 id="六-放行-zerotier-udp-9993">六、放行 ZeroTier UDP 9993</h2><p>执行：</p><pre><code>firewall-cmd --permanent --zone=public --add-port=9993/udp</code></pre><hr><h2 id="七-允许-zerotier-与-lan-双向转发">七、允许 ZeroTier 与 LAN 双向转发</h2><h3 id="zerotier-lan">ZeroTier → LAN</h3><pre><code>firewall-cmd --permanent --new-policy ZT_TO_LAN
firewall-cmd --permanent --policy ZT_TO_LAN --add-ingress-zone trusted
firewall-cmd --permanent --policy ZT_TO_LAN --add-egress-zone public
firewall-cmd --permanent --policy ZT_TO_LAN --set-target ACCEPT</code></pre><h3 id="lan-zerotier">LAN → ZeroTier</h3><pre><code>firewall-cmd --permanent --new-policy LAN_TO_ZT
firewall-cmd --permanent --policy LAN_TO_ZT --add-ingress-zone public
firewall-cmd --permanent --policy LAN_TO_ZT --add-egress-zone trusted
firewall-cmd --permanent --policy LAN_TO_ZT --set-target ACCEPT</code></pre><p>firewalld 的 Policy 用于控制不同 Zone 之间的转发流量，<code>ingress-zone</code> 表示流量进入区域，<code>egress-zone</code> 表示流量离开区域，设置 <code>target ACCEPT</code> 后允许对应方向的转发。</p><p>最后重新加载：</p><pre><code>firewall-cmd --reload</code></pre><hr><h2 id="八-检查配置">八、检查配置</h2><p>查看网卡所属 Zone：</p><pre><code>firewall-cmd --get-active-zones</code></pre><p>正常类似：</p><pre><code>public
  interfaces: eth0

trusted
  interfaces: ztxxxxxxxx</code></pre><p>查看 NAT 和端口：</p><pre><code>firewall-cmd --zone=public --list-all</code></pre><p>重点确认：</p><pre><code>masquerade: yes
ports: 9993/udp</code></pre><p>查看转发策略：</p><pre><code>firewall-cmd --get-policies</code></pre><p>应该可以看到：</p><pre><code>LAN_TO_ZT
ZT_TO_LAN</code></pre><p>进一步检查：</p><pre><code>firewall-cmd --info-policy ZT_TO_LAN
firewall-cmd --info-policy LAN_TO_ZT</code></pre><p>两边应该都是：</p><pre><code>target: ACCEPT</code></pre><hr><h2 id="九-配置-zerotier-路由">九、配置 ZeroTier 路由</h2><p>如果需要让其他 ZeroTier 客户端访问 CentOS 服务器所在的内网，还需要在 ZeroTier 控制端添加 Managed Route。</p><p>例如内网网段：</p><pre><code>192.168.100.0/24</code></pre><p>CentOS 的 ZeroTier 地址：</p><pre><code>10.10.10.2</code></pre><p>则添加：</p><pre><code>Destination:
192.168.100.0/24

Via:
10.10.10.2</code></pre><p>网络路径：</p><pre><code>ZeroTier 客户端
       ↓
  ZeroTier 网络
       ↓
CentOS 9 ZeroTier 网卡
       ↓
    NAT / 转发
       ↓
      eth0
       ↓
    本地内网</code></pre><hr><h2 id="十-内网主动访问-zerotier">十、内网主动访问 ZeroTier</h2><p>如果只是：</p><pre><code>ZeroTier → 内网</code></pre><p>开启 NAT 后，一般不需要修改内网设备。</p><p>如果还需要：</p><pre><code>内网 → ZeroTier</code></pre><p>也就是内网设备主动访问 ZeroTier 地址，那么需要在内网主路由器增加一条静态路由。</p><p>例如 ZeroTier 网段：</p><pre><code>10.10.10.0/24</code></pre><p>CentOS 9 内网地址：</p><pre><code>192.168.100.2</code></pre><p>路由器增加：</p><pre><code>目标网段：10.10.10.0/24
下一跳：192.168.100.2</code></pre><p>这样即可实现完整的双向访问。</p><hr><h2 id="总结">总结</h2><p>CentOS 9 配置 ZeroTier 网关主要就是四部分：</p><pre><code>开启 IPv4 转发
      +
配置 firewalld Zone
      +
开启 NAT Masquerade
      +
配置双向转发 Policy</code></pre><p>核心检查命令：</p><pre><code>sysctl net.ipv4.ip_forward

firewall-cmd --get-active-zones

firewall-cmd --zone=public --list-all

firewall-cmd --get-policies</code></pre><p>只要确认：</p><pre><code>net.ipv4.ip_forward = 1
masquerade: yes
9993/udp 已放行
ZT_TO_LAN = ACCEPT
LAN_TO_ZT = ACCEPT</code></pre><p>CentOS 9 本机的 ZeroTier 转发环境基本就配置完成了。</p><p>需要注意，<strong>CentOS 9 防火墙配置完成并不代表路由已经完成</strong>。ZeroTier 客户端访问其他网段时，还需要正确配置 ZeroTier Managed Route；内网主动访问 ZeroTier 时，则需要在内网网关配置对应静态路由。</p>]]></content:encoded>
</item>
<item>
<title>华为 CE系列 配置 sFlow 实现流量采集教程</title>
<link>https://www.csbsgyl.com/archives/hua-wei-ce6855-pei-zhi-sflow-shi-xian-liu-liang-cai-ji-jiao-cheng/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/hua-wei-ce6855-pei-zhi-sflow-shi-xian-liu-liang-cai-ji-jiao-cheng/</guid>
<pubDate>Wed, 19 Aug 2026 23:41:24 +0800</pubDate>
<description>本文记录华为 CE6855 交换机配置 sFlow v5 的完整过程，包括 Agent、Source、Collector、接口双向采样以及配置验证，可用于实时流量分析、Top IP、PPS……</description>
<category>网络</category>
<category>华为交换机</category>
<content:encoded><![CDATA[<blockquote><p><strong>摘要：</strong> 本文记录华为 CE6855 交换机配置 sFlow v5 的完整过程，包括 Agent、Source、Collector、接口双向采样以及配置验证，可用于实时流量分析、Top IP、PPS 等监控场景。</p></blockquote><p>大家好，我是云核筑梦家。</p><p>在网络流量监控场景中，如果只是想知道某个接口当前有哪些 IP 在跑大流量、实时 Top IP、PPS、协议分布等数据，其实没有必要把所有业务流量通过端口镜像完整复制到服务器。</p><p>这时候可以使用交换机自带的 <strong>sFlow</strong> 功能。</p><p>sFlow 会按照指定比例对经过接口的数据包进行采样，并将采样结果通过 UDP 发送到 Collector。相比全量端口镜像，sFlow 对采集服务器网卡和网络带宽的要求会低很多，非常适合核心交换机、高流量出口等场景。</p><p>本文以华为 <strong>CE6855-48S6Q-HI</strong> 为例进行配置。</p><hr><h2 id="一-先确认交换机是否支持-sflow">一、先确认交换机是否支持 sFlow</h2><p>进入系统视图，再进入需要采集的接口：</p><pre><code>system-view
interface 10GE1/0/1</code></pre><p>输入：</p><pre><code>sflow ?</code></pre><p>如果看到：</p><pre><code>counter   Counter statistics of sampled flow
sampling  Sampling statistics of sampled flow</code></pre><p>说明当前接口支持 sFlow。</p><p>继续查看：</p><pre><code>sflow sampling ?</code></pre><p>正常可以看到：</p><pre><code>collector  The collector of sampled flow
inbound    Get inbound direction sampling packet
length     Specify the packet length of sampled flow
outbound   Get outbound direction sampling packet
rate       Specify the rate of sampled flow</code></pre><p>这几个参数就是后面主要需要使用的配置。</p><hr><h2 id="二-确认交换机支持的最低采样率">二、确认交换机支持的最低采样率</h2><p>这里不要直接照抄网上的 <code>1024</code>、<code>2048</code> 等参数，因为不同型号、不同 VRP 版本支持的范围可能不一样。</p><p>直接在交换机上查询：</p><pre><code>sflow sampling rate ?</code></pre><p>例如 CE6855 某些版本会显示：</p><pre><code>INTEGER&lt;4096-4294967295&gt;  The specifed rate of sampled flow, the default is
                          8192.</code></pre><p>这代表：</p><pre><code>最低采样率：1:4096
默认采样率：1:8192</code></pre><p>也就是说：</p><pre><code>rate 4096 = 平均 4096 个包采样 1 个
rate 8192 = 平均 8192 个包采样 1 个</code></pre><p>如果设备最低只支持 <code>4096</code>，那么配置：</p><pre><code>sflow sampling rate 2048</code></pre><p>会直接报错。</p><p>因此，<strong>采样率一定要以自己设备执行 </strong><code>sflow sampling rate ?</code><strong> 返回的范围为准。</strong></p><p>本文示例使用：</p><pre><code>1:4096</code></pre><hr><h2 id="三-配置-sflow-agent-ip">三、配置 sFlow Agent IP</h2><p>首先配置 Agent IP：</p><pre><code>sflow agent ip 10.10.10.10</code></pre><p>这里的 Agent IP 可以理解为：</p><blockquote><p>这台 sFlow 交换机对外的身份标识。</p></blockquote><p>后续 Collector 收到数据后，可以通过 Agent IP 判断这些采样数据来自哪一台交换机。</p><p>建议使用一个长期稳定的地址，例如：</p><ul><li><p>LoopBack IP</p></li><li><p>管理 IP</p></li><li><p>专门用于设备标识的本机 IP</p></li></ul><p>尽量不要使用后期可能经常修改的业务接口地址。</p><hr><h2 id="四-配置-sflow-source-ip">四、配置 sFlow Source IP</h2><p>这里要注意：</p><p><strong>Agent IP 和 Source IP 并不是同一个概念。</strong></p><p>Agent IP：</p><pre><code>用于告诉 Collector：“我是谁”</code></pre><p>Source IP：</p><pre><code>实际发送 sFlow UDP 报文时使用哪个源 IP</code></pre><p>查看设备是否支持：</p><pre><code>sflow source ?</code></pre><p>如果出现：</p><pre><code>ip
ipv6</code></pre><p>则可以指定 IPv4 Source IP：</p><pre><code>sflow source ip 10.10.10.10</code></pre><p>如果网络规划允许，可以让 Agent 和 Source 使用同一个地址：</p><pre><code>sflow agent ip 10.10.10.10
sflow source ip 10.10.10.10</code></pre><p>这样 Collector 收到的数据会比较清晰。</p><p>需要注意：</p><p><strong>这个 IP 必须是交换机自身拥有的地址，并且能够正常访问 Collector。</strong></p><hr><h2 id="五-配置-sflow-collector">五、配置 sFlow Collector</h2><p>假设采集服务器地址为：</p><pre><code>10.20.20.20</code></pre><p>配置：</p><pre><code>sflow collector 1 ip 10.20.20.20</code></pre><p>这里：</p><pre><code>1</code></pre><p>是 Collector ID。</p><p>后面接口配置时会通过这个 ID 指定采样数据发到哪个 Collector。</p><p>默认情况下 sFlow 使用：</p><pre><code>UDP 6343</code></pre><p>所以整体关系就是：</p><pre><code>交换机
   │
   ├── Agent：10.10.10.10
   ├── Source：10.10.10.10
   │
   └── Collector：10.20.20.20:6343</code></pre><hr><h2 id="六-给接口开启-sflow">六、给接口开启 sFlow</h2><p>例如需要采集接口：</p><pre><code>10GE1/0/1</code></pre><p>进入接口：</p><pre><code>interface 10GE1/0/1</code></pre><p>配置：</p><pre><code>sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound</code></pre><p>完成后退出：</p><pre><code>quit</code></pre><p>最后提交：</p><pre><code>commit</code></pre><p>完整配置如下：</p><pre><code>system-view

sflow agent ip 10.10.10.10
sflow source ip 10.10.10.10
sflow collector 1 ip 10.20.20.20

interface 10GE1/0/1
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

commit</code></pre><hr><h2 id="七-多个接口怎么配置">七、多个接口怎么配置</h2><p>如果需要同时采集多个接口，只需要让这些接口使用同一个 Collector 即可。</p><p>例如：</p><pre><code>interface 10GE1/0/1
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

interface 10GE1/0/2
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

interface Eth-Trunk10
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

commit</code></pre><p>物理接口和 Eth-Trunk 都可以根据设备实际支持情况进行配置。</p><p>不需要：</p><pre><code>一个接口配置一个 Collector</code></pre><p>多个接口完全可以统一发送到同一个采集服务器。</p><hr><h2 id="八-sampling-length-256-是什么意思">八、<code>sampling length 256</code> 是什么意思</h2><p>配置中有这样一条：</p><pre><code>sflow sampling length 256</code></pre><p>很多人第一次看到这里容易误解。</p><p>这个 <code>256</code> <strong>不是限制接口流量，也不是限制数据包最大只能有 256 Byte。</strong></p><p>它表示：</p><blockquote><p>当一个业务报文被 sFlow 抽中以后，最多复制这个报文前 256 Byte 的内容发送给 Collector。</p></blockquote><p>例如原始数据包：</p><pre><code>1500 Byte</code></pre><p>被 sFlow 抽中之后：</p><pre><code>原始数据包 1500 Byte
        ↓
截取前 256 Byte
        ↓
封装到 sFlow Datagram
        ↓
发送给 Collector</code></pre><p>但是 sFlow Sample 里面仍然会保存：</p><pre><code>Original Frame Length</code></pre><p>所以 Collector 知道这个原始数据包实际上是 1500 Byte，并不会因为只截取了前 256 Byte 就把流量计算成 256 Byte。</p><p>对于常见流量分析来说，256 Byte 已经能够包含大量有价值的信息，例如：</p><pre><code>Ethernet
VLAN
QinQ
IPv4
IPv6
TCP
UDP
源 IP
目标 IP
源端口
目标端口
TCP Flags</code></pre><p>所以如果主要用来做：</p><ul><li><p>Top IP</p></li><li><p>PPS</p></li><li><p>协议分析</p></li><li><p>流量排行</p></li><li><p>大流量 IP 检测</p></li></ul><p><code>256</code> 一般已经足够。</p><hr><h2 id="九-真正影响采样精度的是-rate">九、真正影响采样精度的是 rate</h2><p>如果想提高 sFlow 的统计精度，主要应该关注：</p><pre><code>sflow sampling rate</code></pre><p>而不是：</p><pre><code>sflow sampling length</code></pre><p>例如：</p><pre><code>1:8192</code></pre><p>和：</p><pre><code>1:4096</code></pre><p>相比，<code>1:4096</code> 的采样密度大约高一倍。</p><p>也就是说，在相同流量情况下，Collector 能够获得更多样本。</p><p>因此如果设备支持，并且主要用于实时发现大流量 IP，可以选择设备允许范围内较高的采样密度。</p><p>但并不是数字越小越好。</p><p>采样越密：</p><pre><code>交换机生成的 Sample 越多
↓
sFlow 导出数据越多
↓
设备和 Collector 的处理压力越高</code></pre><p>所以生产环境需要结合实际设备性能进行选择。</p><hr><h2 id="十-查看当前-sflow-配置">十、查看当前 sFlow 配置</h2><p>部分 VRP 版本直接执行：</p><pre><code>display sflow</code></pre><p>可能会提示：</p><pre><code>Error: Incomplete command found</code></pre><p>可以先执行：</p><pre><code>display sflow ?</code></pre><p>如果看到：</p><pre><code>configuration
message
packet</code></pre><p>查看全部 sFlow 配置可以使用：</p><pre><code>display sflow configuration all</code></pre><p>正常会看到类似：</p><pre><code>sFlow Version 5
-------------------------------------------------------------------------------
Agent IP Address   : 10.10.10.10
-------------------------------------------------------------------------------
Source IP Address  : 10.10.10.10
-------------------------------------------------------------------------------
Collector ID: 1
  IP Address    : 10.20.20.20
  UDP Port      : 6343
  Length        : 1400
-------------------------------------------------------------------------------

                             Sampling
----------------------------------------------------------------
Interface               CID     LEN    DIR          RAT
----------------------------------------------------------------
10GE1/0/1                 1      256    IN&amp;OUT       4096
10GE1/0/2                 1      256    IN&amp;OUT       4096
Eth-Trunk10               1      256    IN&amp;OUT       4096
----------------------------------------------------------------</code></pre><p>其中：</p><pre><code>CID     = Collector ID
LEN     = Sampling Length
DIR     = 采样方向
RAT     = Sampling Rate
IN&amp;OUT  = 入方向和出方向都启用</code></pre><p>如果看到：</p><pre><code>CID = 1
LEN = 256
DIR = IN&amp;OUT
RAT = 4096</code></pre><p>说明接口 sFlow 已经配置成功。</p><hr><h2 id="十一-端口镜像和-sflow-能不能同时使用">十一、端口镜像和 sFlow 能不能同时使用</h2><p>在部分 CE6855 + VRP 版本实际测试中，原接口即使已经配置：</p><pre><code>port-mirroring observe-port 1 inbound
port-mirroring observe-port 1 outbound</code></pre><p>仍然可以继续增加：</p><pre><code>sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound</code></pre><p>配置完成后可以分别检查：</p><pre><code>display port-mirroring</code></pre><p>以及：</p><pre><code>display sflow configuration all</code></pre><p>确认端口镜像与 sFlow 是否同时存在。</p><p>不过不同 CloudEngine 型号、VRP 版本可能存在差异，因此生产设备建议先选择一个接口进行测试，确认没有冲突后再批量配置。</p><hr><h2 id="十二-最终推荐配置模板">十二、最终推荐配置模板</h2><p>如果设备查询结果显示最低采样率为 <code>4096</code>，可以参考：</p><pre><code>system-view

sflow agent ip &lt;交换机Agent-IP&gt;
sflow source ip &lt;交换机Source-IP&gt;
sflow collector 1 ip &lt;采集服务器-IP&gt;

interface &lt;需要采集的接口&gt;
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

commit</code></pre><p>配置完成检查：</p><pre><code>display sflow configuration all</code></pre><p>如果能够正常看到：</p><pre><code>Agent IP
Source IP
Collector
UDP Port 6343
接口
IN&amp;OUT
LEN 256
RAT 4096</code></pre><p>那么交换机侧的 sFlow 配置就已经完成。</p><hr><h2 id="总结">总结</h2><p>华为 CE 系列配置 sFlow，实际上核心就是三部分：</p><pre><code>Agent / Source
      ↓
Collector
      ↓
接口 Sampling</code></pre><p>如果只是需要查看：</p><pre><code>哪个 IP 当前流量最大
接口 Top IP
PPS
协议分布
大流量异常</code></pre><p>sFlow 会比单纯依赖 SNMP 更适合，也不需要将几十 Gbps 的原始业务流量全部复制到采集服务器。</p><p>需要注意的是，<strong>不同 CE 型号和 VRP 版本的 sFlow 参数范围可能不同</strong>，尤其是 <code>sampling rate</code>，不要直接照搬其他设备配置，先执行：</p><pre><code>sflow sampling rate ?</code></pre><p>确认当前设备实际支持范围，再进行配置。</p>]]></content:encoded>
</item>
<item>
<title>ESXi 7 安装时缩小系统分区并释放 datastore 空间</title>
<link>https://www.csbsgyl.com/archives/esxi-7-an-zhuang-shi-suo-xiao-xi-tong-fen-qu-bing-shi-fang-datastore-kong-jian/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/esxi-7-an-zhuang-shi-suo-xiao-xi-tong-fen-qu-bing-shi-fang-datastore-kong-jian/</guid>
<pubDate>Thu, 13 Aug 2026 14:14:10 +0800</pubDate>
<description>记录安装 ESXi 7 时，通过 systemMediaSize=min 将系统存储调整为最小布局、为 VMFS6 datastore 释放更多空间的方法。 大家好，我是云核筑梦家，来自成都。</description>
<category>有用的小知识</category>
<category>服务器</category>
<category>服务器</category>
<content:encoded><![CDATA[<blockquote><p>摘要：记录安装 ESXi 7 时，通过 <code>systemMediaSize=min</code> 将系统存储调整为最小布局、为 VMFS6 datastore 释放更多空间的方法。</p></blockquote><p>大家好，我是云核筑梦家，来自成都。</p><p>在一块 400GB SSD 上安装 ESXi 7.0U3d 后，ESXi 实际识别容量为 372.61GB，但默认创建的 <code>datastore1</code> 只有约 244.5GB。查看磁盘分区后可以发现，ESXi 给 <code>VMFSL/ESX-OSData</code> 系统分区分配了约 119.9GB。</p><p>如果希望减少系统分区占用，关键不是安装完成后再调整，也不是使用 Linux 自定义分区，而是必须在 ESXi 安装器第一次启动时传入：</p><pre><code>systemMediaSize=min</code></pre><p>无论使用 U 盘、物理光盘、iDRAC/iLO 虚拟介质、PXE 还是自动装机平台，原理都一样：必须让这个参数在安装器开始分区之前生效。</p><p><!-- 配图建议：插入“400GB SSD 只有约 244.5GB datastore1”的截图。 --></p><h2 id="一-默认分区为什么占用这么大">一、默认分区为什么占用这么大</h2><p>本次测试环境如下：</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>项目</p></th><th scope="col" colspan="1" rowspan="1"><p>信息</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>系统版本</p></td><td colspan="1" rowspan="1"><p>VMware ESXi 7.0U3d</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>物理硬盘</p></td><td colspan="1" rowspan="1"><p>400GB SSD</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>ESXi 识别容量</p></td><td colspan="1" rowspan="1"><p>372.61GB</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>默认 VMFSL</p></td><td colspan="1" rowspan="1"><p>119.9GB</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>默认 VMFS6 datastore</p></td><td colspan="1" rowspan="1"><p>约 244.6GB</p></td></tr></tbody></table></div></div><p>默认分区大致如下：</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>分区</p></th><th scope="col" colspan="1" rowspan="1" style="text-align: right;"><p>容量</p></th><th scope="col" colspan="1" rowspan="1"><p>用途</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>EFI 系统分区</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>100MB</p></td><td colspan="1" rowspan="1"><p>UEFI 启动</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>BootBank 1</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>4GB</p></td><td colspan="1" rowspan="1"><p>ESXi 启动镜像</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>BootBank 2</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>4GB</p></td><td colspan="1" rowspan="1"><p>备用启动镜像</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>VMFSL</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>119.9GB</p></td><td colspan="1" rowspan="1"><p>ESX-OSData 系统数据</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>VMFS</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>244.61GB</p></td><td colspan="1" rowspan="1"><p>虚拟机数据存储</p></td></tr></tbody></table></div></div><p>这不是硬盘识别不完整，也不是存在一块可以直接划给 datastore 的未分配空间。<code>VMFSL/ESX-OSData</code> 用于保存系统状态、日志、组件、缓存和转储等内容。</p><p>从 ESXi 7.0 开始，系统存储布局发生了变化。对于容量足够的本地 SSD 或 HDD，安装器默认最多会为系统存储使用约 138GB 的十进制容量。</p><p><!-- 配图建议：插入 ESXi“存储—设备—分区详情”截图。 --></p><h2 id="二-systemmediasize-参数说明">二、systemMediaSize 参数说明</h2><p>从 ESXi 7.0 Update 1c 开始，官方提供了安装器启动参数 <code>systemMediaSize</code>，用于限制系统存储分区容量。</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>参数</p></th><th scope="col" colspan="1" rowspan="1" style="text-align: right;"><p>系统存储容量</p></th><th scope="col" colspan="1" rowspan="1"><p>适用场景</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p><code>systemMediaSize=min</code></p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>约 33GB</p></td><td colspan="1" rowspan="1"><p>单盘、小容量或嵌入式服务器</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p><code>systemMediaSize=small</code></p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>约 69GB</p></td><td colspan="1" rowspan="1"><p>内存至少 512GB 的服务器</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>不添加参数</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>默认约 138GB</p></td><td colspan="1" rowspan="1"><p>官方默认布局</p></td></tr></tbody></table></div></div><p>对于本次 400GB SSD，设置 <code>systemMediaSize=min</code> 后，VMFS6 datastore 正常情况下可以增加到约 340GB。实际容量会因十进制与二进制单位换算、对齐方式及具体版本存在少量差异。</p><p>官方说明：<a href="https://knowledge.broadcom.com/external/article/345195/boot-option-to-configure-the-size-of-esx.html">Boot option to configure the size of ESXi system partitions</a></p><h2 id="三-最重要的操作原则">三、最重要的操作原则</h2><p><code>systemMediaSize=min</code> 必须作为 ESXi 安装器启动参数，在安装器第一次启动、尚未创建磁盘分区时传入。</p><p>不同安装方式只是参数注入位置不同：</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>安装方式</p></th><th scope="col" colspan="1" rowspan="1"><p>参数设置位置</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>U盘、光盘、虚拟光驱手动安装</p></td><td colspan="1" rowspan="1"><p>启动首屏按 <code>Shift+O</code> 后手工追加</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>PXE 安装</p></td><td colspan="1" rowspan="1"><p>PXE 启动首屏手工追加，或写入 PXE 的 <code>boot.cfg</code></p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>自动装机平台</p></td><td colspan="1" rowspan="1"><p>写入平台实际生成的 ESXi 启动参数或 PXE 模板</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>自定义 ISO</p></td><td colspan="1" rowspan="1"><p>写入 ISO 的 <code>boot.cfg</code>，本质上仍是传给安装器</p></td></tr></tbody></table></div></div><p>所以，“必须在装系统第一步设置”是对的，但不一定每次都要人工输入。批量部署时可以预先写进启动配置，最终只要安装器实际收到该参数即可。</p><h2 id="四-手动安装操作方法">四、手动安装操作方法</h2><p>本方法适用于 U 盘、物理光盘、iDRAC/iLO 虚拟光驱等直接启动 ESXi 安装介质的场景。</p><h3 id="1-从-esxi-安装介质启动">1. 从 ESXi 安装介质启动</h3><p>服务器从 ESXi ISO、U盘或虚拟光驱启动后，会进入 ESXi 安装器加载界面。</p><h3 id="2-在启动首屏按-shift-o">2. 在启动首屏按 Shift+O</h3><p>在启动倒计时结束前按：</p><pre><code>Shift+O</code></pre><p>进入启动参数编辑界面。</p><h3 id="3-在原参数最后追加-systemmediasize-min">3. 在原参数最后追加 systemMediaSize=min</h3><p>不要删除原有参数，在最后先输入一个空格，再追加：</p><pre><code>systemMediaSize=min</code></pre><p>例如原参数为：</p><pre><code>runweasel cdromBoot</code></pre><p>修改后应为：</p><pre><code>runweasel cdromBoot systemMediaSize=min</code></pre><p>确认大小写和空格正确后按 <code>Enter</code>，继续安装。</p><p><!-- 配图建议：插入手动安装启动首屏和参数填写完成后的截图。 --></p><h2 id="五-pxe或自动安装操作方法">五、PXE或自动安装操作方法</h2><p>PXE 自动安装通常会加载远程 <code>boot.cfg</code> 和应答文件，例如：</p><pre><code>Loading http://服务器地址/pxe/file/boot.cfg</code></pre><p>启动参数中可能包含：</p><pre><code>ks=http://服务器地址/pxe/file/ks.cfg</code></pre><p>在 PXE 安装器启动首屏按 <code>Shift+O</code>，保留原有的 <code>ks=</code>、<code>ksdevice=</code> 和其他硬件兼容参数，在命令末尾追加：</p><pre><code>systemMediaSize=min</code></pre><p>例如：</p><pre><code>ks=http://服务器地址/pxe/file/ks.cfg ksdevice=7c:d3:0a:55:d8:2c systemMediaSize=min</code></pre><p>输入完成后按 <code>Enter</code> 继续安装。</p><p>如果需要长期批量使用，可以把参数直接加入 PXE 实际加载的 <code>boot.cfg</code> 或自动装机平台的 ESXi 启动模板中，避免每次手工输入。</p><h2 id="六-pxe提示找不到mac地址怎么办">六、PXE提示找不到MAC地址怎么办</h2><p>如果启动界面提示：</p><pre><code>Network boot: MAC address not found.
Add "BOOTIF=01-aa-bb-cc-dd-ee-ff" manually to the boot options.</code></pre><p>需要根据实际 PXE 启动网卡的 MAC 地址补充 <code>BOOTIF</code>。</p><p>例如网卡 MAC 为：</p><pre><code>7c:d3:0a:55:d8:2c</code></pre><p>对应参数为：</p><pre><code>BOOTIF=01-7c-d3-0a-55-d8-2c</code></pre><p>最终命令末尾可以写成：</p><pre><code>ksdevice=7c:d3:0a:55:d8:2c BOOTIF=01-7c-d3-0a-55-d8-2c systemMediaSize=min</code></pre><p><code>BOOTIF</code> 只用于帮助 PXE 安装器识别启动网卡，与磁盘容量设置不是同一个功能。如果界面没有相关警告，一般不需要额外添加。</p><h2 id="七-使用自定义iso自动带入参数">七、使用自定义ISO自动带入参数</h2><p>如果希望直接使用 ISO 安装，又不想每次按 <code>Shift+O</code>，可以修改 ISO 中 BIOS 和 UEFI 对应的两个配置文件：</p><pre><code>/boot.cfg
/efi/boot/boot.cfg</code></pre><p>找到：</p><pre><code>kernelopt=runweasel cdromBoot</code></pre><p>修改为：</p><pre><code>kernelopt=runweasel cdromBoot systemMediaSize=min</code></pre><p>修改后需要重新生成可启动 ISO。需要注意：如果服务器实际使用 PXE 启动，PXE 可能重新加载网络上的 <code>boot.cfg</code>，此时 ISO 内的修改不会参与本次安装，仍应修改实际的 PXE 启动参数。</p><h2 id="八-安装完成后验证">八、安装完成后验证</h2><p>安装完成并登录 ESXi Web 管理界面后，依次进入：</p><pre><code>存储 → 设备 → 选择系统硬盘 → 分区详情</code></pre><p>重点检查 <code>VMFSL</code> 和 <code>VMFS</code> 的容量。</p><p>对于本次 400GB SSD：</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>项目</p></th><th scope="col" colspan="1" rowspan="1" style="text-align: right;"><p>默认安装</p></th><th scope="col" colspan="1" rowspan="1" style="text-align: right;"><p>使用 min 后预期</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>VMFSL/ESX-OSData</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>约 119.9GB</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>约 20 多 GB</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>VMFS6 datastore</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>约 244.6GB</p></td><td colspan="1" rowspan="1" style="text-align: right;"><p>约 340GB</p></td></tr></tbody></table></div></div><p><code>systemMediaSize=min</code> 控制的是整个 ESXi 系统存储布局，不是单独把 VMFSL 设置为 33GB。因此，最终看到的单个 VMFSL 分区小于 33GB 属于正常现象。</p><h2 id="九-常见错误">九、常见错误</h2><h3 id="1-安装完成后再尝试缩小-vmfsl">1. 安装完成后再尝试缩小 VMFSL</h3><p>已经创建的 VMFSL 不能通过 ESXi Web 页面安全缩小。Broadcom 不支持安装完成后缩小 ESXi 系统分区，强行修改可能导致系统异常或无法启动。</p><h3 id="2-在本地硬盘启动界面添加参数">2. 在本地硬盘启动界面添加参数</h3><p>如果参数行中只有类似下面的内容：</p><pre><code>autoPartition=FALSE bootUUID=xxxxxxxx</code></pre><p>说明当前是在启动已经安装好的 ESXi，而不是启动安装器。在这里添加 <code>systemMediaSize=min</code> 不会重新划分硬盘。</p><h3 id="3-使用-linux-自定义分区">3. 使用 Linux 自定义分区</h3><p>ESXi 不使用 EXT4、XFS 或 Linux LVM 作为系统分区和 VMFS6 datastore。即使把名称填写成 <code>VMFSL</code> 或 <code>VMFS</code>，也不会因此变成 VMware 分区。</p><h3 id="4-只修改-iso-但实际从-pxe-启动">4. 只修改 ISO，但实际从 PXE 启动</h3><p>PXE 可能从网络重新加载 <code>boot.cfg</code>，导致 ISO 内的修改没有被使用。判断时应以启动界面实际显示的配置来源和参数为准。</p><h3 id="5-使用-autopartitionosdatasize-6144">5. 使用 autoPartitionOSDataSize=6144</h3><p>网上可以看到通过下面参数把 OSDATA 压缩到约 6GB的做法：</p><pre><code>autoPartitionOSDataSize=6144</code></pre><p>当前官方推荐的可控方案是 <code>systemMediaSize=min</code>，系统存储约 33GB。生产环境不建议为了多释放十几GB空间而把系统区压缩得过小，以免影响日志、补丁、组件和转储文件。</p><h2 id="十-风险提醒">十、风险提醒</h2><p>重新安装 ESXi 通常会清除目标硬盘上的系统、虚拟机和 datastore 数据。操作前务必确认：</p><ul><li><p>已备份所有重要虚拟机和配置。</p></li><li><p>选择的是正确的目标硬盘。</p></li><li><p>安装方式会清除旧分区，而不是保留旧的 VMFS 布局。</p></li><li><p><code>systemMediaSize=min</code> 已经出现在本次安装器的实际启动参数中。</p></li></ul><p>如果服务器对稳定性要求较高，更推荐使用独立的小容量高耐久 SSD 安装 ESXi，再将其他硬盘全部用于 VMFS6 数据存储。</p><h2 id="总结">总结</h2><p>无论通过哪种方式安装 ESXi 7，只要希望减少 ESX-OSData 系统存储占用，都必须在安装器第一次启动、创建分区之前传入：</p><pre><code>systemMediaSize=min</code></pre><p>手动安装可以在启动首屏按 <code>Shift+O</code> 输入；PXE 或自动安装可以写入实际使用的 <code>boot.cfg</code> 或启动模板；自定义 ISO 也可以预先修改 <code>boot.cfg</code>。三种方式本质完全相同，都是把参数传给 ESXi 安装器。</p><p>参数生效后，400GB SSD 的 VMFS6 datastore 通常可以从约 244GB增加到约 340GB，同时保留官方支持的最小系统存储布局。</p><h2 id="参考资料">参考资料</h2><ul><li><p><a href="https://knowledge.broadcom.com/external/article/345195/boot-option-to-configure-the-size-of-esx.html">Broadcom：配置 ESXi 系统分区大小的启动选项</a></p></li><li><p><a href="https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/7-0/esx-upgrade/upgrading-esxi-hosts-upgrade/esxi-requirements-upgrade/esxi-system-storage-overview-upgrade.html">Broadcom：ESXi 系统存储概述</a></p></li><li><p><a href="https://knowledge.broadcom.com/external/article/391668/is-it-possible-to-shrink-esxi-os-partiti.html">Broadcom：不支持在安装后缩小 ESXi OS 分区</a></p></li></ul>]]></content:encoded>
</item>
<item>
<title>Linux 安装系统失败：mkswap failed / 磁盘残留分区与 RAID 信息清理教程</title>
<link>https://www.csbsgyl.com/archives/linux-mkswap-raid-cleanup/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/linux-mkswap-raid-cleanup/</guid>
<pubDate>Sat, 27 Jun 2026 18:45:12 +0800</pubDate>
<description>记录 Linux 安装时因磁盘残留分区、Swap、LVM 或 RAID 元数据导致 mkswap failed 的排查与清理流程，包含救援模式、wipefs、mdadm 和 Kickstart……</description>
<category>有用的小知识</category>
<category>有用的小知识</category>
<category>Linux</category>
<category>RAID</category>
<category>磁盘故障</category>
<category>系统安装</category>
<content:encoded><![CDATA[<p>云核筑梦家，今天记录一次 Linux 系统安装过程中遇到的磁盘分区异常问题。现场表现为系统安装器已经识别到硬盘，但是安装过程中在创建 swap 分区时失败，导致系统无法继续安装。</p><h2 id="一-故障现象">一、故障现象</h2><p>在安装 Linux 系统时，安装器报错类似：</p><pre><code>SwapError: mkswap failed for '/dev/sda3'</code></pre><p>安装界面里可能还会出现：</p><pre><code>Installation Destination：No disks selected</code></pre><p>或者提示：</p><pre><code>Not enough space in file systems for the current software selection.</code></pre><p>进入救援模式后查看磁盘，可以看到硬盘已经识别到了：</p><pre><code>lsblk</code></pre><p>示例输出：</p><pre><code>NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0 756.9M  0 loop 
sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0     1M  0 part 
├─sda2   8:2    0  1000M  0 part 
└─sda3   8:3    0  15.7G  0 part</code></pre><p>此时说明硬盘本身可以被系统识别，但是盘上存在安装失败后残留的分区信息，或者有旧的文件系统、swap、LVM、RAID 元数据残留，导致安装器在重新分区或创建 swap 时失败。</p><h2 id="二-问题原因">二、问题原因</h2><p>这类问题常见原因有几个：</p><ol><li><p>上一次系统安装失败，磁盘上残留了半截分区表。</p></li><li><p>磁盘之前做过 RAID、LVM、swap 或其他系统盘，残留了旧签名。</p></li><li><p>安装器读取到旧的 GPT、PMBR、mdadm、dmraid 等元数据后，自动分区异常。</p></li><li><p>kickstart 自动安装时写死了目标盘，比如 <code>/dev/sda</code>，但磁盘状态不干净，导致分区流程失败。</p></li></ol><p>本次问题中，<code>/dev/sda</code> 是一块 931.5G 的硬盘，空间本身足够，最终判断不是硬盘容量不足，而是磁盘残留信息导致安装器创建 swap 分区失败。</p><h2 id="三-进入救援模式">三、进入救援模式</h2><p>如果系统还没装好，可以从安装 ISO 进入 Rescue Mode，也就是救援模式。</p><p>进入救援模式后，先查看磁盘：</p><pre><code>lsblk
fdisk -l
cat /proc/partitions</code></pre><p>确认目标安装盘是哪一块。</p><p>本次目标盘是：</p><pre><code>/dev/sda</code></pre><p>注意：后面的清理命令会清空整块磁盘数据，一定要确认目标盘正确，不要清错数据盘。</p><h2 id="四-清理磁盘残留分区和签名">四、清理磁盘残留分区和签名</h2><p>确认目标盘是 <code>/dev/sda</code> 后，执行下面命令：</p><pre><code>swapoff -a 2&gt;/dev/null

for p in /dev/sda?*; do
  umount "$p" 2&gt;/dev/null
  wipefs -af "$p" 2&gt;/dev/null
done

wipefs -af /dev/sda
dd if=/dev/zero of=/dev/sda bs=1M count=300 conv=fsync status=progress

partprobe /dev/sda 2&gt;/dev/null
lsblk</code></pre><p>执行完成后，如果正常，应该只看到整块硬盘本身，不应该再看到 <code>sda1</code>、<code>sda2</code>、<code>sda3</code> 这些分区。</p><p>正常示例：</p><pre><code>NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0   7:0    0 756.9M  0 loop 
sda     8:0    0 931.5G  0 disk</code></pre><p>这一步会清理磁盘开头的分区表、GPT、PMBR、文件系统签名等信息。</p><h2 id="五-进一步清理-raid-lvm-dmraid-残留">五、进一步清理 RAID / LVM / dmraid 残留</h2><p>如果怀疑这块盘以前做过 RAID、LVM，或者安装器依旧识别异常，可以继续清理磁盘末尾的元数据。</p><p>很多 RAID、LVM 或磁盘阵列残留信息可能会写在磁盘末尾，所以建议把磁盘开头和末尾都清掉。</p><p>执行：</p><pre><code>swapoff -a 2&gt;/dev/null

for p in /dev/sda?*; do
  umount "$p" 2&gt;/dev/null
done

for md in /dev/md* /dev/md/*; do
  [ -e "$md" ] &amp;&amp; mdadm --stop "$md" 2&gt;/dev/null
done

mdadm --zero-superblock --force /dev/sda 2&gt;/dev/null
dmraid -r -E /dev/sda 2&gt;/dev/null

wipefs -af /dev/sda

dd if=/dev/zero of=/dev/sda bs=1M count=300 conv=fsync status=progress

sectors=$(blockdev --getsz /dev/sda)
dd if=/dev/zero of=/dev/sda bs=512 seek=$((sectors-614400)) count=614400 conv=fsync status=progress

partprobe /dev/sda 2&gt;/dev/null
sync</code></pre><p>说明：</p><pre><code>wipefs -af /dev/sda</code></pre><p>用于清除系统能识别到的文件系统、swap、RAID、LVM 等签名。</p><pre><code>dd if=/dev/zero of=/dev/sda bs=1M count=300</code></pre><p>用于清理磁盘开头 300M。</p><pre><code>dd if=/dev/zero of=/dev/sda bs=512 seek=$((sectors-614400)) count=614400</code></pre><p>用于清理磁盘末尾 300M，避免 RAID 或 LVM 元数据残留。</p><h2 id="六-检查是否清理干净">六、检查是否清理干净</h2><p>清理完成后，执行：</p><pre><code>lsblk
wipefs -n /dev/sda
blkid /dev/sda
cat /proc/mdstat</code></pre><p>正常情况下，<code>lsblk</code> 应该只看到一整块裸盘：</p><pre><code>NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0   7:0    0 756.9M  0 loop 
sda     8:0    0 931.5G  0 disk</code></pre><p><code>wipefs -n /dev/sda</code> 没有任何输出，说明没有检测到文件系统或 RAID 签名。</p><p><code>blkid /dev/sda</code> 没有任何输出，说明没有 UUID、文件系统、swap 等残留。</p><p><code>cat /proc/mdstat</code> 显示：</p><pre><code>Personalities : 
unused devices: &lt;none&gt;</code></pre><p>说明当前没有软件 RAID 阵列在运行。</p><p>到这里，系统层面的分区表、swap、LVM、mdadm RAID、dmraid 残留基本已经清理干净。</p><h2 id="七-重新安装系统">七、重新安装系统</h2><p>确认磁盘干净后，执行：</p><pre><code>reboot</code></pre><p>重启后重新进入正常系统安装流程即可。</p><p>如果使用 kickstart 自动安装，建议分区配置里加上清盘参数，例如：</p><pre><code>ignoredisk --only-use=sda
zerombr
clearpart --all --initlabel --drives=sda
bootloader --location=mbr --boot-drive=sda

part biosboot --fstype=biosboot --size=1 --ondisk=sda
part /boot --fstype=xfs --size=1024 --ondisk=sda
part swap --fstype=swap --size=4096 --ondisk=sda
part / --fstype=xfs --grow --size=20480 --ondisk=sda</code></pre><p>如果是 UEFI 启动，可以使用 EFI 分区，例如：</p><pre><code>ignoredisk --only-use=sda
zerombr
clearpart --all --initlabel --drives=sda
bootloader --boot-drive=sda

part /boot/efi --fstype=efi --size=600 --ondisk=sda
part /boot --fstype=xfs --size=1024 --ondisk=sda
part swap --fstype=swap --size=4096 --ondisk=sda
part / --fstype=xfs --grow --size=20480 --ondisk=sda</code></pre><p>实际用 BIOS 还是 UEFI，需要根据服务器启动模式决定。</p><h2 id="八-如果还是无法安装">八、如果还是无法安装</h2><p>如果清理完成后，系统安装器仍然提示 RAID、Foreign、磁盘异常，或者依旧无法创建分区，那就不是 Linux 系统层面能完全处理的问题了。</p><p>这时需要检查 RAID 卡或服务器管理后台：</p><ol><li><p>进入 RAID 卡 BIOS，查看是否有 Foreign Config。</p></li><li><p>清除 RAID 卡里的 Foreign 配置。</p></li><li><p>如果是阵列卡管理的磁盘，需要重新创建 VD。</p></li><li><p>在 iDRAC、iMana、iLO 或 BMC 里检查硬盘状态是否 Online。</p></li><li><p>检查硬盘、盘架、背板、阵列卡是否有故障告警。</p></li></ol><h2 id="九-总结">九、总结</h2><p>这次问题的核心不是硬盘容量不够，而是磁盘上残留了安装失败后的分区、swap 或 RAID/LVM 相关元数据，导致安装器在创建 <code>/dev/sda3</code> swap 分区时失败。</p><p>最终处理思路就是：</p><pre><code>确认目标盘
停止占用
清理分区签名
清理磁盘开头
清理磁盘末尾
确认 wipefs / blkid 无输出
重新安装系统</code></pre><p>只要 <code>lsblk</code> 里目标盘下面没有残留分区，<code>wipefs -n</code> 和 <code>blkid</code> 都没有输出，基本就可以作为一块干净盘重新安装系统。</p>]]></content:encoded>
</item>
<item>
<title>Ubuntu 24 下预部署 Intel BootUtil，解决服务器网卡识别异常问题</title>
<link>https://www.csbsgyl.com/archives/ubuntu-24-intel-bootutil/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/ubuntu-24-intel-bootutil/</guid>
<pubDate>Thu, 18 Jun 2026 21:42:03 +0800</pubDate>
<description>记录一次通过 Intel Preboot/BootUtil 工具预部署系统，并在问题服务器上刷入 Combo Option ROM 的完整流程。 大家好，我是云核筑梦家。</description>
<category>有用的小知识</category>
<category>服务器</category>
<category>有用的小知识</category>
<content:encoded><![CDATA[<p>摘要：记录一次通过 Intel Preboot/BootUtil 工具预部署系统，并在问题服务器上刷入 Combo Option ROM 的完整流程。</p><p>大家好，我是云核筑梦家。<br>这次遇到一个比较特殊的问题：部分服务器安装系统后，Intel 网卡无法正常识别。由于问题机器无法直接联网，所以采用了一个折中的办法：先在一台正常服务器上安装好 Ubuntu 24，并提前放好 Intel Preboot/BootUtil 工具；然后把系统硬盘拆下来，装到网卡异常的服务器上，再在问题机器本地执行 BootUtil 操作。</p><p>本文记录完整操作流程，方便后续遇到类似问题时快速处理。</p><h2 id="一-适用场景">一、适用场景</h2><p>本教程适合以下情况：</p><ol><li><p>服务器安装系统后，Intel 网卡无法正常识别；</p></li><li><p>问题机器暂时无法通过网络安装依赖；</p></li><li><p>可以先在另一台正常机器上安装系统；</p></li><li><p>可以通过 IPMI、iKVM、显示器键盘进入问题机器；</p></li><li><p>手上已有 Intel Preboot 工具包，例如 <code>Preboot.tar.gz</code>  <a href="https://www.csbsgyl.com/upload/Preboot.tar.gz" target="_self" rel="">点击下载</a></p></li></ol><p>需要注意的是：<br>正常机器只负责准备系统和工具，真正刷写网卡的操作必须在问题机器上执行。</p><h2 id="二-准备环境">二、准备环境</h2><p>本文测试系统为：</p><pre><code class="language-bash">Ubuntu 24
</code></pre><p>需要准备的文件：</p><pre><code class="language-bash">Preboot.tar.gz
</code></pre><p>假设文件已经上传到正常机器的 <code>/root</code> 目录下：</p><pre><code class="language-bash">/root/Preboot.tar.gz
</code></pre><p>先确认文件存在：</p><pre><code class="language-bash">ls -lh /root/Preboot.tar.gz
</code></pre><h2 id="三-正常机器上做前期部署">三、正常机器上做前期部署</h2><p>先安装基础依赖：</p><pre><code class="language-bash">apt update
apt install -y make gcc lrzsz build-essential dkms linux-headers-generic linux-headers-$(uname -r) pciutils ethtool net-tools vim tar
</code></pre><p>创建 Intel BootUtil 工作目录：</p><pre><code class="language-bash">mkdir -p /opt/intel-oprom
cp /root/Preboot.tar.gz /opt/intel-oprom/
cd /opt/intel-oprom
tar zxvf Preboot.tar.gz
</code></pre><p>进入 BootUtil 目录：</p><pre><code class="language-bash">cd /opt/intel-oprom/APPS/BootUtil
</code></pre><p>把 <code>BootIMG.FLB</code> 放到 Linux 工具目录：</p><pre><code class="language-bash">cp -f BootIMG.FLB Linux_x64/
</code></pre><p>添加执行权限：</p><pre><code class="language-bash">cd Linux_x64
chmod +x bootutil64e
chmod +x DRIVER/install
</code></pre><p>到这里，工具文件已经准备完成。</p><h2 id="四-创建刷写脚本">四、创建刷写脚本</h2><p>为了避免在正常机器上误刷网卡，这里做一个带确认提示的脚本。只有输入大写 <code>YES</code> 才会继续执行刷写。</p><pre><code class="language-bash">cat &gt; /root/intel-oprom-flash.sh &lt;&lt;'EOF'
#!/bin/bash
set -e

cd /opt/intel-oprom/APPS/BootUtil/Linux_x64

echo "===== 安装 BootUtil 驱动 ====="
cd DRIVER
./install
cd ..

echo "===== 查看当前 Intel 网卡 ====="
./bootutil64e || true

echo
echo "注意：只有硬盘已经装到网卡有问题的机器上，才可以继续刷写。"
echo "如果现在还是正常机器，请直接回车退出。"
echo
read -p "确认当前是有问题的机器，并且要刷写？输入 YES 继续：" confirm

if [ "$confirm" != "YES" ]; then
  echo "已取消，没有刷写任何东西。"
  exit 0
fi

echo "===== 开启 Flash ====="
./bootutil64e -ALL -FLASHENABLE

echo "===== 刷入 Combo Option ROM ====="
./bootutil64e -ALL -UP=combo -FILE=BootIMG.FLB

echo "===== 完成，建议重启 ====="
EOF

chmod +x /root/intel-oprom-flash.sh
</code></pre><p>检查脚本权限：</p><pre><code class="language-bash">ls -lh /root/intel-oprom-flash.sh
</code></pre><p>正常应该类似：</p><pre><code class="language-bash">-rwxr-xr-x 1 root root 777 /root/intel-oprom-flash.sh
</code></pre><h2 id="五-确认关键文件是否存在">五、确认关键文件是否存在</h2><p>执行下面三条命令，确认核心文件都在：</p><pre><code class="language-bash">ls -lh /opt/intel-oprom/APPS/BootUtil/Linux_x64/bootutil64e
ls -lh /opt/intel-oprom/APPS/BootUtil/Linux_x64/BootIMG.FLB
ls -lh /opt/intel-oprom/APPS/BootUtil/Linux_x64/DRIVER/install
</code></pre><p>正常情况下应该能看到：</p><pre><code class="language-bash">bootutil64e
BootIMG.FLB
DRIVER/install
</code></pre><p>确认无误后，正常机器上的准备工作就完成了。</p><h2 id="六-关机并迁移硬盘">六、关机并迁移硬盘</h2><p>在正常机器上执行：</p><pre><code class="language-bash">sync
poweroff
</code></pre><p>然后把这块已经准备好的系统硬盘拆下来，安装到网卡无法识别的服务器上。</p><p>这一步建议提前准备好：</p><ol><li><p>IPMI / iKVM；</p></li><li><p>显示器和键盘；</p></li><li><p>服务器本地登录权限；</p></li><li><p>电源和远程重启手段。</p></li></ol><p>因为问题机器网卡可能还没恢复，所以不要完全依赖 SSH。</p><h2 id="七-在问题机器上执行刷写">七、在问题机器上执行刷写</h2><p>硬盘装到问题机器后，开机进入 Ubuntu 系统。</p><p>先查看 PCI 设备和网卡识别情况：</p><pre><code class="language-bash">lspci -nn | grep -Ei "ethernet|network|intel"
ip link
</code></pre><p>然后执行前面准备好的脚本：</p><pre><code class="language-bash">bash /root/intel-oprom-flash.sh
</code></pre><p>脚本会先安装 BootUtil 驱动，然后显示当前识别到的 Intel 网卡。</p><p>正常输出大概类似：</p><pre><code class="language-bash">Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.43.32.0

Port Network Address  Location       Series   WOL Flash Firmware
==== ================ ============== ======= === ===============
1    002590C30E92     00000:005:00.0 Gigabit YES FLASH Disabled
2    002590C30E93     00000:005:00.1 Gigabit YES FLASH Disabled
</code></pre><p>这里说明 BootUtil 已经能识别到 Intel 网卡，但是当前 Flash 状态是 Disabled。</p><p>确认当前确实是问题机器后，输入：</p><pre><code class="language-bash">YES
</code></pre><p>注意必须是大写 <code>YES</code>。<br>如果输入 <code>yes</code> 或直接回车，脚本会退出，不会执行刷写。</p><p>脚本继续执行后，会依次运行：</p><pre><code class="language-bash">./bootutil64e -ALL -FLASHENABLE
./bootutil64e -ALL -UP=combo -FILE=BootIMG.FLB
</code></pre><p>其中：</p><pre><code class="language-bash">-FLASHENABLE
</code></pre><p>表示开启网卡 Flash 写入。</p><pre><code class="language-bash">-UP=combo -FILE=BootIMG.FLB
</code></pre><p>表示刷入 Combo Option ROM。</p><h2 id="八-刷写完成后重启">八、刷写完成后重启</h2><p>刷写完成后建议重启服务器：</p><pre><code class="language-bash">reboot
</code></pre><p>重启后再次检查网卡：</p><pre><code class="language-bash">lspci -nn | grep -Ei "ethernet|network|intel"
ip link
dmesg | grep -Ei "igb|ixgbe|i40e|ice|e1000|firmware|net"
</code></pre><p>如果系统已经能看到网卡，就可以继续配置网络。</p><p>Ubuntu 24 可以通过 netplan 配置网络，例如：</p><pre><code class="language-bash">ls /etc/netplan/
</code></pre><p>编辑对应配置文件：</p><pre><code class="language-bash">nano /etc/netplan/01-netcfg.yaml
</code></pre><p>临时建议先使用 DHCP，确认网卡正常：</p><pre><code class="language-yaml">network:
  version: 2
  renderer: networkd
  ethernets:
    all-eth:
      match:
        name: "e*"
      dhcp4: true
      dhcp6: false
</code></pre><p>应用配置：</p><pre><code class="language-bash">netplan generate
netplan apply
</code></pre><p>查看 IP：</p><pre><code class="language-bash">ip addr
</code></pre><h2 id="九-注意事项">九、注意事项</h2><h3 id="1-正常机器不要执行刷写">1. 正常机器不要执行刷写</h3><p>正常机器只负责安装系统、解压工具、准备脚本。<br>不要在正常机器上执行：</p><pre><code class="language-bash">bash /root/intel-oprom-flash.sh
</code></pre><p>更不要手动执行：</p><pre><code class="language-bash">./bootutil64e -ALL -FLASHENABLE
./bootutil64e -ALL -UP=combo -FILE=BootIMG.FLB
</code></pre><p>否则可能会刷到正常机器上的 Intel 网卡。</p><h3 id="2-优先使用-ipmi-或本地控制台">2. 优先使用 IPMI 或本地控制台</h3><p>刷写网卡固件属于有风险操作。<br>如果服务器只有这一张网卡，刷写过程中一旦网络中断，SSH 可能会断开，所以强烈建议通过 IPMI、iKVM 或本地显示器键盘操作。</p><h3 id="3-all-会作用于所有支持的-intel-网卡">3. <code>-ALL</code> 会作用于所有支持的 Intel 网卡</h3><p>脚本里使用的是：</p><pre><code class="language-bash">-ALL
</code></pre><p>这表示对所有 BootUtil 可识别的 Intel 网卡执行操作。</p><p>如果机器上有多张 Intel 网卡，且只想刷指定网卡，可以先执行：</p><pre><code class="language-bash">cd /opt/intel-oprom/APPS/BootUtil/Linux_x64
./bootutil64e
</code></pre><p>查看网卡编号后，改用指定 NIC：</p><pre><code class="language-bash">./bootutil64e -NIC=1 -FLASHENABLE
./bootutil64e -NIC=1 -UP=combo -FILE=BootIMG.FLB
</code></pre><p>第二个网口可以执行：</p><pre><code class="language-bash">./bootutil64e -NIC=2 -FLASHENABLE
./bootutil64e -NIC=2 -UP=combo -FILE=BootIMG.FLB
</code></pre><h3 id="4-bootutil-能识别网卡才有继续操作的意义">4. BootUtil 能识别网卡才有继续操作的意义</h3><p>如果 <code>lspci</code> 都看不到网卡，可能是 BIOS、PCIe 插槽、转接板、硬件故障等问题。</p><p>如果 <code>lspci</code> 能看到网卡，但 <code>ip link</code> 看不到，可能是驱动、固件或系统内核模块问题。</p><p>如果 BootUtil 能看到网卡，才说明可以继续考虑使用 BootUtil 进行 Flash / Option ROM 操作。</p><h2 id="十-完整流程总结">十、完整流程总结</h2><p>整体流程如下：</p><pre><code class="language-bash">正常机器安装 Ubuntu 24
        ↓
上传 Preboot.tar.gz
        ↓
安装依赖并解压到 /opt/intel-oprom
        ↓
创建 /root/intel-oprom-flash.sh
        ↓
关机拆硬盘
        ↓
硬盘装到问题机器
        ↓
通过 IPMI / 显示器进入系统
        ↓
执行 bash /root/intel-oprom-flash.sh
        ↓
确认识别到 Intel 网卡
        ↓
输入大写 YES
        ↓
执行 FLASHENABLE 和 UP=combo
        ↓
重启服务器
        ↓
检查网卡是否恢复
</code></pre><h2 id="十一-本次处理结果">十一、本次处理结果</h2><p>本次问题机器执行脚本后，BootUtil 已经成功识别到两个 Intel Gigabit 网口：</p><pre><code class="language-bash">Port 1  Gigabit  FLASH Disabled
Port 2  Gigabit  FLASH Disabled
</code></pre><p>说明 BootUtil 驱动安装正常，工具也能读取到网卡。<br>后续确认机器无误后，输入大写 <code>YES</code> 即可继续执行 Flash 开启和 Combo Option ROM 刷入。</p><p>本次处理方式的核心思路是：<br>先在正常机器上完成系统和工具预部署，再把硬盘迁移到问题服务器，最后在问题服务器本地执行 BootUtil 操作。这样可以避免问题机器因网卡不可用导致无法下载安装依赖的问题。</p>]]></content:encoded>
</item>
<item>
<title>Win11 首次开机跳过联网的干净方案（无需脚本）</title>
<link>https://www.csbsgyl.com/archives/windows-11-skip-network-setup/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/windows-11-skip-network-setup/</guid>
<pubDate>Mon, 29 Dec 2025 23:25:49 +0800</pubDate>
<description>Windows 首次开机跳过联网，直接创建本地账户（Shift+F10 方法） 在 Windows 10 / Windows 11 首次开机（OOBE 初始化阶段）时，系统默认强制联网并登录……</description>
<category>有用的小知识</category>
<category>有用的小知识</category>
<content:encoded><![CDATA[<h2 id="windows-首次开机跳过联网-直接创建本地账户-shift-f10-方法">Windows 首次开机跳过联网，直接创建本地账户（Shift+F10 方法）</h2><p>在 Windows 10 / Windows 11 首次开机（OOBE 初始化阶段）时，系统默认<strong>强制联网并登录 Microsoft 账户</strong>，这在以下场景中非常不方便：</p><ul><li><p>离线环境安装系统</p></li><li><p>测试机 / 服务器 / 实验机</p></li><li><p>不希望绑定微软账号</p></li><li><p>批量装机</p></li></ul><p>本文介绍一种 <strong>无需断网、无需修改注册表、无需脚本</strong> 的方法，直接在 OOBE 阶段唤起 <strong>本地账户创建页面</strong>。</p><hr><h3 id="一-适用系统范围">一、适用系统范围</h3><p>实测可用（不同版本界面略有差异）：</p><ul><li><p>Windows 10 22H2</p></li><li><p>Windows 11 21H2 / 22H2 / 23H2 / 24H2</p></li><li><p>家庭版 / 专业版均可</p></li></ul><blockquote><p>该方法基于 Windows 内部 OOBE 组件，属于系统原生能力。</p></blockquote><hr><h3 id="二-操作步骤-核心">二、操作步骤（核心）</h3><h4 id="1-进入首次开机界面-oobe">1️⃣ 进入首次开机界面（OOBE）</h4><p>正常安装 Windows 后，进入以下界面之一：</p><ul><li><p>选择国家/地区</p></li><li><p>选择键盘布局</p></li><li><p>准备联网</p></li></ul><p><strong>不要继续下一步</strong></p><hr><h4 id="2-打开命令提示符">2️⃣ 打开命令提示符</h4><p>同时按下键盘：</p><pre><code>Shift + F10
</code></pre><p>屏幕会弹出一个 <strong>CMD（命令提示符）窗口</strong>。</p><hr><h4 id="3-输入命令">3️⃣ 输入命令</h4><p>在 CMD 中输入以下命令并回车：</p><pre><code>start ms-cxh:localonly
</code></pre><hr><h4 id="4-创建本地账户">4️⃣ 创建本地账户</h4><p>此时系统会：</p><ul><li><p>直接弹出 <strong>“创建本地账户”界面</strong></p></li><li><p>不再要求联网</p></li><li><p>不要求登录 Microsoft 账户</p></li></ul><p>按提示输入：</p><ul><li><p>用户名</p></li><li><p>密码（可选）</p></li></ul><p>完成后即可正常进入系统。</p><hr><h3 id="三-原理说明-简要">三、原理说明（简要）</h3><p><code>ms-cxh:</code> 是 Windows 内部使用的 <strong>URI 协议</strong>，用于调用 OOBE（首次启动配置）相关组件。</p><p>参数含义：</p><ul><li><p><code>localonly</code>：<br>👉 强制进入 <strong>本地账户创建流程</strong><br>👉 跳过联网校验<br>👉 跳过 Microsoft 账户登录逻辑</p></li></ul><p>该入口是 <strong>系统内部预留路径</strong>，并非第三方工具，也不依赖漏洞。</p>]]></content:encoded>
</item>
<item>
<title>硬盘在阵列卡创建RAID后直通模式无法识别的解决方案</title>
<link>https://www.csbsgyl.com/archives/raid-passthrough-disk-detection/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/raid-passthrough-disk-detection/</guid>
<pubDate>Thu, 30 Oct 2025 01:31:10 +0800</pubDate>
<description>硬盘原先在 华为服务器 上通过 SAS2208 阵列卡 创建了 RAID 阵列。 后来将该硬盘转接到其他服务器上（使用直通 HBA 模式的控制卡），在 Linux / Windows……</description>
<category>服务器</category>
<category>服务器</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>🧩 问题描述</p><p>硬盘原先在 <strong>华为服务器</strong> 上通过 <strong>SAS2208 阵列卡</strong> 创建了 RAID 阵列。<br>后来将该硬盘转接到其他服务器上（使用直通 HBA 模式的控制卡），在 <strong>Linux / Windows 系统安装镜像</strong> 下无法识别到硬盘。</p><p>但在 <strong>PE 环境（如 WinPE）</strong> 中可以检测并读取到硬盘信息，说明硬件连接正常，问题出在硬盘残留的阵列信息上。</p><hr><h2 id="问题原因">⚙️ 问题原因</h2><p>SAS2208 阵列卡在创建 RAID 时，会在磁盘的尾部写入阵列配置元数据（RAID Metadata）。<br>即使删除阵列或更换控制卡，这部分信息仍会残留，导致系统误判磁盘状态，从而在安装系统时无法识别。</p><hr><h2 id="解决方法">✅ 解决方法</h2><ol><li><p>启动服务器进入 <strong>PE 环境（或救援系统）</strong>；</p></li><li><p>打开 <strong>DiskGenius</strong> 工具；</p></li><li><p>找到目标硬盘，执行：</p><ul><li><p>菜单栏选择：<strong>工具 → 清除扇区</strong>；</p></li><li><p>清除范围选择：<strong>最后 64 个扇区</strong>；</p></li></ul></li><li><p>执行完成后保存退出；</p></li><li><p>重启服务器，再次进入系统安装界面，即可正常识别硬盘。</p></li></ol><hr><h2 id="补充说明">💡 补充说明</h2><p>此操作仅清除 RAID 阵列的残留元数据，不影响正常数据区间。<br>若硬盘中仍需保留数据，请在执行前做好完整备份。</p>]]></content:encoded>
</item>
<item>
<title>命令行升级 LSI SAS2208 RAID 控制卡，解决掉盘降速问题</title>
<link>https://www.csbsgyl.com/archives/lsi-sas2208-raid-firmware-upgrade/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/lsi-sas2208-raid-firmware-upgrade/</guid>
<pubDate>Thu, 30 Oct 2025 01:28:36 +0800</pubDate>
<description>获取安装包 在本文底部提供下载按钮，可获取升级所需的 ISO/ZIP 文件 适用范围 本教程仅适用于 SAS2208 芯片 RAID 控制卡</description>
<category>服务器</category>
<category>服务器</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>📌 升级前准备</p><ol><li><p><strong>获取安装包</strong></p><ul><li><p>在本文底部提供下载按钮，可获取升级所需的 ISO/ZIP 文件</p></li></ul></li><li><p><strong>适用范围</strong></p><ul><li><p>本教程仅适用于 <strong>SAS2208 芯片</strong> RAID 控制卡</p></li><li><p>非该芯片请勿升级，以免损坏设备</p></li></ul></li></ol><hr><h2 id="1-上传镜像文件">1️⃣ 上传镜像文件</h2><p>1.1 在虚拟控制台工具栏中点击 <strong>“光驱”</strong> 并选择 ISO 镜像文件</p><blockquote><p><strong>提示</strong>：首次上传文件可能会自动执行升级，若失败，请按 <code>c</code> 进入手动模式</p></blockquote><p>1.2 进入手动模式后，在操作系统 Shell 界面执行以下步骤</p><hr><h2 id="2-挂载镜像与拷贝升级文件">2️⃣ 挂载镜像与拷贝升级文件</h2><pre><code class="language-apex"># 挂载设备到 /mnt 目录
mount /dev/sr0 /mnt

# 拷贝 RAID 卡升级文件到 /tmp
cp /mnt/Project/RAID***.zip /tmp

# 进入 /tmp 目录
cd /tmp

# 解压升级文件
unzip RAID***.zip</code></pre><blockquote><p>💡 提示：</p><ul><li><p>替换 <code>RAID***.zip</code> 为实际文件名</p></li><li><p>确保 /tmp 有足够空间</p></li></ul></blockquote><hr><h2 id="3-执行升级">3️⃣ 执行升级</h2><pre><code class="language-apex"># 加载升级工具
chmod +x ./tools/storcli64

# 执行固件升级（替换文件名为实际 ROM 文件）
./tools/storcli64 /c0 download file=2208FW8.rom</code></pre><blockquote><p>⚠️ 注意：</p><ul><li><p>升级过程大约 <strong>10~30 分钟</strong>，请耐心等待</p></li><li><p>升级期间不要断电或退出 Shell</p></li></ul></blockquote><hr><h2 id="4-升级完成重启">4️⃣ 升级完成重启</h2><pre><code class="language-apex">reboot</code></pre><blockquote><p>✅ 提示：重启后，RAID 控制卡将运行新固件，掉盘降速问题应得到解决</p></blockquote><hr><h2 id="下载地址">📥 下载地址</h2><blockquote><p>点击下载所需 ISO/ZIP 文件，确保文件来源可靠，以防升级失败<br><a href="https://dwz.csbsgyl.com/8Rj0" target="_blank" rel="nofollow">点击下载</a></p></blockquote><hr><h3 id="建议">🔍 建议</h3><ol><li><p>升级前备份重要数据</p></li><li><p>确认当前 RAID 配置及阵列状态</p></li><li><p>升级完成后可执行以下命令验证固件版本：</p></li></ol><pre><code class="language-apex">./tools/storcli64 /c0 show</code></pre>]]></content:encoded>
</item>
<item>
<title>Linux 上的服务器宕机监控与推送脚本</title>
<link>https://www.csbsgyl.com/archives/linux-server-downtime-monitor/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/linux-server-downtime-monitor/</guid>
<pubDate>Thu, 30 Oct 2025 01:02:33 +0800</pubDate>
<description>基于 IP + 端口 的 TCP 监测 宕机自动推送通知 PushDeer（钉钉/微信/Telegram 通知可替换） Server酱（微信推送） 日志记录失败信息</description>
<category>网络</category>
<category>网络</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>📌 脚本功能</p><ul><li><p>基于 <strong>IP + 端口</strong> 的 TCP 监测</p></li><li><p>宕机自动推送通知</p><ul><li><p>PushDeer（钉钉/微信/Telegram 通知可替换）</p></li><li><p>Server酱（微信推送）</p></li></ul></li><li><p>日志记录失败信息</p></li><li><p>可后台常驻运行</p></li></ul><hr><h2 id="1-脚本内容-示例">1️⃣ 脚本内容（示例）</h2><pre><code class="language-apex">#!/bin/bash

# 配置监控服务器列表：IP 端口 备注
servers=(
    "223.5.5.5 80 主服务器"
    "114.114.114.114 53 DNS对照组"
)

# 连接超时时间（秒）
timeout=3

# 检测函数
check_server() {
    server=($1)
    host=${server[0]}
    port=${server[1]}
    note=${server[2]}

    # TCP 检测
    if ! timeout $timeout bash -c "echo &gt;/dev/tcp/$host/$port"; then
        current_time=$(date '+%Y-%m-%d %H:%M:%S')
        log="$current_time - $host:$port $note 连接失败"
        message="监控点:[四川成都] $host:$port $note 无法访问 ${current_time}"

        # PushDeer 推送
        curl -G "https://api2.pushdeer.com/message/push" \
            --data-urlencode "pushkey=******************" \
            --data-urlencode "text=${message}" \
            --data-urlencode "desp="

        # Server酱推送
        curl -X POST "https://sctapi.ftqq.com/******" -d "title=${message}"

        # 写入日志
        echo "$log" &gt;&gt; tcp.log
    fi
}

# 主循环
while true; do
    for server in "${servers[@]}"; do
        check_server "$server" &amp;
    done

    wait
    sleep 5  # 每 5 秒检测一次
done</code></pre><hr><h3 id="2-脚本使用方法">2️⃣ 脚本使用方法</h3><h4 id="2-1-运行脚本">2.1 运行脚本</h4><pre><code class="language-apex">nohup sh tcp_monitor.sh &amp;</code></pre><ul><li><p><code>nohup</code> 可以让脚本在后台长期运行</p></li><li><p><code>&amp;</code> 表示后台执行</p></li></ul><h4 id="2-2-查看脚本运行情况">2.2 查看脚本运行情况</h4><pre><code class="language-apex">ps -aux | grep tcp_monitor.sh</code></pre><h4 id="2-3-查看日志">2.3 查看日志</h4><pre><code class="language-apex">tail -f tcp.log</code></pre><hr><h3 id="3-脚本配置说明">3️⃣ 脚本配置说明</h3><ul><li><p><strong>servers</strong><br>格式：<code>"IP PORT 备注"</code><br>可自由添加多行，支持不同服务端口</p></li><li><p><strong>timeout</strong><br>TCP 连接检测超时（秒），防止阻塞</p></li><li><p><strong>推送方式</strong></p><ul><li><p>PushDeer：可推送到微信、Telegram、钉钉</p></li><li><p>Server酱：可推送到微信</p></li><li><p>可自行增加 Email 或其他 API</p></li></ul></li><li><p><strong>sleep 5</strong><br>设置检测间隔，可根据需要调整</p></li></ul><hr><h3 id="4-注意事项">4️⃣ 注意事项</h3><ol><li><p><strong>确保 curl 已安装</strong></p></li></ol><pre><code class="language-apex">sudo apt install curl   # Ubuntu/Debian
sudo yum install curl   # CentOS/RHEL
</code></pre><ol start="2"><li><p><strong>后台运行与日志管理</strong></p><ul><li><p>脚本会持续写入 <code>tcp.log</code></p></li><li><p>建议定期清理或轮转日志</p></li></ul></li><li><p><strong>监控稳定性</strong></p><ul><li><p>若监控节点过多，可调整并发检测逻辑</p></li><li><p>TCP 检测失败可能是临时网络抖动，推送策略可考虑加防抖逻辑</p></li></ul></li></ol>]]></content:encoded>
</item>
<item>
<title>华为交换机初始开局配置教程</title>
<link>https://www.csbsgyl.com/archives/huawei-switch-initial-config/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/huawei-switch-initial-config/</guid>
<pubDate>Thu, 30 Oct 2025 00:59:05 +0800</pubDate>
<description>新交换机需 恢复出厂设置 Console 连接波特率：9600 适用版本：V200R005</description>
<category>网络</category>
<category>网络</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /></p><h2 id="开局前提">📌 开局前提</h2><ul><li><p>新交换机需 <strong>恢复出厂设置</strong></p></li><li><p>Console 连接波特率：<strong>9600</strong></p></li><li><p>适用版本：<strong>V200R005</strong></p></li></ul><blockquote><p>⚠️ <strong>提示</strong>：如果忘记密码，请先参考<a href="https://www.csbsgyl.com/archives/hua-wei-jiaohuanji-chushi-hua-peizhi-mima-huifu-jiaocheng" target="_blank" rel="nofollow" class="decorated-link">忘记密码恢复教程</a></p></blockquote><hr><h2 id="1-创建ssh管理用户">1️⃣ 创建SSH管理用户</h2><p>目标：创建用户名 <code>dcimaaa</code> 并开启 SSH 登录权限</p><pre><code class="language-apex">system-view                       # 进入特权模式
aaa                                # 进入用户配置模式
local-user dcimaaa password irreversible-cipher ******  # 创建用户并设置密码
local-user dcimaaa service-type ssh                        # 开启 SSH 登录
local-user dcimaaa level 3                                 # 设置权限级别（CE系列最高3，S系列最高15）
local-user yonghuming service-type telnet terminal ssh    # 启用登录协议
display current-configuration | include user               # 查看账户信息

stelnet server enable                                      # 开启 SSH 服务
ssh user dcimaaa service-type stelnet                      # 用户支持 SSH 登录
ssh user dcimaaa authentication-type password             # SSH 登录方式为密码

user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh</code></pre><blockquote><p>✅ 提示：</p><ul><li><p>完成后即可通过 SSH 远程登录交换机</p></li><li><p>建议立即修改密码，确保安全</p></li></ul></blockquote><hr><h2 id="2-配置-vlan100-并分配管理-ip">2️⃣ 配置 VLAN100 并分配管理 IP</h2><p>目标：创建 VLAN100，设置管理 IP <strong>10.0.0.154/24</strong>，网关 <strong>10.0.0.1</strong></p><pre><code class="language-apex">system-view                 
vlan 100                     # 创建 VLAN100
interface vlanif 100          # 创建 VLANIF100
ip address 10.0.0.154 255.255.255.0  # 分配管理 IP
quit                          # 返回上一级
ip route-static 0.0.0.0 0.0.0.0 10.0.0.1  # 配置默认路由</code></pre><blockquote><p>⚠️ 注意：</p><ul><li><p>确保 IP 地址与网段及网关一致</p></li><li><p>VLANIF 必须与上联接口配置匹配</p></li></ul></blockquote><hr><h2 id="3-配置上联口为-trunk-并放行-vlan100">3️⃣ 配置上联口为 Trunk 并放行 VLAN100</h2><p>假设上联口为 <strong>10GE 1/0/1</strong></p><pre><code class="language-apex">system-view
interface 10GE 1/0/1
port link-type trunk             # 配置为 trunk 口
undo port trunk allow-pass vlan 1  # 禁用 VLAN1
port trunk allow-pass vlan 100   # 放行 VLAN100
quit</code></pre><blockquote><p>✅ 提示：</p><ul><li><p>上联口用于连接核心交换机或路由器</p></li><li><p>trunk 口可以承载多个 VLAN，通过 <code>allow-pass</code> 指定放行 VLAN</p></li></ul></blockquote><hr><h2 id="4-配置接入口并放行-vlan100">4️⃣ 配置接入口并放行 VLAN100</h2><p>假设接入端口为 <strong>GE 1/0/1 到 GE 1/0/48</strong></p><pre><code class="language-apex">system-view
interface range GE 1/0/1 to GE 1/0/48  
port link-type access        # 设置为 access 口
port default vlan 100        # 放行 VLAN100
quit</code></pre><blockquote><p>⚠️ 提示：</p><ul><li><p>access 口通常连接终端设备</p></li><li><p>VLAN 与 VLANIF 保持一致，保证管理通信</p></li></ul></blockquote><hr><h2 id="5-保存配置">5️⃣ 保存配置</h2><pre><code class="language-apex">quit   # 退出到非特权模式
save   # 保存配置，输入 y 确认</code></pre><blockquote><p>✅ 提示：</p><ul><li><p>保存后，交换机重启配置仍然生效</p></li><li><p>保存前可通过 <code>display current-configuration</code> 检查</p></li></ul></blockquote><hr><h2 id="6-验证配置">6️⃣ 验证配置</h2><ol><li><p><strong>SSH 登录测试</strong></p></li></ol><pre><code class="language-apex">ssh dcimaaa@10.0.0.154</code></pre><ol start="2"><li><p><strong>查看 VLAN 与接口配置</strong></p></li></ol><pre><code class="language-apex">display vlan brief
display interface brief</code></pre><ol start="3"><li><p><strong>查看路由配置</strong></p></li></ol><pre><code class="language-apex">display ip routing-table</code></pre><blockquote><p>⚠️ 注意：</p><ul><li><p>若无法访问，请确认 VLAN、接口和默认路由配置正确</p></li><li><p>检查防火墙或安全策略是否阻止 SSH</p></li></ul></blockquote><hr><h2 id="7-提示与注意事项">7️⃣ 提示与注意事项</h2><ul><li><p><strong>忘记密码</strong>：请参考<a href="https://www.csbsgyl.com/archives/huawei-switch-password-recovery/" rel="noopener" class="decorated-link">忘记密码恢复教程</a></p></li><li><p><strong>安全性</strong>：创建 SSH 用户后，建议立即修改默认密码</p></li><li><p><strong>网络一致性</strong>：确保管理 IP、网关和 VLAN 与实际网络匹配</p></li><li><p><strong>操作期间勿断电</strong>，避免设备启动失败</p></li></ul>]]></content:encoded>
</item>
<item>
<title>华为交换机初始化配置及忘记密码恢复教程</title>
<link>https://www.csbsgyl.com/archives/huawei-switch-password-recovery/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/huawei-switch-password-recovery/</guid>
<pubDate>Thu, 30 Oct 2025 00:54:45 +0800</pubDate>
<description>当你使用华为交换机时，如果忘记了 登录密码 或 串口（Console）密码，可以通过初始化配置恢复访问权限。</description>
<category>网络</category>
<category>网络</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>📌 应用场景</p><p>当你使用华为交换机时，如果忘记了 <strong>登录密码</strong> 或 <strong>串口（Console）密码</strong>，可以通过初始化配置恢复访问权限。</p><hr><h2 id="操作步骤">⚙️ 操作步骤</h2><h3 id="1-进入串口-console-模式">1️⃣ 进入串口（Console）模式</h3><ul><li><p>通过 Console 口连接交换机。</p></li><li><p>重启交换机电源，准备进入恢复模式。</p></li></ul><h4 id="2-进入-bootrom-恢复菜单">2️⃣ 进入 BootRom 恢复菜单</h4><ul><li><p>开机过程中按下 <strong>Ctrl + B</strong> 键。</p></li><li><p>进入 <strong>BootRom 恢复菜单</strong>，用于初始化和密码恢复操作。</p></li><li><p>菜单默认初始密码：</p></li></ul><pre><code class="language-apex">Admin@huawei.com</code></pre><h4 id="3-清除控制台密码">3️⃣ 清除控制台密码</h4><ul><li><p>在菜单中选择 <strong>“7”</strong> → 清除控制台（Console）密码。</p></li><li><p>然后选择 <strong>“1”</strong> → 以默认模式启动交换机。</p></li></ul><blockquote><p>✅ 提示：</p><ul><li><p>此操作会重置 Console 登录密码为默认状态，但不会影响其他配置（如 VLAN、接口配置）。</p></li><li><p>确保在操作前备份重要配置，以防意外丢失。</p></li></ul></blockquote><hr><h3 id="验证操作">🔍 验证操作</h3><ol><li><p>使用 Console 重新连接交换机。</p></li><li><p>输入默认用户名/密码，确认能成功登录：</p></li></ol><pre><code class="language-apex">用户名：admin
密码：Admin@huawei.com</code></pre><ol start="3"><li><p>根据需要重新设置登录密码：</p></li></ol><pre><code class="language-apex">[Huawei] system-view
[Huawei] aaa
[Huawei-aaa] local-user &lt;用户名&gt; password irreversible-cipher &lt;新密码&gt;</code></pre><hr><h3 id="注意事项">⚠️ 注意事项</h3><ol><li><p><strong>操作期间勿断电</strong>，避免设备启动失败。</p></li><li><p><strong>仅限管理员操作</strong>，防止非授权人员重置设备。</p></li><li><p>初始化恢复后，建议立即修改密码，确保网络安全。</p></li></ol>]]></content:encoded>
</item>
<item>
<title>如何通过DNS实现多线IP智能解析</title>
<link>https://www.csbsgyl.com/archives/dns-multi-ip-resolution/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/dns-multi-ip-resolution/</guid>
<pubDate>Thu, 30 Oct 2025 00:51:46 +0800</pubDate>
<description>假设你购买了一台位于 北京的多线云服务器，服务商为你提供了三个公网 IP 地址，分别对应不同的运营商网络：</description>
<category>网络</category>
<category>网络</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>📘 使用场景</p><p>假设你购买了一台位于 <strong>北京的多线云服务器</strong>，服务商为你提供了三个公网 IP 地址，分别对应不同的运营商网络：</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>线路类型</p></th><th scope="col" colspan="1" rowspan="1"><p>IP 地址</p></th><th scope="col" colspan="1" rowspan="1"><p>说明</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>电信线路</p></td><td colspan="1" rowspan="1"><p>1.1.1.1</p></td><td colspan="1" rowspan="1"><p>供电信用户访问</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>联通线路</p></td><td colspan="1" rowspan="1"><p>2.2.2.2</p></td><td colspan="1" rowspan="1"><p>供联通用户访问</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>移动线路</p></td><td colspan="1" rowspan="1"><p>3.3.3.3</p></td><td colspan="1" rowspan="1"><p>供移动用户访问</p></td></tr></tbody></table></div></div><p>你希望实现的目标是：</p><ul><li><p><strong>电信用户 → 访问 1.1.1.1</strong></p></li><li><p><strong>联通用户 → 访问 2.2.2.2</strong></p></li><li><p><strong>移动用户 → 访问 3.3.3.3</strong></p></li></ul><p>这类需求就是典型的 <strong>DNS 多线智能解析</strong> 场景。</p><hr><h2 id="操作步骤">⚙️ 操作步骤</h2><h3 id="①-登录-dns-解析平台">① 登录 DNS 解析平台</h3><p>进入你的域名解析服务商平台（如阿里云、腾讯云、Cloudflare国内版、华为云DNS等）。</p><h4 id="②-选择需要配置的域名">② 选择需要配置的域名</h4><p>在“域名列表”中找到要设置的域名，例如：</p><pre><code class="language-apex">example.com</code></pre><h4 id="③-添加多线路解析记录">③ 添加多线路解析记录</h4><p>以主机名 <code>www</code> 为例（也可以根据需要使用其他前缀或根域名 <code>@</code>）：</p><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>主机记录</p></th><th scope="col" colspan="1" rowspan="1"><p>线路类型</p></th><th scope="col" colspan="1" rowspan="1"><p>记录值(IP地址)</p></th><th scope="col" colspan="1" rowspan="1"><p>说明</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>www</p></td><td colspan="1" rowspan="1"><p>电信</p></td><td colspan="1" rowspan="1"><p>1.1.1.1</p></td><td colspan="1" rowspan="1"><p>电信用户访问此 IP</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>www</p></td><td colspan="1" rowspan="1"><p>联通</p></td><td colspan="1" rowspan="1"><p>2.2.2.2</p></td><td colspan="1" rowspan="1"><p>联通用户访问此 IP</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>www</p></td><td colspan="1" rowspan="1"><p>移动</p></td><td colspan="1" rowspan="1"><p>3.3.3.3</p></td><td colspan="1" rowspan="1"><p>移动用户访问此 IP</p></td></tr></tbody></table></div></div><p>在部分平台上，“线路类型”可能显示为：</p><ul><li><p>电信（Telecom）</p></li><li><p>联通（Unicom）</p></li><li><p>移动（CMCC / China Mobile）</p></li></ul><p>根据平台实际选项进行选择即可。</p><hr><h3 id="验证解析效果">🔍 验证解析效果</h3><ol><li><p><strong>使用命令行测试</strong></p><pre><code class="language-apex">nslookup www.example.com</code></pre><p>或者：</p><pre><code class="language-apex">dig www.example.com</code></pre><p>在不同运营商的网络环境下执行，返回的 IP 应该对应各自线路的 IP 地址。</p></li><li><p><strong>使用在线工具</strong><br>可通过工具如 https://tool.chinaz.com/dns 查询不同省份/运营商的解析结果是否正确。</p></li></ol><hr><h3 id="注意事项">⚠️ 注意事项</h3><ol><li><p><strong>解析平台需支持多线功能</strong><br>目前阿里云、腾讯云、华为云 DNS 均支持；但部分海外 DNS（如 Cloudflare 国际版）不支持中国运营商多线识别。</p></li><li><p><strong>优先级与默认线路</strong><br>若访问者运营商未被识别，建议添加一条“默认”线路解析：</p><pre><code class="language-apex">www → 默认 → 1.1.1.1</code></pre><p>这样可避免部分解析失败的情况。</p></li><li><p><strong>TTL 设置</strong><br>建议设置 TTL 为 300 秒（5 分钟）左右，以便线路切换或变更能及时生效。</p></li></ol><hr><h3 id="小结">✅ 小结</h3><p>通过为同一主机名设置不同运营商的解析记录，就能实现：</p><ul><li><p>电信用户自动访问电信 IP</p></li><li><p>联通用户自动访问联通 IP</p></li><li><p>移动用户自动访问移动 IP</p></li></ul><p>这种方式无需额外程序或设备支持，仅通过 DNS 平台即可实现简单、高效的 <strong>多线分流访问</strong>。</p>]]></content:encoded>
</item>
<item>
<title>华为 S 系列交换机限速配置实用指南</title>
<link>https://www.csbsgyl.com/archives/huawei-s-switch-qos-limit/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/huawei-s-switch-qos-limit/</guid>
<pubDate>Thu, 30 Oct 2025 00:46:51 +0800</pubDate>
<description>介绍华为 S 系列交换机的两种限速方式：用 QoS 命令直接限制端口带宽，以及用流策略做聚合口与精细化限速，包含具体命令、参数含义与配置验证方法。</description>
<category>网络</category>
<category>网络</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /></p><blockquote><p>💡<strong>提示</strong>：<br>若设备为 <strong>CE 系列交换机</strong>，请参考专文：<br>👉《<a href="https://www.csbsgyl.com/archives/huawei-ce-switch-rate-limit/">华为 CE 系列交换机限速配置指南</a>》</p></blockquote><hr><p>一、使用 QoS 命令直接限速（适用于普通接口）</p><p>这种方式配置简单，适用于需要快速限制端口带宽的场景。<br>以下示例将端口上行/下行速率限制为 <strong>50Mbps</strong>：</p><pre><code class="language-apex">[Huawei] interface GigabitEthernet0/0/1
[Huawei-GigabitEthernet0/0/1] qos lr outbound cir 51200
[Huawei-GigabitEthernet0/0/1] qos lr inbound cir 51200</code></pre><blockquote><p>📘说明：</p><ul><li><p><code>cir 51200</code> 表示速率为 51200 Kbps（即 50 Mbps）</p></li><li><p><code>inbound</code> 表示入方向限速，<code>outbound</code> 表示出方向限速</p></li><li><p>适合快速限速单接口、接入层设备</p></li></ul></blockquote><hr><h2 id="二-使用流策略限速-适用于聚合口-精细化限速">二、使用流策略限速（适用于聚合口 / 精细化限速）</h2><p>当接口为聚合口（如 Eth-Trunk）或需要对不同流量进行分类限速时，可使用流策略（<code>traffic policy</code>）方法。</p><h3 id="1-创建流行为-定义限速参数">1️⃣ 创建流行为（定义限速参数）</h3><p>以 50Mbps 为例：</p><pre><code class="language-apex">[Huawei] traffic behavior BW50M
[Huawei-behavior-BW50M] car cir 51200 pir 51200 cbs 6400000 pbs 6400000 mode color-blind
[Huawei-behavior-BW50M] quit</code></pre><blockquote><p>参数说明：</p><ul><li><p><code>cir</code>：承诺速率（Committed Information Rate）</p></li><li><p><code>pir</code>：峰值速率（Peak Information Rate）</p></li><li><p><code>cbs/pbs</code>：突发缓存大小（可保持默认或根据业务调整）</p></li><li><p><code>color-blind</code> 模式：不区分包颜色，统一按照速率策略执行</p></li></ul></blockquote><hr><h4 id="2-创建匹配策略并绑定行为">2️⃣ 创建匹配策略并绑定行为</h4><pre><code class="language-apex">[Huawei] traffic policy BW50M
[Huawei-trafficpolicy-BW50M] classifier any behavior BW50M
[Huawei-trafficpolicy-BW50M] quit</code></pre><blockquote><p>说明：</p><ul><li><p><code>classifier any</code> 表示匹配所有流量</p></li><li><p>可根据需要修改为 <code>classifier &lt;class-name&gt;</code> 来匹配特定源/目的IP、VLAN等</p></li></ul></blockquote><hr><h4 id="3-将流策略应用到接口-以-eth-trunk-为例">3️⃣ 将流策略应用到接口（以 Eth-Trunk 为例）</h4><pre><code class="language-apex">[Huawei] interface Eth-Trunk0
[Huawei-Eth-Trunk0] traffic-policy BW50M inbound
[Huawei-Eth-Trunk0] traffic-policy BW50M outbound</code></pre><blockquote><p>✅ 建议同时配置 <code>inbound</code> 与 <code>outbound</code>，确保上下行带宽均受限。</p></blockquote><hr><h3 id="三-配置验证">三、配置验证</h3><p>可通过以下命令检查策略应用情况：</p><pre><code class="language-apex">display traffic-policy user-interface
display qos lr</code></pre><p>或实时查看接口速率变化：</p><pre><code class="language-apex">display interface Eth-Trunk0 | include rate</code></pre><hr><h3 id="四-总结建议">四、总结建议</h3><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>场景</p></th><th scope="col" colspan="1" rowspan="1"><p>推荐方案</p></th><th scope="col" colspan="1" rowspan="1"><p>说明</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>单接口限速</p></td><td colspan="1" rowspan="1"><p><code>qos lr</code></p></td><td colspan="1" rowspan="1"><p>简单快速，适合接入层</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>聚合口限速</p></td><td colspan="1" rowspan="1"><p><code>traffic policy</code></p></td><td colspan="1" rowspan="1"><p>支持更复杂策略和匹配条件</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>精确控制速率</p></td><td colspan="1" rowspan="1"><p><code>traffic behavior + classifier</code></p></td><td colspan="1" rowspan="1"><p>可按 VLAN、IP 段、协议分类限速</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>CE 系列交换机</p></td><td colspan="1" rowspan="1"><p>参考 CE 专用 QoS 命令</p></td><td colspan="1" rowspan="1"><p>与 S 系列命令略有差异</p></td></tr></tbody></table></div></div>]]></content:encoded>
</item>
<item>
<title>Linux 多网卡多IP环境下的流量分流与策略路由配置</title>
<link>https://www.csbsgyl.com/archives/linux-multi-nic-policy-routing/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/linux-multi-nic-policy-routing/</guid>
<pubDate>Thu, 30 Oct 2025 00:40:02 +0800</pubDate>
<description>在多IP或多网卡服务器中，默认所有流量都走主路由出口。 但在某些情况下，我们希望让指定目标网段通过特定源IP访问，例如： 一台服务器绑定多个公网IP，想让不同目标网站使用不同出口；……</description>
<category>服务器</category>
<category>服务器</category>
<content:encoded><![CDATA[<h2 id="一-前言"><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>一、前言</h2><p>在多IP或多网卡服务器中，默认所有流量都走主路由出口。<br>但在某些情况下，我们希望让<strong>指定目标网段通过特定源IP访问</strong>，例如：</p><ul><li><p>一台服务器绑定多个公网IP，想让不同目标网站使用不同出口；</p></li><li><p>需要从指定源IP访问合作方系统；</p></li><li><p>内外网并存时，想强制某流量走内网。</p></li></ul><p>本文总结 <strong>三种通用实现方式</strong>，在 <strong>CentOS / Ubuntu / Debian / Rocky / AlmaLinux / openEuler</strong> 等系统均可使用。</p><hr><h2 id="二-方法一-策略路由-policy-routing-推荐">二、方法一：策略路由（Policy Routing）【推荐】</h2><h3 id="示例需求">🧩 示例需求</h3><p>从源IP <code>10.0.0.3</code> 访问目标网段 <code>1.1.1.0/24</code><br>指定网关为 <code>10.0.0.254</code>，网卡为 <code>eth0</code>。</p><hr><h3 id="1-创建自定义路由表">1️⃣ 创建自定义路由表</h3><p>编辑 <code>/etc/iproute2/rt_tables</code>，添加一行：</p><pre><code class="language-apex">echo "200 custom_table" &gt;&gt; /etc/iproute2/rt_tables</code></pre><hr><h3 id="2-在该表中添加默认路由">2️⃣ 在该表中添加默认路由</h3><pre><code class="language-apex">ip route add default via 10.0.0.254 dev eth0 table custom_table</code></pre><hr><h3 id="3-建立策略规则">3️⃣ 建立策略规则</h3><pre><code class="language-apex">ip rule add to 1.1.1.0/24 lookup custom_table</code></pre><hr><h3 id="4-指定源ip绑定">4️⃣ 指定源IP绑定</h3><pre><code class="language-apex">ip route add default via 10.0.0.254 dev eth0 src 10.0.0.3 table custom_table</code></pre><hr><h3 id="5-验证生效">5️⃣ 验证生效</h3><pre><code class="language-apex">ip rule show | grep 1.1.1.0
ip route show table custom_table
tcpdump -i eth0 src 10.0.0.3 and dst 1.1.1.0/24</code></pre><hr><h3 id="持久化配置-根据系统不同">✅ 持久化配置（根据系统不同）</h3><h4 id="centos-rhel-rocky-almalinux">CentOS / RHEL / Rocky / AlmaLinux：</h4><pre><code class="language-apex">echo "to 1.1.1.0/24 lookup custom_table" &gt; /etc/sysconfig/network-scripts/rule-eth0
echo "default via 10.0.0.254 dev eth0 src 10.0.0.3" &gt; /etc/sysconfig/network-scripts/route-custom_table</code></pre><blockquote><p>⚠️ 权限需为 <code>644</code>，否则系统可能忽略。</p></blockquote><h4 id="ubuntu-debian">Ubuntu / Debian：</h4><p>Ubuntu 18+ / Debian 10+ 默认使用 <code>netplan</code> 或 <code>systemd-networkd</code>。<br>两种方法任选其一：</p><h5 id="方法a-netplan-方式">方法A：Netplan 方式</h5><p>编辑配置文件 <code>/etc/netplan/01-netcfg.yaml</code>：</p><pre><code class="language-apex">network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [10.0.0.3/24]
      routes:
        - to: 1.1.1.0/24
          via: 10.0.0.254
          table: 200
      routing-policy:
        - to: 1.1.1.0/24
          table: 200</code></pre><p>保存后应用：</p><pre><code class="language-apex">netplan apply</code></pre><h5 id="方法b-开机脚本方式-兼容旧系统">方法B：开机脚本方式（兼容旧系统）</h5><pre><code class="language-apex">cat &gt;/etc/networkd-dispatcher/routable.d/10-custom-route &lt;&lt;'EOF'
#!/bin/bash
ip route add default via 10.0.0.254 dev eth0 src 10.0.0.3 table custom_table
ip rule add to 1.1.1.0/24 lookup custom_table
EOF
chmod +x /etc/networkd-dispatcher/routable.d/10-custom-route</code></pre><blockquote><p>此脚本会在网络接口启动后自动执行，Ubuntu 16~22.04 均适用。</p></blockquote><hr><h2 id="三-方法二-iptables-snat-修改源ip">三、方法二：iptables SNAT（修改源IP）</h2><p>通过SNAT让发往目标网段的流量自动改为指定源IP。</p><pre><code class="language-apex">iptables -t nat -A OUTPUT -d 1.1.1.0/24 -j SNAT --to-source 10.0.0.3</code></pre><p>保存规则：</p><h3 id="centos-rhel-系列">CentOS / RHEL 系列：</h3><pre><code class="language-apex">yum install -y iptables-services
service iptables save
systemctl enable iptables</code></pre><h3 id="ubuntu-debian-系列">Ubuntu / Debian 系列：</h3><pre><code class="language-apex">apt install -y iptables-persistent
netfilter-persistent save</code></pre><p>验证：</p><pre><code class="language-apex">iptables -t nat -L -n -v
curl --connect-timeout 5 http://1.1.1.1</code></pre><hr><h2 id="四-方法三-手动静态路由-简易版">四、方法三：手动静态路由（简易版）</h2><p>适用于无需复杂策略的小场景。</p><pre><code class="language-apex">ip route add 1.1.1.0/24 via 10.0.0.254 src 10.0.0.3 dev eth0</code></pre><p>要持久化：</p><ul><li><p><strong>CentOS / RHEL：</strong></p><pre><code class="language-apex">echo "1.1.1.0/24 via 10.0.0.254 src 10.0.0.3 dev eth0" &gt;&gt; /etc/sysconfig/network-scripts/route-eth0</code></pre></li><li><p><strong>Ubuntu / Debian：</strong></p><pre><code class="language-apex">echo "up ip route add 1.1.1.0/24 via 10.0.0.254 src 10.0.0.3 dev eth0" &gt;&gt; /etc/network/interfaces</code></pre></li></ul><hr><h2 id="五-常见问题与注意事项">五、常见问题与注意事项</h2><h3 id="1-网关验证">1️⃣ 网关验证</h3><p>确保网关正确：</p><pre><code class="language-apex">ip route show default</code></pre><h3 id="2-策略优先级">2️⃣ 策略优先级</h3><p>如系统已有其他策略，可指定优先级：</p><pre><code class="language-apex">ip rule add to 1.1.1.0/24 lookup custom_table priority 1000</code></pre><h3 id="3-防火墙干扰">3️⃣ 防火墙干扰</h3><p>如启用 firewalld，建议禁用或放行相关规则：</p><pre><code class="language-apex">systemctl stop firewalld &amp;&amp; systemctl disable firewalld</code></pre><h3 id="4-检查生效状态">4️⃣ 检查生效状态</h3><pre><code class="language-apex">ip rule show
ip route show table custom_table</code></pre><hr><h2 id="六-总结对比">六、总结对比</h2><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>方法</p></th><th scope="col" colspan="1" rowspan="1"><p>优点</p></th><th scope="col" colspan="1" rowspan="1"><p>缺点</p></th><th scope="col" colspan="1" rowspan="1"><p>适用场景</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>策略路由（推荐）</p></td><td colspan="1" rowspan="1"><p>灵活可控，支持多网段、多出口</p></td><td colspan="1" rowspan="1"><p>配置稍复杂</p></td><td colspan="1" rowspan="1"><p>长期使用、生产环境</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>iptables SNAT</p></td><td colspan="1" rowspan="1"><p>快速修改源IP，简单直观</p></td><td colspan="1" rowspan="1"><p>不改变路由逻辑</p></td><td colspan="1" rowspan="1"><p>临时场景、测试</p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>静态路由</p></td><td colspan="1" rowspan="1"><p>最直观，命令少</p></td><td colspan="1" rowspan="1"><p>不支持复杂策略</p></td><td colspan="1" rowspan="1"><p>单一出口场景</p></td></tr></tbody></table></div></div><hr><h2 id="七-完整验证流程">七、完整验证流程</h2><ol><li><p>查看策略表：</p><pre><code class="language-apex">ip rule show</code></pre></li><li><p>查看自定义路由：</p><pre><code class="language-apex">ip route show table custom_table</code></pre></li><li><p>抓包验证：</p><pre><code class="language-apex">tcpdump -i eth0 src 10.0.0.3 and dst 1.1.1.0/24</code></pre></li><li><p>测试连通性：</p><pre><code class="language-apex">curl -4 -I http://1.1.1.1</code></pre></li></ol><hr><p>✅ <strong>总结</strong></p><blockquote><p>推荐使用 <strong>策略路由（Policy Routing）</strong>，兼容所有主流Linux系统，灵活可靠。<br>若仅需短期修改源IP，可用 <strong>iptables SNAT</strong>。<br>小规模静态出口可用 <strong>静态路由绑定源IP</strong>。</p></blockquote>]]></content:encoded>
</item>
<item>
<title>华为 X6000 服务器节点 XH321 V3/V5 CPU 与内存槽位示意图</title>
<link>https://www.csbsgyl.com/archives/xh321-v3-v5-memory-slots/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/xh321-v3-v5-memory-slots/</guid>
<pubDate>Thu, 30 Oct 2025 00:32:47 +0800</pubDate>
<description>在华为 X6000 服务器中，可以通过 iBMC 管理界面 快速定位和查看硬件状态，包括 CPU、内存、风扇、电源 等信息。 本文提供了 华为 X6000 XH321V5 / XH321V3……</description>
<category>服务器</category>
<category>服务器</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /></p><h2 id="简介">简介</h2><p>在华为 X6000 服务器中，可以通过 <strong>iBMC 管理界面</strong> 快速定位和查看硬件状态，包括 <strong>CPU、内存、风扇、电源</strong> 等信息。<br>本文提供了 <strong>华为 X6000 XH321V5 / XH321V3 节点的内存槽位分布图</strong>，可用于快速判断内存条对应的物理位置，方便排查故障或扩容升级。</p><hr><p><img src="https://www.csbsgyl.com/upload/chatgpt-20251026-001147-gcls.jpg" style="display: inline-block;width:100%;height:100%;" loading="lazy" decoding="async" alt="" width="1600" height="538" /><br>注意事项</p><ul><li><p><strong>双路 CPU</strong> 建议使用 <strong>型号一致</strong> 的处理器。</p></li><li><p><strong>内存封装类型</strong> 必须一致，常见类型如：<code>1Rx8</code>、<code>2Rx4</code>、<code>4Rx8</code> 等，不可混插。</p></li><li><p><strong>内存频率与品牌</strong> 尽量保持一致，以确保系统稳定性与性能。</p></li></ul>]]></content:encoded>
</item>
<item>
<title>Ubuntu 22.04 换源实用教程：让更新速度起飞！</title>
<link>https://www.csbsgyl.com/archives/ubuntu-22-04-mirror-guide/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/ubuntu-22-04-mirror-guide/</guid>
<pubDate>Thu, 30 Oct 2025 00:27:52 +0800</pubDate>
<description>整理 Ubuntu 22.04 更换国内软件源的完整步骤，涵盖系统版本确认、原配置备份、多个镜像源模板、apt 更新验证与恢复方法。</description>
<category>服务器</category>
<category>服务器</category>
<category>Ubuntu</category>
<category>Linux</category>
<category>软件源</category>
<content:encoded><![CDATA[<h2 id="前言"><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>前言</h2><p>本教程适用于 <strong>Ubuntu 22.04 及之后版本</strong> 的系统。</p><p>Ubuntu 系统默认使用的官方源（<code>archive.ubuntu.com</code>）通常位于国外，国内访问时延迟高、带宽受限，常常导致软件更新速度极慢，甚至直接失败。</p><p>更换为国内镜像源不仅能让 <code>apt update</code> 和 <code>apt upgrade</code> 的速度提升数倍，还能大幅提升系统更新的稳定性。</p><p>国内常用的 Ubuntu 镜像源包括：</p><ul><li><p>🟢 阿里云（Aliyun）</p></li><li><p>🟣 清华大学（TUNA）</p></li><li><p>🟠 中国科学技术大学（USTC）</p></li><li><p>🔵 网易（163）</p></li><li><p>🟡 华为云（Huawei Cloud）</p></li></ul><p>本文将以 <strong>阿里云源</strong> 为示例，并提供其他源的配置作为参考。</p><hr><h3 id="一-查看系统版本">一、查看系统版本</h3><p>先确认你当前的 Ubuntu 版本代号（如 jammy、focal）：</p><pre><code class="language-apex">lsb_release -a</code></pre><p>示例输出：</p><pre><code class="language-apex">Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy</code></pre><blockquote><p>⚠️ 注意：<br><code>Codename</code>（版本代号）是选择镜像源配置的关键，例如：</p><ul><li><p>Ubuntu 22.04 → <strong>jammy</strong></p></li><li><p>Ubuntu 20.04 → <strong>focal</strong></p></li><li><p>Ubuntu 18.04 → <strong>bionic</strong></p></li></ul></blockquote><hr><h3 id="二-备份旧源文件">二、备份旧源文件</h3><p>在修改前务必备份原有源文件，以防出现问题可快速恢复：</p><pre><code class="language-apex">sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak</code></pre><hr><h3 id="三-编辑源列表">三、编辑源列表</h3><p>使用文本编辑器打开源文件（推荐使用 nano）：</p><pre><code class="language-apex">sudo nano /etc/apt/sources.list</code></pre><p>清空文件内容，然后根据系统版本选择对应的源配置粘贴进去。</p><hr><h2 id="国内镜像源配置模板">国内镜像源配置模板</h2><hr><h3 id="阿里云镜像源-推荐">✅ 阿里云镜像源（推荐）</h3><p><strong>Ubuntu 22.04（Jammy Jellyfish）</strong></p><pre><code class="language-apex">deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse</code></pre><p><strong>Ubuntu 20.04（Focal Fossa）</strong></p><pre><code class="language-apex">deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse</code></pre><hr><h3 id="清华大学镜像源-tuna">✅ 清华大学镜像源（TUNA）</h3><pre><code class="language-apex">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse</code></pre><hr><h3 id="中国科学技术大学镜像源-ustc">✅ 中国科学技术大学镜像源（USTC）</h3><pre><code class="language-apex">deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse</code></pre><hr><h3 id="网易镜像源-163">✅ 网易镜像源（163）</h3><pre><code class="language-apex">deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
# deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse</code></pre><hr><h3 id="华为云镜像源-huawei-cloud">✅ 华为云镜像源（Huawei Cloud）</h3><pre><code class="language-apex">deb https://repo.huaweicloud.com/ubuntu/ jammy main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu/ jammy-backports main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu/ jammy-security main restricted universe multiverse
# deb https://repo.huaweicloud.com/ubuntu/ jammy-proposed main restricted universe multiverse</code></pre><hr><h3 id="四-更新软件包索引">四、更新软件包索引</h3><p>保存修改并退出编辑器（nano 下为 <code>Ctrl+O</code> → 回车 → <code>Ctrl+X</code>），然后更新软件包索引：</p><pre><code class="language-apex">sudo apt update</code></pre><p>若要同时更新系统软件，可执行：</p><pre><code class="language-apex">sudo apt upgrade -y</code></pre><hr><h3 id="五-验证换源结果">五、验证换源结果</h3><p>若在更新过程中输出中出现 <code>mirrors.aliyun.com</code>、<code>mirrors.tuna.tsinghua.edu.cn</code> 等字样，且无报错，即表示换源成功。<br>可以尝试安装一个包来验证下载速度：</p><pre><code class="language-apex">sudo apt install htop -y</code></pre><hr><h3 id="六-恢复默认源-可选">六、恢复默认源（可选）</h3><p>若更换后出现问题，可随时恢复官方源：</p><pre><code class="language-apex">sudo mv /etc/apt/sources.list.bak /etc/apt/sources.list
sudo apt update</code></pre><hr><h3 id="七-附加小技巧">七、附加小技巧</h3><ul><li><p>🧠 想切换不同源？只需替换 URL 域名（如 <code>mirrors.aliyun.com</code> → <code>mirrors.tuna.tsinghua.edu.cn</code>），其他部分保持不变即可。</p></li><li><p>🚀 如果你有 IPv6 网络，<strong>清华源</strong> 通常是最快最稳定的。</p></li><li><p>🧩 对于云服务器（如阿里云、腾讯云），建议优先使用同平台提供的镜像源以获得最佳速度。</p></li></ul><hr><h3 id="总结">✅ 总结</h3><p>更换国内镜像源是 Ubuntu 优化中最简单且最有效的操作之一。<br>只需几步，就能让 <code>apt update</code> 速度从几分钟提升到几秒。</p><p>换源之后，你的系统更新、软件安装体验都会大幅提升 —— 真正做到 <strong>“让更新速度起飞”！</strong></p>]]></content:encoded>
</item>
<item>
<title>脚本与工具合集 – 持续更新（2025）</title>
<link>https://www.csbsgyl.com/archives/scripts-tools-collection/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/scripts-tools-collection/</guid>
<pubDate>Sun, 26 Oct 2025 00:45:36 +0800</pubDate>
<description>本文收集整理了各类 Linux、Windows 系统管理与测速脚本，支持 DD 重装、系统信息检测、网络测速、流媒体解锁、Docker 安装等实用工具，便于运维、测评和日常管理。</description>
<category>有用的小知识</category>
<category>有用的小知识</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>本文收集整理了各类 Linux、Windows 系统管理与测速脚本，支持 DD 重装、系统信息检测、网络测速、流媒体解锁、Docker 安装等实用工具，便于运维、测评和日常管理。</p><hr><h2 id="一-chatgpt-访问检测脚本">一、ChatGPT 访问检测脚本</h2><div style="overflow-x: auto; overflow-y: hidden;"><div class="table-wrap"><table><colgroup><col><col><col></colgroup><tbody><tr style="height: 60px;"><th scope="col" colspan="1" rowspan="1"><p>日期</p></th><th scope="col" colspan="1" rowspan="1"><p>脚本来源</p></th><th scope="col" colspan="1" rowspan="1"><p>命令</p></th></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>2023-05-25</p></td><td colspan="1" rowspan="1"><p>OpenAI-Checker</p></td><td colspan="1" rowspan="1"><p><code>bash &lt;(curl -Ls https://raw.githubusercontent.com/missuo/OpenAI-Checker/main/openai.sh)</code></p></td></tr><tr style="height: 60px;"><td colspan="1" rowspan="1"><p>2023-04-29</p></td><td colspan="1" rowspan="1"><p>ourl.co / jsdelivr</p></td><td colspan="1" rowspan="1"><p><code>bash &lt;(curl -Ls https://ourl.co/oaic)</code> 或 <code>bash &lt;(curl -Ls https://cdn.jsdelivr.net/gh/missuo/OpenAI-Checker/openai.sh)</code></p></td></tr></tbody></table></div></div><hr><h2 id="二-综合工具箱">二、综合工具箱</h2><blockquote><p>集成了多种实用脚本，强烈推荐</p></blockquote><pre><code class="language-apex">wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh &amp;&amp; chmod +x box.sh &amp;&amp; clear &amp;&amp; ./box.sh</code></pre><hr><h2 id="三-dd-重装脚本-网络重装-linux-windows">三、DD 重装脚本（网络重装 Linux/Windows）</h2><h3 id="1-甲骨文-oracle-平台">1. 甲骨文（Oracle）平台</h3><ul><li><p>Debian 10：</p></li></ul><pre><code class="language-apex">bash &lt;(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') -d 10 -v 64 -p "自定义root密码" -port "自定义ssh端口"</code></pre><ul><li><p>Ubuntu 20.04：</p></li></ul><pre><code class="language-apex">bash &lt;(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') -u 20.04 -v 64 -p "自定义root密码" -port "自定义ssh端口"</code></pre><h3 id="2-moeclub-脚本特色">2. MoeClub 脚本特色</h3><ul><li><p>支持 Oracle AMD/ARM 平台</p></li><li><p>支持 Ubuntu / Debian / CentOS</p></li><li><p>可自定义 SSH 端口 <code>-port</code></p></li><li><p>内置网络参数计算和 GRUB 自动定位</p></li></ul><h3 id="3-秋水逸冰-windows-dd-镜像">3. 秋水逸冰 Windows DD 镜像</h3><ul><li><p>支持 UEFI 启动多版本 Windows：</p><ul><li><p>Windows Server 2012 / 2016 / 2019 / 2022</p></li><li><p>Windows 10 LTSC / Windows 11 Pro</p></li></ul></li><li><p>BIOS 启动版本另见官网链接：</p><ul><li><p><a href="https://teddysun.com/656.html" target="_blank" rel="noopener" class="decorated-link">UEFI/BIOS Windows 镜像</a></p></li></ul></li></ul><hr><h2 id="四-linux-系统信息-测速工具">四、Linux 系统信息 &amp; 测速工具</h2><h3 id="1-系统信息检测">1. 系统信息检测</h3><pre><code class="language-apex">wget -qO- bench.sh | bash</code></pre><h3 id="2-geekbench-跑分">2. GeekBench 跑分</h3><pre><code class="language-apex">curl -sL yabs.sh | bash          # GB6 附带带宽测试
curl -sL yabs.sh | bash -s -- -i # GB6 不测试带宽</code></pre><h3 id="3-单线程-网络测速">3. 单线程 &amp; 网络测速</h3><pre><code class="language-apex">bash &lt;(curl -Lso- https://bench.im/hyperspeed)
curl -fsL https://ilemonra.in/LemonBenchIntl | bash -s fast
wget -qO- git.io/superbench.sh | bash</code></pre><h3 id="4-回程线路-四网测速">4. 回程线路 &amp; 四网测速</h3><pre><code class="language-apex">curl https://raw.githubusercontent.com/zhucaidan/mtr_trace/main/mtr_trace.sh | bash
wget -O jcnf.sh https://raw.githubusercontent.com/Netflixxp/jcnfbesttrace/main/jcnf.sh &amp;&amp; bash jcnf.sh
bash &lt;(curl -Lso- https://git.io/J1SEh)</code></pre><hr><h2 id="五-流媒体解锁与测试">五、流媒体解锁与测试</h2><ul><li><p>奈飞测试：</p></li></ul><pre><code class="language-apex">wget -O nf https://github.com/sjlleo/netflix-verify/releases/download/2.5/nf_2.5_linux_amd64 &amp;&amp; chmod +x nf &amp;&amp; ./nf</code></pre><ul><li><p>全媒体区域解锁测试：</p></li></ul><pre><code class="language-apex">bash &lt;(curl -L -s https://raw.githubusercontent.com/lmc999/RegionRestrictionCheck/main/check.sh)</code></pre><ul><li><p>WARP 一键安装：</p></li></ul><pre><code class="language-apex">wget -N --no-check-certificate https://cdn.jsdelivr.net/gh/YG-tsj/CFWarp-Pro/multi.sh &amp;&amp; chmod +x multi.sh &amp;&amp; ./multi.sh</code></pre><hr><h2 id="六-服务器时间同步">六、服务器时间同步</h2><pre><code class="language-apex">yum -y install ntpdate
timedatectl set-timezone Asia/Shanghai
ntpdate ntp1.aliyun.com</code></pre><hr><h2 id="七-bbr-加速">七、BBR 加速</h2><ul><li><p>检查内核版本：</p></li></ul><pre><code class="language-apex">uname -srm</code></pre><ul><li><p>开启 BBR：</p></li></ul><pre><code class="language-apex">echo "net.core.default_qdisc=fq" &gt;&gt; /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" &gt;&gt; /etc/sysctl.conf
sysctl -p
lsmod | grep bbr</code></pre><hr><h2 id="八-docker-安装与管理">八、Docker 安装与管理</h2><h3 id="1-安装-docker-海外服务器">1. 安装 Docker（海外服务器）</h3><pre><code class="language-apex">wget -qO- get.docker.com | bash</code></pre><h3 id="2-卸载-docker">2. 卸载 Docker</h3><pre><code class="language-apex">sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker /var/lib/containerd</code></pre><h3 id="3-docker-compose">3. Docker Compose</h3><ul><li><p>新版（命令 <code>docker compose</code>）</p></li><li><p>旧版安装：</p></li></ul><pre><code class="language-apex">sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version</code></pre><hr><h2 id="九-防火墙">九、防火墙</h2><ul><li><p>CentOS 关闭防火墙：</p></li></ul><pre><code class="language-apex">systemctl stop firewalld
systemctl disable firewalld</code></pre><hr><h2 id="十-宝塔-aapanel-面板相关">十、宝塔 &amp; aapanel 面板相关</h2><ul><li><p>去除登录限制：</p></li></ul><pre><code class="language-apex">sed -i "s|if (bind_user == 'True') {|if (bind_user == 'REMOVED') {|g" /www/server/panel/BTPanel/static/js/index.js
rm -rf /www/server/panel/data/bind.pl</code></pre><ul><li><p>破解 pro 功能（不保证可用）：</p></li></ul><p>编辑 <code>/www/server/panel/class/panelplugin.py</code>，添加：</p><pre><code class="language-apex">softList['pro'] = 1
for soft in softList['list']:
    soft['endtime'] = 0</code></pre><hr><h2 id="十一-呆梨相关脚本">十一、呆梨相关脚本</h2><ul><li><p>XUI 安装：</p></li></ul><pre><code class="language-apex">bash &lt;(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)</code></pre><ul><li><p>Mack-a V2Ray 安装：</p></li></ul><pre><code class="language-apex">wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh" &amp;&amp; chmod 700 /root/install.sh &amp;&amp; /root/install.sh</code></pre><hr><h2 id="十二-使用注意事项">十二、使用注意事项</h2><ol><li><p>OpenVZ / LXC 架构不适用部分 DD 脚本</p></li><li><p>CentOS 默认密码：<code>Pwd@CentOS</code></p></li><li><p>其它 Linux 系统默认密码：<code>Pwd@Linux</code></p></li><li><p>国内镜像源推荐：</p></li></ol><ul><li><p>清华、阿里、华为、北邮、南京大学等</p></li></ul><ol start="5"><li><p>DD 脚本使用前请备份重要数据</p></li><li><p>脚本来源参考：https://blog.hicasper.com/post/135.html、https://www.ydyno.com/archives/1245.html</p></li></ol><hr><p>✅ <strong>总结</strong><br>本文整理了 <strong>Linux/Windows 系统 DD、测速、流媒体、Docker、BBR、面板管理等工具脚本合集</strong>，便于运维人员快速部署、测试和管理服务器。脚本持续更新，欢迎读者推荐和反馈。</p>]]></content:encoded>
</item>
<item>
<title>HUAWEI 华为 CE 系列交换机模板限速配置全教程</title>
<link>https://www.csbsgyl.com/archives/huawei-ce-switch-rate-limit/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/huawei-ce-switch-rate-limit/</guid>
<pubDate>Sun, 26 Oct 2025 00:43:01 +0800</pubDate>
<description>华为交换机限速主要分为 MQC（策略映射）限速 和 模板限速。 CE 系列交换机支持 模板限速，本文介绍如何通过模板限速管理端口流量，并包含验证和其他常用限速配置。</description>
<category>网络</category>
<category>网络</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>华为交换机限速主要分为 <strong>MQC（策略映射）限速</strong> 和 <strong>模板限速</strong>。<br>CE 系列交换机支持 <strong>模板限速</strong>，本文介绍如何通过模板限速管理端口流量，并包含验证和其他常用限速配置。</p><hr><h2 id="一-创建-car-模板">一、创建 CAR 模板</h2><p>CAR（Committed Access Rate）模板用于限制带宽流量。以创建 <strong>100M</strong> 模板为例：</p><pre><code class="language-apex">&lt;HUAWEI&gt; qos car 100M cir 100000 kbps
&lt;HUAWEI&gt; commit</code></pre><blockquote><p><strong>说明</strong>：</p><ul><li><p><code>100M</code>：模板名称</p></li><li><p><code>cir 100000 kbps</code>：带宽限制为 100 Mbps</p></li><li><p><code>commit</code>：提交配置</p></li></ul></blockquote><blockquote><p>⚠️ <strong>注意</strong>：CAR 模板单位为 kbps，创建时需根据实际需求设置。</p></blockquote><hr><h2 id="二-应用模板到端口">二、应用模板到端口</h2><p>以接口 <code>10GE1/0/1</code> 为例，应用 CAR 模板限制入站流量：</p><pre><code class="language-apex">&lt;HUAWEI&gt; interface 10GE1/0/1
&lt;HUAWEI-if10GE1/0/1&gt; qos lr cir 80 gbps outbound
&lt;HUAWEI-if10GE1/0/1&gt; qos car inbound 100M
&lt;HUAWEI-if10GE1/0/1&gt; quit
&lt;HUAWEI&gt; commit</code></pre><blockquote><p><strong>说明</strong>：</p><ul><li><p><code>qos lr cir 80 gbps outbound</code>：设置端口出方向 CIR（Committed Information Rate），可选，用于控制端口出方向速率</p></li><li><p><code>qos car inbound 100M</code>：将模板 <code>100M</code> 应用到接口入方向</p></li><li><p><code>commit</code>：提交配置</p></li></ul></blockquote><hr><h2 id="三-验证模板限速配置">三、验证模板限速配置</h2><ol><li><p><strong>查看 CAR 模板配置</strong>：</p></li></ol><pre><code class="language-apex">&lt;HUAWEI&gt; display qos car</code></pre><ol start="2"><li><p><strong>测速验证</strong>：</p></li></ol><ul><li><p>向接口发送 <strong>60 Mbps</strong> 流量：报文全部转发，无丢弃</p></li><li><p>向接口发送 <strong>110 Mbps</strong> 流量：部分报文被丢弃</p></li></ul><ol start="3"><li><p><strong>查看所有模板限速</strong>：</p></li></ol><pre><code class="language-apex">&lt;HUAWEI&gt; display current-configuration | include qos car</code></pre><hr><h2 id="四-其他常用限速配置">四、其他常用限速配置</h2><h3 id="1-流量整形-traffic-shaping">1. 流量整形（Traffic Shaping）</h3><p>用于平滑出方向流量：</p><pre><code class="language-apex">&lt;HUAWEI&gt; interface 10GE1/0/1
&lt;HUAWEI-if10GE1/0/1&gt; qos lr cir 80 gbps outbound
&lt;HUAWEI-if10GE1/0/1&gt; qos shaping inbound 100M
&lt;HUAWEI-if10GE1/0/1&gt; commit</code></pre><blockquote><p><strong>说明</strong>：</p><ul><li><p><code>qos shaping inbound 100M</code>：对入方向流量进行整形，超过 100M 的流量会延迟发送</p></li><li><p>出方向也可使用 <code>qos shaping outbound</code></p></li></ul></blockquote><hr><h3 id="2-端口速率限制-port-rate-limit">2. 端口速率限制（Port Rate Limit）</h3><p>直接限制端口物理带宽：</p><pre><code class="language-apex">&lt;HUAWEI&gt; interface 10GE1/0/1
&lt;HUAWEI-if10GE1/0/1&gt; traffic-policy rate-limit inbound cir 100M
&lt;HUAWEI-if10GE1/0/1&gt; traffic-policy rate-limit outbound cir 100M
&lt;HUAWEI-if10GE1/0/1&gt; commit</code></pre><blockquote><p><strong>说明</strong>：</p><ul><li><p>直接限制接口入/出方向最大速率</p></li><li><p>可用于防止端口被单用户占满带宽</p></li></ul></blockquote><hr><h3 id="3-端口优先级限速-qos-优先级映射">3. 端口优先级限速（QoS 优先级映射）</h3><p>结合端口优先级进行限速：</p><pre><code class="language-apex">&lt;HUAWEI&gt; qos car 50M cir 50000 kbps
&lt;HUAWEI&gt; interface 10GE1/0/1
&lt;HUAWEI-if10GE1/0/1&gt; qos car inbound 50M behavior green discard yellow
&lt;HUAWEI-if10GE1/0/1&gt; commit</code></pre><blockquote><p><strong>说明</strong>：</p><ul><li><p><code>behavior green discard yellow</code>：绿包正常转发，黄包丢弃</p></li><li><p>可用于结合业务优先级控制流量</p></li></ul></blockquote><hr><h2 id="五-操作注意事项与最佳实践">五、操作注意事项与最佳实践</h2><ol><li><p><strong>模板命名规范</strong></p><ul><li><p>建议使用带宽数字命名，如 <code>100M</code>、<code>1G</code>，方便管理</p></li></ul></li><li><p><strong>入方向 vs 出方向</strong></p><ul><li><p>CAR 模板多用于入方向限速</p></li><li><p>出方向可用流量整形或端口速率限制</p></li></ul></li><li><p><strong>验证</strong></p><ul><li><p>使用 <code>display qos car statistics</code> 查看统计数据</p></li><li><p>测试不同流量速率，确保模板生效</p></li></ul></li><li><p><strong>结合业务</strong></p><ul><li><p>租户服务器或特定 VLAN 可单独应用模板</p></li><li><p>可创建多个模板组合使用</p></li></ul></li><li><p><strong>提交配置</strong></p><ul><li><p>每次模板或接口配置后执行 <code>commit</code></p></li></ul></li></ol><hr><h2 id="六-总结">六、总结</h2><p>本文提供了 <strong>华为 CE 系列交换机模板限速完整教程</strong>，包括：</p><ul><li><p>CAR 模板创建与应用</p></li><li><p>流量整形配置</p></li><li><p>端口速率限制</p></li><li><p>优先级限速配置</p></li><li><p>验证方法与操作注意事项</p></li></ul><blockquote><p>⚠️ <strong>核心提示</strong>：模板限速简单易用，适合 CE 系列交换机流量管理。结合流量整形和优先级，可实现灵活的流量控制策略。</p></blockquote>]]></content:encoded>
</item>
<item>
<title>HUAWEI 华为交换机 SSH 登录开启与用户账号配置全教程</title>
<link>https://www.csbsgyl.com/archives/huawei-switch-ssh-login/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/huawei-switch-ssh-login/</guid>
<pubDate>Sun, 26 Oct 2025 00:40:49 +0800</pubDate>
<description>本文介绍如何在华为交换机上开启 SSH 登录，并配置登录用户名和权限，包含命令详解及注意事项。</description>
<category>网络</category>
<category>网络</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>本文介绍如何在华为交换机上开启 SSH 登录，并配置登录用户名和权限，包含命令详解及注意事项。</p><hr><h2 id="一-新建本地用户账号">一、新建本地用户账号</h2><p>以用户名 <code>csbsgyl</code> 为例：</p><pre><code class="language-apex">&lt;HUAWEI&gt; aaa</code></pre><blockquote><p>进入 AAA（Authentication, Authorization, Accounting）模式，用于用户管理和权限控制。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI-aaa&gt; local-user csbsgyl password cipher 123456</code></pre><blockquote><p>创建本地用户 <code>csbsgyl</code>，并设置登录密码为 <code>123456</code>，<code>cipher</code> 表示密码加密存储。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI-aaa&gt; local-user csbsgyl privilege level 15   // S 系列命令
&lt;HUAWEI-aaa&gt; local-user csbsgyl level 3              // CE 系列命令</code></pre><blockquote><p>设置用户权限等级：</p><ul><li><p>S 系列交换机使用 <code>privilege level</code>，15 为最高权限</p></li><li><p>CE 系列交换机使用 <code>level</code>，3 为管理员权限</p></li></ul></blockquote><pre><code class="language-apex">&lt;HUAWEI-aaa&gt; local-user csbsgyl service-type telnet terminal ssh</code></pre><blockquote><p>为用户开启登录协议，包括 Telnet、Console（terminal）和 SSH。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI&gt; display current-configuration | include user</code></pre><blockquote><p>查看当前已配置的用户信息，用于确认账号创建成功。</p></blockquote><hr><h2 id="二-开启-ssh-服务">二、开启 SSH 服务</h2><pre><code class="language-apex">&lt;HUAWEI&gt; stelnet server enable</code></pre><blockquote><p>启用 SSH 服务（华为交换机中 STelnet 即 SSH 功能）。<br>⚠️ 部分旧型号可能默认启用，或不支持此命令。</p></blockquote><hr><h2 id="三-配置用户支持-ssh-登录">三、配置用户支持 SSH 登录</h2><pre><code class="language-apex">&lt;HUAWEI&gt; ssh ipv4 server port 23333</code></pre><blockquote><p>设置 IPv4 SSH 登录端口为 23333（默认 22，可自定义）。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI&gt; ssh ipv6 server port 23333</code></pre><blockquote><p>设置 IPv6 SSH 登录端口为 23333。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI&gt; ssh user csbsgyl</code></pre><blockquote><p>指定 SSH 登录用户为 <code>csbsgyl</code>。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI&gt; ssh user csbsgyl authentication-type password</code></pre><blockquote><p>设置 SSH 登录认证方式为密码认证。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI&gt; ssh user csbsgyl service-type all</code></pre><blockquote><p>指定用户允许通过 SSH 使用所有服务类型。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI&gt; ssh server-source all-interface</code></pre><blockquote><p>设置 SSH 服务器的源接口为所有接口（便于从任意接口访问）。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI&gt; undo ssh ipv6 server-source all-interface</code></pre><blockquote><p>取消 SSH IPv6 源接口设置（如不需要从所有接口访问 IPv6，可执行）。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI&gt; ssh authorization-type default aaa</code></pre><blockquote><p>配置 SSH 授权方式使用 AAA 默认策略，统一管理用户权限。</p></blockquote><hr><h2 id="四-配置允许远程访问">四、配置允许远程访问</h2><pre><code class="language-apex">&lt;HUAWEI&gt; user-interface vty 0 4</code></pre><blockquote><p>进入虚拟终端接口配置，用于远程访问（Telnet/SSH）。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI-ui-vty0-4&gt; authentication-mode aaa</code></pre><blockquote><p>设置 VTY 远程登录认证方式为 AAA（使用已创建的本地用户）。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI-ui-vty0-4&gt; screen-length 0</code></pre><blockquote><p>设置终端显示长度为 0，避免分页，方便查看完整输出。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI-ui-vty0-4&gt; protocol inbound all</code></pre><blockquote><p>允许所有协议远程访问，包括 SSH、Telnet 等。</p></blockquote><hr><h2 id="五-配置-console-登录密码">五、配置 Console 登录密码</h2><pre><code class="language-apex">&lt;HUAWEI&gt; user-interface con 0</code></pre><blockquote><p>进入 Console 接口配置模式。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI-ui-console0&gt; authentication-mode password</code></pre><blockquote><p>设置 Console 登录认证方式为密码认证。</p></blockquote><pre><code class="language-apex">&lt;HUAWEI-ui-console0&gt; set authentication password cipher 123456</code></pre><blockquote><p>设置 Console 登录密码为 <code>123456</code>，<code>cipher</code> 表示加密存储密码。</p></blockquote><hr><h2 id="六-操作注意事项">六、操作注意事项</h2><ol><li><p><strong>SSH 端口自定义</strong></p><ul><li><p>默认端口 22，建议自定义端口增强安全性。</p></li></ul></li><li><p><strong>用户权限</strong></p><ul><li><p>管理员权限（S 系列 15，CE 系列 3）才能执行全局配置。</p></li></ul></li><li><p><strong>AAA 管理</strong></p><ul><li><p>建议使用 AAA 管理远程登录用户，更安全，可统一权限管理。</p></li></ul></li><li><p><strong>密码安全</strong></p><ul><li><p>避免使用简单密码，生产环境建议使用复杂密码。</p></li></ul></li><li><p><strong>远程访问</strong></p><ul><li><p>VTY 配置必须开启 SSH 协议，并设置认证模式为 AAA。</p></li></ul></li></ol><hr><p>✅ <strong>总结</strong><br>本文提供了 <strong>华为交换机 SSH 登录完整配置步骤</strong>，包括：</p><ul><li><p>创建本地用户并设置权限</p></li><li><p>开启 SSH 服务</p></li><li><p>配置用户登录 SSH</p></li><li><p>配置远程访问和 Console 登录密码</p></li><li><p>命令详解及注意事项</p></li></ul><blockquote><p>按步骤操作即可安全开启 SSH 登录，适合博客发布和运维参考。</p></blockquote>]]></content:encoded>
</item>
<item>
<title>HUAWEI 华为交换机 SNMP 配置与管理全教程</title>
<link>https://www.csbsgyl.com/archives/huawei-switch-snmp-config/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/huawei-switch-snmp-config/</guid>
<pubDate>Sun, 26 Oct 2025 00:38:22 +0800</pubDate>
<description>介绍华为交换机 SNMPv2c 与 SNMPv3 的配置方法，涵盖团体名、Trap、管理接口、配置检查以及生产环境安全注意事项。</description>
<category>网络</category>
<category>网络</category>
<category>华为交换机</category>
<category>SNMP</category>
<category>网络监控</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>SNMP（Simple Network Management Protocol）是网络管理中常用协议，用于对交换机进行远程监控、管理和告警。本文提供 <strong>华为交换机 SNMP 基础配置教程</strong>，适用于 SNMPv2c 和 SNMPv3，包含团体名配置、Trap 设置及注意事项。</p><hr><h2 id="一-进入交换机配置模式">一、进入交换机配置模式</h2><pre><code class="language-apex">&lt;switch&gt; system-view</code></pre><blockquote><p>⚠️ <strong>注意</strong>：<code>system-view</code> 命令会切换到全局配置模式，后续 SNMP 配置需在此模式下操作。</p></blockquote><hr><h2 id="二-启用-snmp-服务">二、启用 SNMP 服务</h2><pre><code class="language-apex">[switch] snmp-agent</code></pre><blockquote><p><strong>提示</strong>：启用后交换机开始响应 SNMP 请求。</p></blockquote><hr><h2 id="三-配置-snmp-团体名-community">三、配置 SNMP 团体名（Community）</h2><ol><li><p><strong>只读团体名</strong>（必需）：</p></li></ol><pre><code class="language-apex">[switch] snmp-agent community read cipher Huawei</code></pre><ol start="2"><li><p><strong>可写团体名</strong>（可选，慎用）：</p></li></ol><pre><code class="language-apex">[switch] snmp-agent community write Huawei</code></pre><blockquote><p>⚠️ <strong>注意</strong>：</p><ul><li><p><code>read</code>：只允许获取信息</p></li><li><p><code>write</code>：允许修改设备配置，安全风险高，生产环境谨慎使用</p></li><li><p>团体名建议设置复杂字符，避免默认 <code>public/private</code> 被攻击</p></li></ul></blockquote><hr><h2 id="四-配置-snmp-版本">四、配置 SNMP 版本</h2><pre><code class="language-apex">[switch] snmp-agent sys-info version v2c v3</code></pre><blockquote><p><strong>提示</strong>：</p><ul><li><p>建议使用 SNMPv3，支持认证和加密，更安全</p></li><li><p>v2c 仍然可用，兼容老版本 NMS</p></li></ul></blockquote><hr><h2 id="五-配置系统信息-可选">五、配置系统信息（可选）</h2><ol><li><p><strong>设置联系方式</strong>：</p></li></ol><pre><code class="language-apex">[switch] snmp-agent sys-info contact Mr.Luo-Tel:028-80000000</code></pre><ol start="2"><li><p><strong>设置设备位置</strong>：</p></li></ol><pre><code class="language-apex">[switch] snmp-agent sys-info location 3rd-floor</code></pre><blockquote><p>⚠️ <strong>提示</strong>：这些信息会显示在 NMS 系统中，方便运维定位。</p></blockquote><hr><h2 id="六-配置-snmp-出口接口-管理-ip-独立口时">六、配置 SNMP 出口接口（管理 IP 独立口时）</h2><ol><li><p><strong>指定 VPN 实例</strong>（如有 VPN 隔离）：</p></li></ol><pre><code class="language-apex">[switch] snmp-agent protocol vpn-instance MGT</code></pre><ol start="2"><li><p><strong>指定源接口</strong>：</p></li></ol><pre><code class="language-apex">[switch] snmp-agent protocol source-interface MEth0/0/0</code></pre><blockquote><p>⚠️ <strong>提示</strong>：</p><ul><li><p>这一步确保 SNMP 消息从正确接口发送</p></li><li><p>如果管理 IP 与默认网关在同一接口，可忽略此步骤</p></li></ul></blockquote><hr><h2 id="七-配置-snmp-trap">七、配置 SNMP Trap</h2><ol><li><p><strong>启用 Trap 功能</strong>：</p></li></ol><pre><code class="language-apex">[switch] snmp-agent trap enable</code></pre><ol start="2"><li><p><strong>配置 Trap 接收主机</strong>：</p></li></ol><pre><code class="language-apex">[switch] snmp-agent target-host trap address udp-domain 129.102.149.23 udp-port 5000 params securityname public</code></pre><blockquote><p><strong>说明</strong>：</p><ul><li><p><code>129.102.149.23</code> 为 NMS 服务器 IP</p></li><li><p><code>udp-port 5000</code> 为 Trap 端口，可根据 NMS 配置调整</p></li><li><p><code>securityname</code> 对应团体名（v2c）或 SNMPv3 用户</p></li></ul></blockquote><hr><h2 id="八-查看当前配置">八、查看当前配置</h2><pre><code class="language-apex">[switch] display current-configuration</code></pre><blockquote><p>⚠️ <strong>提示</strong>：可以确认 SNMP 服务、团体名、Trap 设置是否正确。</p></blockquote><hr><h2 id="九-操作注意点与最佳实践">九、操作注意点与最佳实践</h2><ol><li><p><strong>安全性</strong></p><ul><li><p>尽量使用 SNMPv3，启用认证和加密</p></li><li><p>避免在公网暴露 SNMPv2c</p></li><li><p>团体名使用复杂字符，禁止默认 <code>public/private</code></p></li></ul></li><li><p><strong>Trap 配置</strong></p><ul><li><p>确认 NMS 可达</p></li><li><p>端口和团体名一致</p></li></ul></li><li><p><strong>出口接口</strong></p><ul><li><p>配置源接口保证 Trap 消息发送正确</p></li><li><p>若管理 IP 与默认路由接口相同，可跳过</p></li></ul></li><li><p><strong>备份配置</strong></p><ul><li><p>配置完成后建议保存：</p></li></ul></li></ol><pre><code class="language-apex">[switch] save</code></pre><ol start="5"><li><p><strong>逐步验证</strong></p><ul><li><p>SNMP 客户端测试：</p></li></ul></li></ol><pre><code class="language-apex">snmpwalk -v2c -c Huawei 192.168.1.1</code></pre><hr><h2 id="总结">✅ 总结</h2><p>本文提供了 <strong>华为交换机 SNMP 基础配置完整步骤</strong>：</p><ul><li><p>启用 SNMP 服务</p></li><li><p>配置团体名和版本</p></li><li><p>设置系统信息</p></li><li><p>配置出口接口和 Trap</p></li><li><p>查看当前配置与安全注意事项</p></li></ul><blockquote><p>⚠️ <strong>核心提示</strong>：优先使用 SNMPv3，严格管理团体名和 Trap 主机，确保安全可靠。</p></blockquote>]]></content:encoded>
</item>
<item>
<title>HUAWEI 华为交换机固件升级与补丁安装全教程</title>
<link>https://www.csbsgyl.com/archives/huawei-switch-firmware-upgrade/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/huawei-switch-firmware-upgrade/</guid>
<pubDate>Sun, 26 Oct 2025 00:36:21 +0800</pubDate>
<description>在生产环境中，交换机固件升级或打补丁是常见运维操作，但操作不当可能导致设备异常甚至无法启动。本文提供 华为 CE 系列交换机完整操作流程，包含注意点、风险提示及文件管理操作，兼顾安全性和可操作性。</description>
<category>网络</category>
<category>网络</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>在生产环境中，交换机固件升级或打补丁是常见运维操作，但操作不当可能导致设备异常甚至无法启动。本文提供 <strong>华为 CE 系列交换机</strong>完整操作流程，包含注意点、风险提示及文件管理操作，兼顾安全性和可操作性。</p><hr><h2 id="一-准备工作">一、准备工作</h2><ol><li><p><strong>搭建内网 TFTP/FTP 服务器</strong></p><ul><li><p>内网可访问交换机</p></li><li><p>上传需要升级的固件（<code>.cc</code>）和补丁文件（<code>.PAT</code>）</p></li><li><p>确保文件完整性，可使用 MD5/SHA256 校验</p></li></ul></li><li><p><strong>备份交换机配置</strong>（强烈建议）：</p></li></ol><pre><code class="language-apex">&lt;HUAWEI&gt; save flash:/backup.cfg</code></pre><blockquote><p>⚠️ <strong>注意</strong>：升级固件会重启设备，未保存配置可能丢失。</p></blockquote><ol start="3"><li><p><strong>确认网络连通性</strong>：</p></li></ol><pre><code class="language-apex">&lt;HUAWEI&gt; ping 192.168.56.48</code></pre><p>确保交换机可以访问 TFTP/FTP 服务器。</p><hr><h2 id="二-下载固件及补丁">二、下载固件及补丁</h2><ol><li><p><strong>进入根目录</strong>：</p></li></ol><pre><code class="language-apex">&lt;HUAWEI&gt; cd flash:/</code></pre><ol start="2"><li><p><strong>通过 TFTP 下载文件</strong>：</p></li></ol><pre><code class="language-apex">&lt;HUAWEI&gt; tftp 192.168.56.48 get CE6851HI-V200R002C50SPC800.cc
&lt;HUAWEI&gt; tftp 192.168.56.48 get CE6851HI-V200R002SPH008.PAT</code></pre><blockquote><p>⚠️ <strong>注意点</strong>：</p><ul><li><p>下载过程中确保网络稳定</p></li><li><p>文件必须完整，下载失败或不完整可能导致升级失败</p></li><li><p>文件名区分大小写，严格与服务器文件一致</p></li></ul></blockquote><ol start="3"><li><p><strong>验证下载结果</strong>：</p></li></ol><pre><code class="language-apex">Info: Transfer file in binary mode.
Please wait for a while...
237285020 bytes transferred
Info: Downloaded the file successfully.</code></pre><hr><h2 id="三-应用固件和补丁">三、应用固件和补丁</h2><ol><li><p><strong>应用固件</strong>（全量升级）：</p></li></ol><pre><code class="language-apex">&lt;HUAWEI&gt; startup system-software CE6851HI-V200R002C50SPC800.cc all</code></pre><blockquote><p>⚠️ <strong>注意点</strong>：</p><ul><li><p>确认固件文件与交换机型号、版本匹配</p></li><li><p><code>all</code> 表示应用到全部槽位，保证一致性</p></li></ul></blockquote><ol start="2"><li><p><strong>应用补丁</strong>：</p></li></ol><pre><code class="language-apex">&lt;HUAWEI&gt; startup patch CE6851HI-V200R002SPH008.PAT all</code></pre><blockquote><p>⚠️ <strong>注意点</strong>：补丁应针对当前固件版本，顺序不可颠倒（先固件，再补丁）</p></blockquote><ol start="3"><li><p><strong>重启设备生效</strong>：</p></li></ol><pre><code class="language-apex">&lt;HUAWEI&gt; reboot</code></pre><blockquote><p>⚠️ <strong>注意点</strong>：</p><ul><li><p>重启会断开所有会话，请提前通知网络用户</p></li><li><p>升级过程中 <strong>不要断电</strong>，否则可能造成交换机无法启动</p></li></ul></blockquote><hr><h2 id="四-文件管理操作">四、文件管理操作</h2><h3 id="1-删除文件">1. 删除文件</h3><pre><code class="language-apex">&lt;HUAWEI&gt; delete CE6851HI-V200R002C50SPC800.cc</code></pre><blockquote><p>⚠️ 默认文件进入回收站，可恢复。</p></blockquote><h3 id="2-恢复已删除文件">2. 恢复已删除文件</h3><ul><li><p><strong>单个文件</strong>：</p></li></ul><pre><code class="language-apex">&lt;HUAWEI&gt; undelete sample.bak</code></pre><ul><li><p><strong>整个根目录文件</strong>：</p></li></ul><pre><code class="language-apex">&lt;HUAWEI&gt; undelete flash:</code></pre><blockquote><p>⚠️ 系统会提示确认，依次恢复文件。</p></blockquote><h3 id="3-完全删除-跳过回收站">3. 完全删除（跳过回收站）</h3><pre><code class="language-apex">&lt;HUAWEI&gt; delete /unreserved CE6851HI-V200R002C50SPC800.cc</code></pre><h3 id="4-清空回收站">4. 清空回收站</h3><pre><code class="language-apex">&lt;HUAWEI&gt; reset recycle-bin</code></pre><blockquote><p>⚠️ <strong>注意点</strong>：回收站清空后无法恢复文件，请确认重要文件已备份。</p></blockquote><hr><h2 id="五-操作注意事项与最佳实践">五、操作注意事项与最佳实践</h2><ol><li><p><strong>升级前备份配置</strong></p><ul><li><p>使用 <code>save flash:/backup.cfg</code> 或 <code>display current-configuration</code> 导出配置</p></li></ul></li><li><p><strong>检查固件和补丁匹配型号</strong></p><ul><li><p>错误固件可能导致设备无法启动</p></li><li><p>补丁版本必须对应当前固件版本</p></li></ul></li><li><p><strong>升级顺序</strong></p><ul><li><p>先升级固件，再打补丁</p></li><li><p>不要跳过步骤或颠倒顺序</p></li></ul></li><li><p><strong>网络稳定性</strong></p><ul><li><p>下载固件或补丁时确保 TFTP/FTP 网络稳定</p></li><li><p>避免在无线或不稳定网络环境中操作</p></li></ul></li><li><p><strong>重启注意</strong></p><ul><li><p>升级过程中不可断电</p></li><li><p>重启会中断业务，请选择低峰期操作</p></li></ul></li><li><p><strong>回收站管理</strong></p><ul><li><p>删除文件默认进入回收站，可恢复</p></li><li><p>完全删除文件前务必确认不再需要</p></li></ul></li><li><p><strong>安全与日志</strong></p><ul><li><p>升级操作记录在系统日志，可通过 <code>display logbuffer</code> 查看</p></li><li><p>建议在操作前拍照或记录设备当前版本、补丁版本</p></li></ul></li></ol><hr><h2 id="六-总结">六、总结</h2><p>本文提供了 <strong>华为交换机固件升级与补丁安装的全流程操作指南</strong>，包含：</p><ul><li><p>准备工作与网络环境确认</p></li><li><p>下载固件与补丁</p></li><li><p>固件升级与补丁应用</p></li><li><p>文件管理（删除、恢复、清空回收站）</p></li><li><p>每步操作注意点与最佳实践</p></li></ul><blockquote><p>⚠️ <strong>核心提示</strong>：严格按照顺序操作、备份配置、确保网络稳定，是成功升级的关键。</p></blockquote>]]></content:encoded>
</item>
<item>
<title>CentOS 全系列 IPv6 地址与静态路由配置教程</title>
<link>https://www.csbsgyl.com/archives/centos-ipv6-static-route/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/centos-ipv6-static-route/</guid>
<pubDate>Sun, 26 Oct 2025 00:31:39 +0800</pubDate>
<description>在现代网络环境中，IPv6 越来越普及，服务器配置中也经常需要配置 IPv6 地址及静态路由。本教程覆盖 CentOS 全系列（包括 CentOS 6/7/8/Stream），内容包括手动配置……</description>
<category>服务器</category>
<category>服务器</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /><br>在现代网络环境中，IPv6 越来越普及，服务器配置中也经常需要配置 IPv6 地址及静态路由。本教程覆盖 <strong>CentOS 全系列</strong>（包括 CentOS 6/7/8/Stream），内容包括手动配置 IPv6 地址、自动获取 IPv6 地址以及静态路由设置，提供完整可操作步骤和注意事项。</p><hr><h2 id="一-查看网卡名称">一、查看网卡名称</h2><p>在配置前，需要先确认网卡名称：</p><pre><code class="language-apex">ip link</code></pre><p>常见网卡名称：</p><ul><li><p><code>eth0</code> / <code>eth1</code>（早期版本 CentOS）</p></li><li><p><code>eno1</code> / <code>ens33</code>（CentOS 7/8/Stream）</p></li></ul><hr><h2 id="二-手动配置-ipv6-地址-静态">二、手动配置 IPv6 地址（静态）</h2><h3 id="1-编辑网卡配置文件">1. 编辑网卡配置文件</h3><p>打开对应网卡的配置文件（以 <code>eno1</code> 为例，替换为实际网卡名称）：</p><pre><code class="language-apex">vim /etc/sysconfig/network-scripts/ifcfg-eno1</code></pre><p>添加或修改以下内容：</p><pre><code class="language-apex">TYPE=Ethernet
BOOTPROTO=static
NAME=eno1
DEVICE=eno1
ONBOOT=yes
IPADDR=192.168.31.3
PREFIX=24
GATEWAY=192.168.31.1

IPV6INIT=yes              # 启用 IPv6
IPV6_AUTOCONF=no          # 关闭自动获取地址
IPV6_DEFROUTE=yes          # 默认路由启用
IPV6_FAILURE_FATAL=yes     # 异常保持连接
IPV6ADDR=2001::2/64        # IPv6 地址
IPV6_DEFAULTGW=2001::1     # IPv6 网关</code></pre><h3 id="2-重启网络服务">2. 重启网络服务</h3><pre><code class="language-apex">service network restart</code></pre><p>或在 CentOS 7/8 使用 systemd：</p><pre><code class="language-apex">systemctl restart network</code></pre><h3 id="3-验证-ipv6-配置">3. 验证 IPv6 配置</h3><pre><code class="language-apex">ip -6 address show eno1
ping6 2001::1</code></pre><hr><h2 id="三-自动获取-ipv6-地址-dhcpv6">三、自动获取 IPv6 地址（DHCPv6）</h2><h3 id="1-编辑网卡配置文件-2">1. 编辑网卡配置文件</h3><pre><code class="language-apex">vim /etc/sysconfig/network-scripts/ifcfg-eno1</code></pre><p>内容示例：</p><pre><code class="language-apex">TYPE=Ethernet
BOOTPROTO=static
NAME=eno1
DEVICE=eno1
ONBOOT=yes
IPADDR=192.168.31.3
PREFIX=24
GATEWAY=192.168.31.1

IPV6INIT=yes
IPV6_AUTOCONF=yes         # 启用自动获取 IPv6
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=yes
DHCPV6C=yes               # 启用 DHCPv6 客户端</code></pre><h3 id="2-重启网络服务-2">2. 重启网络服务</h3><pre><code class="language-apex">service network restart</code></pre><h3 id="3-验证">3. 验证</h3><pre><code class="language-apex">ip -6 address show eno1</code></pre><p>确认 IPv6 地址已通过 DHCP 自动获取。</p><hr><h2 id="四-静态路由配置">四、静态路由配置</h2><h3 id="1-临时添加-ipv6-静态路由">1. 临时添加 IPv6 静态路由</h3><p>添加：</p><pre><code class="language-apex">route -A inet6 add 2400:dd0a:1001:151::1/64 gw 2400:dd0a:1001:140::1</code></pre><p>删除：</p><pre><code class="language-apex">route -A inet6 del 2400:dd0a:1001:151::1 gw 2400:dd0a:1001:140::1</code></pre><blockquote><p><strong>说明</strong>：临时添加的路由在重启后失效。</p></blockquote><hr><h3 id="2-永久添加-ipv6-静态路由">2. 永久添加 IPv6 静态路由</h3><h4 id="2-1-编辑路由配置文件">2.1 编辑路由配置文件</h4><pre><code class="language-apex">vim /etc/sysconfig/network-scripts/route-eno1</code></pre><p>添加静态路由：</p><pre><code class="language-apex">2400:dd0a:1001:151::1/64 via 2400:dd0a:1001:140::1 dev eno1
210.72.151.1/24 via 210.72.140.1 dev eno1</code></pre><blockquote><p><code>eno1</code> 替换为实际网卡名称。</p></blockquote><h4 id="2-2-重启网络服务">2.2 重启网络服务</h4><pre><code class="language-apex">service network restart</code></pre><p>或：</p><pre><code class="language-apex">systemctl restart network</code></pre><h4 id="2-3-验证静态路由">2.3 验证静态路由</h4><pre><code class="language-apex">ip -6 route show</code></pre><p>确认路由条目已生效。</p><hr><h2 id="五-注意事项">五、注意事项</h2><ol><li><p><strong>兼容性</strong></p><ul><li><p><code>/etc/sysconfig/network-scripts/ifcfg-*</code> 配置方式兼容 <strong>CentOS 全系列</strong></p></li><li><p>CentOS 7/8 也可以使用 systemd 管理网络，命令略有不同</p></li></ul></li><li><p><strong>IPv6 默认路由</strong></p><ul><li><p><code>IPV6_DEFROUTE=yes</code> 必须开启，否则无法访问外网 IPv6</p></li></ul></li><li><p><strong>网络服务重启方式</strong></p><ul><li><p>CentOS 6：<code>service network restart</code></p></li><li><p>CentOS 7/8/Stream：<code>systemctl restart network</code></p></li></ul></li><li><p><strong>安全性</strong></p><ul><li><p>配置静态 IPv6 地址时，确保地址与网络不冲突</p></li><li><p>静态路由设置需与现有网络拓扑匹配，避免路由环路</p></li></ul></li></ol><hr><h2 id="总结">✅ 总结</h2><ul><li><p>本教程覆盖 <strong>CentOS 全系列 IPv6 地址与静态路由配置</strong></p></li><li><p>包含 <strong>手动 IPv6、DHCPv6、临时/永久静态路由</strong></p></li><li><p>步骤清晰、兼容全系列，适合博客发布和运维参考</p></li></ul>]]></content:encoded>
</item>
<item>
<title>Debian 全系列静态 IP 与 DNS 设置教程</title>
<link>https://www.csbsgyl.com/archives/debian-static-ip-dns/</link>
<guid isPermaLink="true">https://www.csbsgyl.com/archives/debian-static-ip-dns/</guid>
<pubDate>Sun, 26 Oct 2025 00:28:46 +0800</pubDate>
<description>在服务器或虚拟机中，通常需要配置静态 IP 和自定义 DNS。本教程覆盖 Debian 全系列（Debian 9/10/11/12），同时给出经典和 Debian 12 新方式，完整可操作。</description>
<category>服务器</category>
<category>服务器</category>
<content:encoded><![CDATA[<p><img src="https://www.csbsgyl.com/upload/qrcode-search-banner.png" alt="微信搜一搜「云核筑梦家」，关注小航博客" style="display: inline-block;width:50%;height:auto;" loading="lazy" decoding="async" width="1710" height="624" /></p><p>在服务器或虚拟机中，通常需要配置静态 IP 和自定义 DNS。本教程覆盖 Debian 全系列（Debian 9/10/11/12），同时给出经典和 Debian 12 新方式，完整可操作。</p><hr><h2 id="一-查看网卡名称">一、查看网卡名称</h2><pre><code class="language-apex">ip address</code></pre><p>输出示例：</p><pre><code class="language-apex">2: ens33: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 ...
    inet 192.168.2.100/24 brd 192.168.2.255 scope global dynamic ens33</code></pre><p>网卡名称为 <code>ens33</code>（不同系统可能是 <code>eth0</code>、<code>ens18</code> 等）。</p><hr><h2 id="二-经典方式-修改-etc-network-interfaces-兼容全系列-debian">二、经典方式：修改 <code>/etc/network/interfaces</code>（兼容全系列 Debian）</h2><h3 id="1-编辑网卡配置文件">1. 编辑网卡配置文件</h3><pre><code class="language-apex">vi /etc/network/interfaces</code></pre><p>在末尾添加静态 IP 配置：</p><pre><code class="language-apex">auto ens33
iface ens33 inet static
    address 192.168.2.157
    netmask 255.255.255.0
    gateway 192.168.2.2</code></pre><ul><li><p><code>ens33</code>：网卡名称</p></li><li><p><code>address</code>：静态 IP</p></li><li><p><code>netmask</code>：子网掩码</p></li><li><p><code>gateway</code>：网关</p></li></ul><h3 id="2-重启网络服务">2. 重启网络服务</h3><pre><code class="language-apex">systemctl restart networking.service</code></pre><p>或者：</p><pre><code class="language-apex">ifdown ens33 &amp;&amp; ifup ens33</code></pre><hr><h3 id="3-配置-dns">3. 配置 DNS</h3><p>Debian 12 默认没有 <code>/etc/resolv.conf</code>，可手动创建：</p><pre><code class="language-apex">vi /etc/resolv.conf</code></pre><p>添加：</p><pre><code class="language-apex">nameserver 114.114.114.114
nameserver 8.8.8.8</code></pre><p>保存后即可生效。防止 DHCP 覆盖：</p><pre><code class="language-apex">chattr +i /etc/resolv.conf</code></pre><hr><h2 id="三-debian-12-新版本方式-systemd-networkd-配置静态-ip-与-dns">三、Debian 12 / 新版本方式：systemd-networkd 配置静态 IP 与 DNS</h2><p>Debian 12 默认使用 <code>systemd-networkd</code>，推荐通过 <code>.network</code> 文件配置。</p><h3 id="1-创建网卡配置文件">1. 创建网卡配置文件</h3><pre><code class="language-apex">vi /etc/systemd/network/20-ens33.network</code></pre><p>添加内容：</p><pre><code class="language-apex">[Match]
Name=ens33

[Network]
Address=192.168.2.157/24
Gateway=192.168.2.2
DNS=114.114.114.114 8.8.8.8</code></pre><ul><li><p><code>Address</code>：IP/掩码</p></li><li><p><code>Gateway</code>：默认路由</p></li><li><p><code>DNS</code>：DNS 列表，可多个</p></li></ul><h3 id="2-启用并重启网络服务">2. 启用并重启网络服务</h3><pre><code class="language-apex">systemctl enable systemd-networkd
systemctl restart systemd-networkd</code></pre><h3 id="3-验证配置">3. 验证配置</h3><pre><code class="language-apex">ip address
ip route
resolvectl status</code></pre><p>确认 IP、网关和 DNS 设置正确。</p><hr><h2 id="四-验证网络配置">四、验证网络配置</h2><ol><li><p><strong>测试 IP 是否生效</strong></p></li></ol><pre><code class="language-apex">ip address</code></pre><ol start="2"><li><p><strong>测试网关是否正确</strong></p></li></ol><pre><code class="language-apex">ip route</code></pre><ol start="3"><li><p><strong>测试 DNS 是否生效</strong></p></li></ol><pre><code class="language-apex">ping www.baidu.com
nslookup www.google.com</code></pre><hr><h2 id="五-注意事项与优化">五、注意事项与优化</h2><ol><li><p><strong>兼容性</strong></p><ul><li><p><code>/etc/network/interfaces</code> 方法兼容 Debian 全系列</p></li><li><p>systemd-networkd 方法为 Debian 12 默认方式，更现代</p></li></ul></li><li><p><strong>安全与稳定</strong></p><ul><li><p>避免 IP 冲突</p></li><li><p>DNS 配置可防止被 DHCP 覆盖</p></li><li><p>可以限制防火墙只允许特定 IP 或端口</p></li></ul></li><li><p><strong>网络服务重启</strong></p><ul><li><p><code>systemctl restart networking.service</code></p></li><li><p><code>ifdown/ifup</code> 或 <code>systemctl restart systemd-networkd</code></p></li></ul></li></ol><hr><h2 id="总结">✅ 总结</h2><ul><li><p>教程覆盖 <strong>Debian 全系列静态 IP 与 DNS 配置</strong></p></li><li><p>同时提供 <strong>经典方式</strong> 和 <strong>Debian 12 新方式</strong></p></li><li><p>包含 DNS 设置、防止 DHCP 覆盖等安全优化</p></li><li><p>步骤清晰、直接可操作，适合博客发布和运维参考</p></li></ul>]]></content:encoded>
</item>
</channel>
</rss>
