<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>刘洪亮Leo的博客</title>
  
  <subtitle>经验分享与记录生活</subtitle>
  <link href="https://blog.lhliang.com/rss.xml" rel="self"/>
  
  <link href="https://blog.lhliang.com/"/>
  <updated>2026-05-17T08:26:20.632Z</updated>
  <id>https://blog.lhliang.com/</id>
  
  <author>
    <name>刘洪亮Leo</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>&#92;u201c近四成程序员KPI已加入AI能力，2026春招这一轮变局有多猛？&#92;u201d</title>
    <link href="https://blog.lhliang.com/p/877e3f45.html"/>
    <id>https://blog.lhliang.com/p/877e3f45.html</id>
    <published>2026-05-16T22:30:00.000Z</published>
    <updated>2026-05-17T08:26:20.632Z</updated>
    
    <content type="html"><![CDATA[<p>脉脉高聘人才智库于2026年5月13日发布的《脉脉2026春招职场洞察报告》，用一组数字给了所有程序员一个清醒的警示：今年前四个月，AI领域岗位量同比激增<strong>8.7倍</strong>，具身智能赛道岗位暴增<strong>15倍</strong>，而与此同时，<strong>近四成程序员的绩效考核已正式纳入AI能力指标</strong>。</p><p>这不是招聘市场的季节性波动，而是一次系统性的职场重构。</p><h2 id="1、数字有多猛？先看基本面"><a href="#1、数字有多猛？先看基本面" class="headerlink" title="1、数字有多猛？先看基本面"></a>1、数字有多猛？先看基本面</h2><p>2026年春招整体数据呈现明显回暖态势。新经济行业新发岗位量同比增长22.6%，人才供需比从2.45降至2.09，求职竞争压力有所缓解。但这只是表面的温和，背后的结构性分化极为剧烈。</p><p>AI岗位同比增长8.7倍——这意味着，如果去年AI岗位是1个，今年就是近10个。具身智能更夸张，直接是去年的16倍体量。高性能计算工程师的供需比从0.99骤降至0.26，意味着市场上4个岗位竞争1名合格候选人，从充分竞争直接跳入严重稀缺。</p><p>再看薪资：新经济行业新发岗位平均月薪从4.42万元涨至4.96万元，涨幅12.13%。AI科学家及负责人岗位平均月薪达到<strong>13.2万元</strong>，是唯一突破10万元大关的岗位。具身智能岗位平均月薪6.2万元，边扩招边加薪，和大多数行业的状态形成鲜明对比。</p><h2 id="2、城市格局：北京、杭州领跑，深圳落后"><a href="#2、城市格局：北京、杭州领跑，深圳落后" class="headerlink" title="2、城市格局：北京、杭州领跑，深圳落后"></a>2、城市格局：北京、杭州领跑，深圳落后</h2><p>从地域来看，北京以**30.17%**的AI岗位渗透率位居全国第一，即每10个新发岗位中，有约3个与AI直接相关。杭州以28.54%紧随其后，超越上海（24.31%）跻身第二，这一排位在三年前几乎不可想象。深圳以19.22%排名第四。</p><p>杭州的异军突起有迹可循：阿里巴巴系的大模型生态、网易、海康威视等企业的AI基础设施建设，以及近年来涌入的AI创业公司，共同拉高了当地AI岗位密度。北京则凭借百度、字节、旷视、智谱AI等头部玩家的持续扩张，稳坐第一。</p><h2 id="3、程序员的KPI已经变了"><a href="#3、程序员的KPI已经变了" class="headerlink" title="3、程序员的KPI已经变了"></a>3、程序员的KPI已经变了</h2><p>最值得关注的数据是：<strong>38.51%的程序员所在公司，已将AI能力正式纳入绩效考核</strong>。这不是\u201c鼓励学习\u201d的软性引导，而是硬指标、动绩效、影响薪资。</p><p>与此同时，<strong>54%的程序员表示过去一年公司发生了岗位优化</strong>。面对这一现实，程序员群体的应对策略分化明显：39.1%选择留岗提升能力，25.7%选择转向AI开发岗位，还有部分人选择观望或转型。</p><p>这场考核变革背后，是企业对AI工具使用率的现实压力。报告显示，在万人以上大企业中，有70.3%已为员工提供免费或自研AI工具；而500人以下小企业中，这一比例只有42.5%。大企业跑在前面，中小企业跟进速度参差不齐，但最终都会走向同一个方向：用AI工具的人，替代不用AI工具的人。</p><h2 id="4、具身智能：最烧钱、最稀缺的赛道"><a href="#4、具身智能：最烧钱、最稀缺的赛道" class="headerlink" title="4、具身智能：最烧钱、最稀缺的赛道"></a>4、具身智能：最烧钱、最稀缺的赛道</h2><p>具身智能是本次报告里最抢眼的关键词之一。岗位量暴增15倍，平均月薪6.2万元，连续两年供需比低于1，这意味着这个赛道始终处于人才短缺状态。</p><p>报告将AI领域紧缺方向归为四类：<strong>AI基础设施、算法研发、智能驾驶、半导体</strong>。这四个方向的共同特点是壁垒极高、培养周期长、且没有可替代的捷径。普通程序员在这些方向上难以快速切入，但也正因如此，一旦具备相关能力，议价权极强。</p><p>从岗位主体来看，今年抢人的不再只是BAT和大厂，具身智能公司（如宇树科技、智元机器人）、智能硬件公司和智驾企业开始大量进入春招市场，成为高端AI人才的重要吸纳池。行业内已普遍将2026年称为\u201cAgent大年\u201d。</p><h2 id="5、95-的人在用AI，但大多数人不知道自己用了多少"><a href="#5、95-的人在用AI，但大多数人不知道自己用了多少" class="headerlink" title="5、95%的人在用AI，但大多数人不知道自己用了多少"></a>5、95%的人在用AI，但大多数人不知道自己用了多少</h2><p>报告中有一个有趣的细节：<strong>95.11%的新经济人才表示在使用AI工具</strong>，但其中<strong>63.24%的AI用户对自己每日消耗的Token量完全不清楚</strong>。每日Token消耗超过1000万的重度用户只占2.05%。</p><p>这说明，AI工具的\u201c使用\u201d和\u201c深度使用\u201d之间，还存在巨大的鸿沟。会用ChatGPT写邮件，和能用Agent框架搭建自动化工作流，是两个维度的能力。企业在考核AI能力时，前者恐怕很难打高分。</p><p>对于大多数程序员来说，真正的问题不是要不要学AI，而是学到什么程度才算够用。而答案，正在被雇主的KPI表格慢慢写清楚。</p><hr><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://news.qq.com/rain/a/20260514A04MPH00">春招AI岗位增长8.7倍，近4成受访程序员的KPI有AI能力丨封面有数</a></li><li><a href="https://www.sohu.com/a/1023219689_100053070">2026年春招：Agent大年 AI岗位依旧成抢人焦点</a></li><li><a href="https://tech.ifeng.com/c/8t6CJpDnSVU">脉脉发布2026春招报告：AI岗位激增8.7倍，这个岗位月薪超10万</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;脉脉高聘人才智库于2026年5月13日发布的《脉脉2026春招职场洞察报告》，用一组数字给了所有程序员一个清醒的警示：今年前四个月，AI领域岗位量同比激增&lt;strong&gt;8.7倍&lt;/strong&gt;，具身智能赛道岗位暴增&lt;strong&gt;15倍&lt;/strong&gt;，而与此同时，&lt;</summary>
      
    
    
    
    <category term="AI与科技" scheme="https://blog.lhliang.com/categories/AI%E4%B8%8E%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="AI招聘" scheme="https://blog.lhliang.com/tags/AI%E6%8B%9B%E8%81%98/"/>
    
    <category term="职场变革" scheme="https://blog.lhliang.com/tags/%E8%81%8C%E5%9C%BA%E5%8F%98%E9%9D%A9/"/>
    
    <category term="具身智能" scheme="https://blog.lhliang.com/tags/%E5%85%B7%E8%BA%AB%E6%99%BA%E8%83%BD/"/>
    
    <category term="程序员" scheme="https://blog.lhliang.com/tags/%E7%A8%8B%E5%BA%8F%E5%91%98/"/>
    
  </entry>
  
  <entry>
    <title>136亿+450亿美元，中国AI大模型国家队时代来了</title>
    <link href="https://blog.lhliang.com/p/b8c9e31.html"/>
    <id>https://blog.lhliang.com/p/b8c9e31.html</id>
    <published>2026-05-16T22:30:00.000Z</published>
    <updated>2026-05-17T14:35:29.774Z</updated>
    
    <content type="html"><![CDATA[<p>中国AI大模型赛道正在经历一场史无前例的资本变局。2026年5月上旬，两则重磅消息接连震动业界：先是月之暗面宣布完成136亿元D轮融资、估值突破1362亿元；紧接着，国家集成电路产业投资基金被曝正洽谈领投DeepSeek首轮融资、后者估值有望达到450亿美元（约合3078亿元人民币）。两件事叠加，标志着中国AI大模型正式进入「国家队」时代。</p><h2 id="1、三年逼近300亿，月之暗面刷新融资纪录"><a href="#1、三年逼近300亿，月之暗面刷新融资纪录" class="headerlink" title="1、三年逼近300亿，月之暗面刷新融资纪录"></a>1、三年逼近300亿，月之暗面刷新融资纪录</h2><p>2026年5月7日，月之暗面（Kimi）官宣完成约136.22亿元D轮融资，创下中国大模型领域单笔融资最高纪录。这家成立于2023年的清华系独角兽，成立仅三年累计融资已逼近300亿元。</p><p>领投方为美团龙珠，联合入局方包括中国移动、中信产业基金、水木资本等。阿里、腾讯、美团、小红书等互联网巨头均已悉数押注。创始人杨植麟为清华本科、卡内基梅隆博士出身，曾任职于谷歌Brain和Meta AI，拥有业界顶尖的技术背景。</p><p>月之暗面的核心竞争力在于其Kimi智能助手，凭借超强长文本处理能力在C端市场迅速出圈。2026年4月，其开源旗舰模型K2.6正式发布，对标GPT-5.4和Claude Opus 4.6等国际顶尖闭源模型，在OpenRouter平台的周调用量达到1.85万亿tokens，稳居全球第二。更令市场惊艳的是，其年度经常性收入（ARR）在4月已突破13.62亿元。</p><p>融资完成后，月之暗面明确表示将聚焦Agent赛道、深耕下一代K3模型。值得注意的是，公司手握超百亿现金储备，明确「不急于变现」，将IPO定位为加速AGI研发的工具而非终点。</p><h2 id="2、大基金12年头一遭，为什么是DeepSeek？"><a href="#2、大基金12年头一遭，为什么是DeepSeek？" class="headerlink" title="2、大基金12年头一遭，为什么是DeepSeek？"></a>2、大基金12年头一遭，为什么是DeepSeek？</h2><p>如果说月之暗面的融资还在市场预期之内，那么国家大基金（下称「大基金」）入局DeepSeek则彻底打破了行业认知。</p><p>2026年5月6日，据《金融时报》报道，大基金正在洽谈主导DeepSeek首轮融资，投后估值约450亿美元。这一数字在短短三周内从100亿美元飙升至450亿美元，翻了4.5倍，创下全球AI创业史罕见的估值跃升纪录。</p><p>这不是普通VC抢项目，这是中国AI基础设施的一次战略下注。</p><p>大基金成立于2014年，管理规模已超过6000亿元。回顾其投资轨迹：一期1387亿元，63%投向制造环节；二期2041亿元，83.5%押注晶圆制造；三期3440亿元，聚焦光刻机、HBM等硬件环节。过去12年，大基金从未投资过任何一家纯AI算法公司。</p><p>这笔投资的战略意义在于：AI算法与高端芯片同等重要，都被视为国家战略资产。投资理念正从「单一硬件突围」转向「软硬件协同建生态」。</p><p>DeepSeek凭什么获得大基金青睐？答案是其完成了全球首个不依赖英伟达的万亿级大模型部署。DeepSeek-V4已全面迁移至华为昇腾CANN，在昇腾910C芯片上推理效率达英伟达H20的2.87倍，成本仅为海外方案的1%。这意味着，当美国持续升级AI芯片出口限制时，DeepSeek已经跑通了国产替代的技术路径。</p><p>本轮DeepSeek计划募资500亿元，梁文锋个人出资200亿元（占40%），大基金作为第二大投资方，腾讯等互联网巨头参与。这种「创始人主导+国家队背书+产业资本协同」的结构，在中国AI史上尚属首次。</p><h2 id="3、国产算力崛起：从5-到50-的三年跨越"><a href="#3、国产算力崛起：从5-到50-的三年跨越" class="headerlink" title="3、国产算力崛起：从5%到50%的三年跨越"></a>3、国产算力崛起：从5%到50%的三年跨越</h2><p>大基金投资DeepSeek，背后是中国算力格局的深刻变迁。</p><p>2023年，国产AI芯片市场份额仅为5%，几乎可以忽略不计。到2025年，这一数字已攀升至41%，预计2026年将突破50%，首次超越英伟达。</p><p>这一跃升来之不易。硬件算力固然重要，但真正的壁垒在于生态。英伟达CUDA生态绑定数百万开发者，迁移成本高昂。DeepSeek的价值在于证明了国产芯片「完全能够支撑」世界级大模型运行，为其他AI公司提供了可复制的迁移路径。</p><p>更深层的逻辑在于自主可控。当顶尖大模型与国产算力形成良性循环——「顶尖模型带动国产算力应用→推动芯片技术迭代→支撑更强模型」——中国AI产业才能真正摆脱被「卡脖子」的风险。</p><h2 id="4、变局之后：中国AI的三重跃迁"><a href="#4、变局之后：中国AI的三重跃迁" class="headerlink" title="4、变局之后：中国AI的三重跃迁"></a>4、变局之后：中国AI的三重跃迁</h2><p>两笔巨额融资背后，是中国AI产业的三个根本性转变。</p><p><strong>从技术追赶到全球创新。</strong> DeepSeek-V4跻身全球第一梯队，月之暗面K2.6对标GPT-5.4，中国AI不再是「me too」，而是开始输出原创技术路线。</p><p><strong>从单一硬件到软硬协同。</strong> 大基金12年来首次投资AI算法，意味着国家战略认知发生根本转变：算法与芯片同等重要，生态比单点突破更有价值。</p><p><strong>从民营资本到国家队入场。</strong> 当1362亿元估值遇上450亿美元估值，中国AI大模型不再只是商业公司的游戏，而是成为国家科技战略的核心组成部分。</p><p>当然，狂热之下也需要冷思考。450亿美元的估值是否过高？国家队入场会不会带来效率损耗？这些问题都需要时间回答。但可以确定的是，中国AI大模型的国家队时代已经开启，游戏规则正在被重写。</p><p>下一个问题是：在这场关乎国运的AI竞赛中，谁将成为真正的赢家？</p><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://www.eet-china.com/mp/a493204.html">136亿元融资！月之暗面创下中国大模型领域单笔融资最高纪录</a></li><li><a href="https://caifuhao.eastmoney.com/news/20260511205245441295990">460亿美金DeepSeek或联手国家大基金：中国AI不想再被“卡脖子”了</a></li><li><a href="https://baijiahao.baidu.com/s?id=1864589286658809480">国家大基金垂青DeepSeek</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;中国AI大模型赛道正在经历一场史无前例的资本变局。2026年5月上旬，两则重磅消息接连震动业界：先是月之暗面宣布完成136亿元D轮融资、估值突破1362亿元；紧接着，国家集成电路产业投资基金被曝正洽谈领投DeepSeek首轮融资、后者估值有望达到450亿美元（约合3078亿</summary>
      
    
    
    
    <category term="AI与科技" scheme="https://blog.lhliang.com/categories/AI%E4%B8%8E%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="AI大模型" scheme="https://blog.lhliang.com/tags/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B/"/>
    
    <category term="国家战略" scheme="https://blog.lhliang.com/tags/%E5%9B%BD%E5%AE%B6%E6%88%98%E7%95%A5/"/>
    
    <category term="投融资" scheme="https://blog.lhliang.com/tags/%E6%8A%95%E8%9E%8D%E8%B5%84/"/>
    
    <category term="DeepSeek" scheme="https://blog.lhliang.com/tags/DeepSeek/"/>
    
  </entry>
  
  <entry>
    <title>“不再只卖模型：OpenAI豪掷40亿美元战略转型”</title>
    <link href="https://blog.lhliang.com/p/2799ee12.html"/>
    <id>https://blog.lhliang.com/p/2799ee12.html</id>
    <published>2026-05-12T22:30:00.000Z</published>
    <updated>2026-05-13T11:54:30.685Z</updated>
    
    <content type="html"><![CDATA[<p>5月11日，OpenAI宣布成立<strong>OpenAI部署公司</strong>（OpenAI Deployment Company），初始投资规模超<strong>40亿美元</strong>，并同步收购英国AI咨询公司Tomoro，引入约150名专业部署工程师。这一动作的战略意图极为清晰——OpenAI不再满足于做“最好的模型”，而要成为企业AI落地的基础设施级玩家。</p><h2 id="1、从「卖模型」到「卖部署」：一场迟到但不意外的战略转身"><a href="#1、从「卖模型」到「卖部署」：一场迟到但不意外的战略转身" class="headerlink" title="1、从「卖模型」到「卖部署」：一场迟到但不意外的战略转身"></a>1、从「卖模型」到「卖部署」：一场迟到但不意外的战略转身</h2><p>过去两年，基础模型能力快速收敛，各家GPT-level模型之间的体验差距持续收窄。在这样的背景下，单纯比拼模型性能的商业逻辑正在被重构——<strong>模型能力的边际价值在下降，而将模型能力转化为真实业务价值的「最后一公里」才是竞争高地。</strong></p><p>OpenAI CEO Sam Altman在内部信中明确表示：下一阶段的核心战场，在于帮助企业将AI深度融入其技术栈与运营体系，而非仅仅提供一个API接口。这不是一次试探性的业务拓展，而是对商业模式的根本性重塑。</p><h2 id="2、FDE模式：把工程师「焊进」客户组织"><a href="#2、FDE模式：把工程师「焊进」客户组织" class="headerlink" title="2、FDE模式：把工程师「焊进」客户组织"></a>2、FDE模式：把工程师「焊进」客户组织</h2><p>新公司的核心运营机制是<strong>Forward Deployed Engineers（前沿部署工程师，FDE）制度</strong>。与传统IT咨询公司的交付模式不同，FDE工程师将长期嵌入客户组织内部，与业务领导、运营团队、一线员工共同工作。</p><p>具体流程分为三个阶段：<strong>诊断阶段</strong>，精准识别AI能创造最大价值的业务场景；<strong>选择阶段</strong>，与客户领导层共同确定优先级最高的工作流；<strong>落地阶段</strong>，围绕AI重构底层架构与核心业务流程，构建可迭代升级的生产级系统。</p><p>这一模式让人联想到<strong>Palantir</strong>——那家以“把工程师派进复杂组织、围绕数据构建决策系统”著称的软件公司。如今，OpenAI正在将类似逻辑移植到AI领域，并叠加了更强大的模型能力作为底座。</p><h2 id="3、40亿美元背后的豪华生态联盟"><a href="#3、40亿美元背后的豪华生态联盟" class="headerlink" title="3、40亿美元背后的豪华生态联盟"></a>3、40亿美元背后的豪华生态联盟</h2><p>这并非一笔小打小闹的战略性投资。OpenAI部署公司的股东阵容堪称豪华：</p><ul><li><strong>牵头方</strong>：TPG（德太投资）</li><li><strong>联席创始伙伴</strong>：Advent（安宏资本）、Bain Capital（贝恩资本）、Brookfield（布鲁克菲尔德）</li><li><strong>创始合作方</strong>：高盛、软银集团、华平投资（Warburg Pincus）、BBVA、Emergence Capital等全球顶级机构</li></ul><p>总计<strong>19家</strong>顶尖投资机构、咨询公司与系统集成企业参与，覆盖金融、能源、制造业、零售等多个行业垂直。这套班底的配置，清晰指向一个目标：不仅提供技术能力，更要提供<strong>行业Know-How与渠道资源</strong>，让AI部署真正进入传统行业的核心流程。</p><h2 id="4、攻守兼备：Daybreak同日发布，剑指网络安全"><a href="#4、攻守兼备：Daybreak同日发布，剑指网络安全" class="headerlink" title="4、攻守兼备：Daybreak同日发布，剑指网络安全"></a>4、攻守兼备：Daybreak同日发布，剑指网络安全</h2><p>同一天，OpenAI还推出了网络安全产品<strong>Daybreak</strong>，整合最强模型与Codex能力，面向网络防御者提供漏洞发现修复、安全待办自动化、威胁建模等能力。</p><p>Altman表示：AI在网络安全领域已表现出色，且即将变得更强，OpenAI希望现在就开始与尽可能多的企业合作。从战略布局看，Daybreak与部署公司形成了一攻一守的协同——<strong>部署公司负责把AI推进企业核心业务，Daybreak负责守卫这条进攻路线上的安全底线。</strong></p><h2 id="5、格局重塑：从「AI公司」到「AI基础设施」"><a href="#5、格局重塑：从「AI公司」到「AI基础设施」" class="headerlink" title="5、格局重塑：从「AI公司」到「AI基础设施」"></a>5、格局重塑：从「AI公司」到「AI基础设施」</h2><p>这一系列动作释放了一个重要信号：<strong>AI行业的竞争维度正在从模型层向部署层迁移。</strong></p><p>随着基础模型逐步商品化，差异化不再取决于“谁的模型更强”，而是“谁能帮助企业更好地用起来”。Accenture、麦肯锡、IBM等传统IT咨询巨头在这一领域积累深厚，OpenAI此举无疑是直接向它们宣战——以更强的模型底座、更灵活的部署机制，争取企业AI市场的主动权。</p><p>超过100万家企业已采用OpenAI产品与API，这是历史积累；但从“用过API”到“深度嵌入核心业务流程”，中间隔着组织变革、数据治理、流程重构等多重障碍。<strong>40亿美元的赌注，买的不是技术，而是跨越这道鸿沟的工程能力与组织信任。</strong></p><hr><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://news.qq.com/rain/a/20260512A05EVP00">助力人工智能企业落地：OpenAI宣布成立OpenAI部署公司</a></li><li><a href="https://news.qq.com/rain/a/20260511A08SRB00">OpenAI豪掷40亿美元成立新公司，要帮企业部署AI</a></li><li><a href="https://www.36kr.com/p/3805558810336774">今天，OpenAI杀疯了，砸40亿美元成立新公司、还祭出网络防御利器Daybreak</a></li><li><a href="https://www.nbd.com.cn/articles/2026-05-12/4387982.html">OpenAI斥资超40亿美元成立新部门，加速企业AI落地</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;5月11日，OpenAI宣布成立&lt;strong&gt;OpenAI部署公司&lt;/strong&gt;（OpenAI Deployment Company），初始投资规模超&lt;strong&gt;40亿美元&lt;/strong&gt;，并同步收购英国AI咨询公司Tomoro，引入约150名专业部署工程师。这</summary>
      
    
    
    
    <category term="AI与科技" scheme="https://blog.lhliang.com/categories/AI%E4%B8%8E%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="OpenAI" scheme="https://blog.lhliang.com/tags/OpenAI/"/>
    
    <category term="AI落地" scheme="https://blog.lhliang.com/tags/AI%E8%90%BD%E5%9C%B0/"/>
    
    <category term="企业AI" scheme="https://blog.lhliang.com/tags/%E4%BC%81%E4%B8%9AAI/"/>
    
    <category term="产业观察" scheme="https://blog.lhliang.com/tags/%E4%BA%A7%E4%B8%9A%E8%A7%82%E5%AF%9F/"/>
    
  </entry>
  
  <entry>
    <title>“算力的尽头是电力：四部门重磅发文，AI与能源的双向奔赴正式开始”</title>
    <link href="https://blog.lhliang.com/p/2f9da021.html"/>
    <id>https://blog.lhliang.com/p/2f9da021.html</id>
    <published>2026-05-09T22:30:00.000Z</published>
    <updated>2026-05-10T14:32:42.563Z</updated>
    
    <content type="html"><![CDATA[<p>5月8日，国家发展改革委、国家能源局、工业和信息化部、国家数据局四部门联合印发《关于促进人工智能与能源双向赋能的行动方案》（以下简称《行动方案》）。消息一出，市场上与算力、绿电相关的概念股集体震动。</p><p>这不是一次普通的政策发布。它标志着中国正式将“算力与能源协同”从工程项目层面，上升为国家战略级别的系统部署。</p><h2 id="1、不只是“给算力中心供电”"><a href="#1、不只是“给算力中心供电”" class="headerlink" title="1、不只是“给算力中心供电”"></a>1、不只是“给算力中心供电”</h2><p>以往的政策思路，基本围绕一个核心问题：怎么给越来越耗电的数据中心提供稳定电力？</p><p>《行动方案》换了一个角度。文件核心逻辑是：<strong>能源赋能AI、AI反哺能源</strong>——构建一个双向闭合的生态，而非单向的“供电”关系。</p><p>具体来说，这意味着两件事：</p><p>一是AI算力基础设施要尽可能消纳绿色能源，降低碳排放，以绿电驱动训练和推理；二是AI技术要反过来赋能电网调度、新能源预测、储能管理等能源场景，用算法解决电力系统自身的智能化问题。</p><p>这种双向思维，在全球范围内并不多见。</p><h2 id="2、为什么现在迫切需要“算电协同”"><a href="#2、为什么现在迫切需要“算电协同”" class="headerlink" title="2、为什么现在迫切需要“算电协同”"></a>2、为什么现在迫切需要“算电协同”</h2><p>理解这份文件的必要性，需要先看清楚当前的三个深层矛盾。</p><p><strong>空间错配</strong>：中国东部地区算力需求旺盛，但绿电资源稀缺；西部地区风光资源丰富，但本地算力消纳需求不足。“东数西算”工程解决了部分问题，但架构性矛盾依然存在。</p><p><strong>时间错配</strong>：风电和光伏发电具有典型的间歇性——白天有太阳，晚上没有；大风天有电，无风期断供。但AI数据中心的训练和推理任务需要7×24小时不间断供电，对电力质量要求极高。</p><p><strong>消纳矛盾</strong>：截至2025年底，全国风电总装机容量已达640GW，光伏总装机达1200GW，合计占全国总装机比重的47.3%。但绿电发电量占比仅22%，大量装机形同虚设，弃风弃光现象依然严重。</p><p>AI算力恰恰是解决消纳矛盾的天然出口——它可以在绿电富集时段灵活调度非实时任务（如模型训练），主动消纳过剩电力，将原本浪费的风光转变为实际算力产出。</p><h2 id="3、中国的电力成本：一个被低估的竞争优势"><a href="#3、中国的电力成本：一个被低估的竞争优势" class="headerlink" title="3、中国的电力成本：一个被低估的竞争优势"></a>3、中国的电力成本：一个被低估的竞争优势</h2><p>在AI产业的成本构成中，电力是继芯片之后第二大支出。训练一个大型模型往往需要持续数周乃至数月的GPU集群高功率运行，电费开支可以轻松达到数百万乃至数千万元。</p><p>这正是中国的潜在优势所在。</p><p>中国西部绿电富集地区（内蒙古、贵州、新疆等地）的工业电价约为0.3–0.4元&#x2F;千瓦时，而美国北弗吉尼亚、硅谷等主要AI数据中心聚集地的电价约为0.5–0.8元&#x2F;千瓦时，欧洲部分地区更高达1.2–2.0元&#x2F;千瓦时。</p><p>按生成100万Token耗电0.1–0.3千瓦时测算，中国西部算力的电力成本约为0.03–0.12元，**较欧美低30%–50%**。</p><p>《行动方案》的落地，将进一步扩大这一优势：绿电直连（不经公共电网，直接输送至数据中心）、储能标配化、REITs和绿色债券金融支持……每一条都指向同一个目标：把西部的绿色电力优势，系统性地转化为AI产业的全球竞争力。</p><h2 id="4、两个时间节点，意味着什么"><a href="#4、两个时间节点，意味着什么" class="headerlink" title="4、两个时间节点，意味着什么"></a>4、两个时间节点，意味着什么</h2><p>《行动方案》设定了清晰的阶段目标：</p><p><strong>2027年</strong>：初步构建安全、绿色、经济的能源保障体系，清洁能源与算力设施双向互动能力显著提升。</p><p><strong>2030年</strong>：实现质的突破——AI算力设施清洁能源供给保障能力、能源领域AI专用技术研发和应用，<strong>达到世界领先水平</strong>。</p><p>“世界领先”四个字，分量不轻。这不是一个模糊的表态，而是一个可被追责的公开承诺。</p><p>值得注意的是，这与中国2030年碳达峰目标高度契合。算力的绿电化，既是AI产业发展的内在需求，也是国家低碳承诺的重要支柱。两条线索交汇，形成了政策推进的强大合力。</p><h2 id="5、已有案例验证路径可行"><a href="#5、已有案例验证路径可行" class="headerlink" title="5、已有案例验证路径可行"></a>5、已有案例验证路径可行</h2><p>政策文件往往领先于实践，但这一次，市场已经跑在了前面。</p><p>腾讯云与远景集团在内蒙古赤峰联合建设了全球首个100%绿电直供数据中心。据公开数据，该项目综合能源成本降低超过40%，每年减少碳排放约18万吨。</p><p>这个案例证明了技术路径的可行性：绿电直连并非理想实验，而是已经规模化落地的商业现实。</p><p>《行动方案》的意义在于，它将这种个案推广为全行业的系统性政策框架，降低了后来者的试错成本和门槛。</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>AI竞争的表面，是算法、芯片和数据的比拼；但底层，是能源系统的较量。</p><p>中国拥有全球最大规模的可再生能源装机，正在将这一传统基础设施优势，系统性地注入数字经济的核心竞争力。从“东数西算”到“算电协同”，这条路走了五年，终于走到了国家战略的最高层。</p><p>接下来，这场双向奔赴的进度，值得持续跟踪。</p><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://finance.sina.com.cn/wm/2026-05-10/doc-inhxkhwm0840347.shtml">算力的尽头是电力？四部门重磅发文：2030年将迎来质的突破</a></li><li><a href="http://www.ce.cn/xwzx/gnsz/gdxw/202605/t20260509_2953460.shtml">四部门力挺 AI与能源将加速“双向奔赴”</a></li><li><a href="https://www.21jingji.com/article/20260508/herald/fa484520cd10aae5710baa4249c1a163.html">算力绿电新风口！四部门印发行动方案，促人工智能与能源双向赋能</a></li><li><a href="https://finance.people.com.cn/n1/2026/0509/c1004-40716421.html">四部门发文力推人工智能与能源双向赋能</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;5月8日，国家发展改革委、国家能源局、工业和信息化部、国家数据局四部门联合印发《关于促进人工智能与能源双向赋能的行动方案》（以下简称《行动方案》）。消息一出，市场上与算力、绿电相关的概念股集体震动。&lt;/p&gt;
&lt;p&gt;这不是一次普通的政策发布。它标志着中国正式将“算力与能源协同</summary>
      
    
    
    
    <category term="AI与科技" scheme="https://blog.lhliang.com/categories/AI%E4%B8%8E%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="AI算力" scheme="https://blog.lhliang.com/tags/AI%E7%AE%97%E5%8A%9B/"/>
    
    <category term="绿电" scheme="https://blog.lhliang.com/tags/%E7%BB%BF%E7%94%B5/"/>
    
    <category term="能源政策" scheme="https://blog.lhliang.com/tags/%E8%83%BD%E6%BA%90%E6%94%BF%E7%AD%96/"/>
    
    <category term="数据中心" scheme="https://blog.lhliang.com/tags/%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83/"/>
    
  </entry>
  
  <entry>
    <title>工信部批复6G试验频率，中国6G研发正式迈入外场试验新阶段</title>
    <link href="https://blog.lhliang.com/p/1943f32b.html"/>
    <id>https://blog.lhliang.com/p/1943f32b.html</id>
    <published>2026-05-08T22:30:00.000Z</published>
    <updated>2026-05-09T14:35:31.162Z</updated>
    
    <content type="html"><![CDATA[<p>2026年5月8日，工业和信息化部正式向IMT-2030（6G）推进组批复<strong>6GHz频段</strong>（6425–7125 MHz）6G试验频率使用许可，分配<strong>700 MHz连续带宽</strong>用于技术试验。这标志着中国6G研发正式从实验室测试阶段进入外场试验新阶段，是6G商用进程中具有里程碑意义的关键一步。</p><p>1、为什么是6GHz？“黄金频谱”的独特价值</p><p>6GHz频段（6425–7125 MHz）被业界誉为6G的“黄金频谱”，其核心价值在于在覆盖距离与传输带宽之间取得了精妙平衡。相比低频段，它拥有更宽的连续带宽（本次批复提供700 MHz连续带宽），可支撑6G所需的大容量数据传输；相比毫米波频段，它的信号绕射能力更强、覆盖距离更远，组网成本更为可控。</p><p>从5G向6G演进的技术路径来看，6GHz是一个关键的过渡频谱资源。5G当前主要使用Sub-6GHz和毫米波两个频段，而6GHz恰好填补了两者之间的空白，既能延续5G的基础设施投资，又能为6G的极致性能要求预留充足频谱空间。</p><p>2、从实验室到外场：6G研发的关键一跃</p><p>本次频率批复的最大意义，在于推动6G研发从“实验室测试”走向“外场试验”。TD产业联盟秘书长杨骅明确指出：“这一许可的落地，标志着我国6G研发正式从实验室测试阶段步入外场试验新阶段。”</p><p>外场试验的核心价值在于：工程师可以在真实的城市环境、工业场景中测试信号穿透力、基站干扰、多小区切换等现实问题，这些都是实验室单点测试无法模拟的复杂场景。</p><p>根据公开信息，我国6G研发已完成<strong>第一阶段技术试验</strong>，累计形成<strong>超300项关键技术储备</strong>；2026年1月，第二阶段系统方案集成与原型验证试验已正式启动，预计持续至2027年底。</p><p>3、6G有多强？关键性能指标全面跃升</p><p>国际电信联盟（ITU）已为6G定义了明确的关键性能指标，相比5G实现代际跃升：</p><table><thead><tr><th>指标</th><th>6G目标</th><th>相比5G</th></tr></thead><tbody><tr><td>峰值速率</td><td>1 Tbps</td><td>提升约100倍</td></tr><tr><td>用户面时延</td><td>0.1–1 ms</td><td>近乎“零延迟”</td></tr><tr><td>连接密度</td><td>10⁷–10⁸ &#x2F;km²</td><td>提升10–100倍</td></tr><tr><td>移动性支持</td><td>最高1000 km&#x2F;h</td><td>支持高铁、航空场景</td></tr></tbody></table><p>峰值速率1 Tbps意味着下载一部高清电影仅需0.1秒，这种量级的能力跃升将催生全新的应用场景。</p><p>4、不止于快：6G的三大颠覆性技术架构</p><p>6G相比5G最根本的变化，不在于“更快”，而在于“更智能”和“更全面”。</p><p><strong>空天地海一体化网络</strong>是6G的核心架构变革之一。通过低轨卫星星座与地面基站的协同，6G有望真正实现全球无缝覆盖——沙漠、海洋、高山这些5G的信号盲区，都将被纳入6G的覆盖范围。</p><p><strong>通感融合</strong>（通信+感知一体化）是另一项革命性能力。6G基站将同时具备通信和雷达感知功能，可以直接感知车辆位置、人体姿态、环境参数，而无需额外部署专门的传感器网络。</p><p><strong>AI内生网络</strong>则意味着人工智能将不再是“外挂”功能，而是6G网络的原生能力。网络可以自主学习流量模式、自动优化资源分配、自动修复故障，真正实现“自愈、自优、自治”的智能网络。</p><p>5、产业规模：十万亿级蓝海待启</p><p>中国工程院院士、北京邮电大学教授张平预测，6G预计将催生一个<strong>十万亿元级</strong>的庞大产业。这一预测并非空穴来风——每一次移动通信代际跃迁，都会重塑整个产业链并创造全新的商业模式。</p><p>6G的产业辐射范围将远超5G：数字农业、智能制造、智慧医疗、自动驾驶、全息通信、元宇宙办公……这些场景在5G时代受限于带宽和时延而难以规模落地，在6G时代则有望全面兑现。</p><p>6、中国在全球6G竞争中的位置</p><p>从标准话语权的角度来看，中国目前在6G理念层面处于全球领先地位。IMT-2030（6G）推进组由中国信息通信研究院牵头，汇聚了三大运营商、华为、中兴、小米、OPPO、vivo等产业力量，已形成相当完整的技术储备。</p><p>然而，6G的最终标准需要全球统一，这一过程必然伴随激烈的国际博弈。中国能否将技术优势转化为标准话语权，关键在于能否推动国际共识的形成。本次6GHz试验频率的批复，正是中国在6G标准竞赛中落下的重要一子。</p><p>根据业内专家的预测，6G第一版标准预计将在<strong>2029年</strong>完成制定，<strong>2030年</strong>具备商用能力。届时，距5G商用恰好约10年，符合移动通信技术约10年一代的演进规律。</p><p>7、产业链投资机会梳理</p><p>6G频率批复的消息一出，A股6G概念板块应声上涨。6G指数单日逆势上涨2.18%，泰晶科技涨停，启明星辰、浩瀚深度等个股集体上涨。</p><p>从产业链受益顺序来看，6G商用将依次带动：</p><ul><li><strong>上游</strong>：射频器件、滤波器、天线、芯片（基站芯片、终端基带芯片）</li><li><strong>中游</strong>：基站设备、传输设备、网络规划运维</li><li><strong>下游</strong>：终端整机、行业应用解决方案</li></ul><p>其中，毫米波&#x2F;太赫兹器件、卫星互联网、通感融合设备是值得重点关注的细分方向。</p><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://news.qq.com/rain/a/20260508A03MQ100">工信部正式批复6G试验频率，我国6G研发加速推进</a></li><li><a href="https://www.21jingji.com/article/20260509/herald/f36a469354da83fd03624c3642edb64a.html">概念股应声大涨，6G技术试验频率获批，意味着什么？</a></li><li><a href="https://www.ithome.com/0/948/001.htm">工信部批复6G技术试验频率；美团、淘宝闪购、京东已基本取消超时扣款</a></li><li><a href="https://finance.sina.com.cn/jjxw/2026-05-08/doc-inhxcyyr4282472.shtml">工信部批复6G技术试验频率，6G概念多股涨停</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;2026年5月8日，工业和信息化部正式向IMT-2030（6G）推进组批复&lt;strong&gt;6GHz频段&lt;/strong&gt;（6425–7125 MHz）6G试验频率使用许可，分配&lt;strong&gt;700 MHz连续带宽&lt;/strong&gt;用于技术试验。这标志着中国6G研发正式从实</summary>
      
    
    
    
    <category term="AI与科技" scheme="https://blog.lhliang.com/categories/AI%E4%B8%8E%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="6G" scheme="https://blog.lhliang.com/tags/6G/"/>
    
    <category term="通信技术" scheme="https://blog.lhliang.com/tags/%E9%80%9A%E4%BF%A1%E6%8A%80%E6%9C%AF/"/>
    
    <category term="IMT-2030" scheme="https://blog.lhliang.com/tags/IMT-2030/"/>
    
    <category term="工信部" scheme="https://blog.lhliang.com/tags/%E5%B7%A5%E4%BF%A1%E9%83%A8/"/>
    
  </entry>
  
  <entry>
    <title>“DeepSeek拟融500亿、月之暗面估值破200亿美元：中国AI大模型“诸神之战”全面爆发”</title>
    <link href="https://blog.lhliang.com/p/56fb6b34.html"/>
    <id>https://blog.lhliang.com/p/56fb6b34.html</id>
    <published>2026-05-08T22:30:00.000Z</published>
    <updated>2026-05-08T14:33:09.850Z</updated>
    
    <content type="html"><![CDATA[<p>2026年5月，中国AI大模型赛道两枚重磅炸弹同时引爆：DeepSeek首轮融资目标直指500亿元人民币，投后估值有望突破3500亿元；月之暗面（Kimi）则以20亿美元D轮融资刷新纪录，投后估值超200亿美元。两大事件叠加，标志着中国大模型竞争正式进入“诸神之战”阶段。</p><p>1、DeepSeek：从“不差钱”到“主动融资”</p><p>DeepSeek此前是中国大模型圈最独特的存在——创始人梁文锋凭借量化交易收入自掏腰包，婉拒了无数投资人。然而2026年的局势让他不得不改变策略。</p><p>首先是人才保卫战。字节、小米等大厂以数倍薪资挖角DeepSeek核心研究员，没有股权激励机制的DeepSeek留人日益困难。融资成为建立员工期权池、稳定军心的必经之路。</p><p>其次是生态壁垒构建。DeepSeek正在深度适配华为昇腾芯片，打造“模型+芯片”的国产AI基础设施闭环。这条路径所需资金规模远超个人出资能力。</p><p>本轮融资的核心数据令人咋舌：目标500亿元人民币，由国家集成电路产业投资基金（大基金）洽谈领投，腾讯、阿里巴巴等互联网巨头参与跟投。创始人梁文锋本人也将出资至最高允许额度，以保持控制权。若完成，这将是<strong>中国AI公司历史上最大单笔融资</strong>。</p><p>技术层面，DeepSeek V4与Kimi K2.6包揽全球开源模型榜单前两名，API价格仅为竞品的1&#x2F;20。黄仁勋在CES上首次以DeepSeek和Kimi作为基准模型展示，标志中国开源模型获得全球认可。</p><p>2、月之暗面：从追赶到领跑的资本跃迁</p><p>月之暗面的融资故事同样精彩。D轮融资20亿美元（约136亿元），由美团龙珠领投，中国移动、CPE源峰参投，累计融资超376亿元，成为中国大模型创业公司中累计融资最多的玩家。</p><p>更值得关注的是其商业表现。Kimi ARR收入从3月初突破1亿美元，到4月已超2亿美元，付费订阅和API调用双轮驱动。技术层面，Kimi K2.6采用1T参数MoE架构，32B激活参数，多项基准测试持平甚至超越GPT-5.4和Claude Opus 4.6，夺回开源模型全球第一宝座。</p><p>半年内估值从50亿美元飙升至200亿美元，翻4倍有余，资本市场的热情可见一斑。</p><p>3、“AI六小虎”分化加速</p><p>融资潮的背后，中国大模型公司正加速分化：</p><ul><li><strong>DeepSeek、Kimi</strong>：走技术基础设施路线，开源生态+API变现，占据独立发展空间</li><li><strong>智谱AI</strong>：深耕政企B端，MaaS ARR达17亿，但亏损近50亿，港股上市后承压</li><li><strong>MiniMax</strong>：C端全球化，C端收入占比超70%，已登陆港交所</li><li><strong>百川智能</strong>：转型AI医疗垂直赛道，退出通用竞赛</li><li><strong>零一万物</strong>：业务大幅收缩，转向轻量化定制</li></ul><p>竞争格局已形成三层结构：第一层是字节（豆包）和阿里（千问），凭借流量和云生态占据通用AI入口；第二层是DeepSeek和Kimi，作为技术基础设施供应商独立发展；第三层是其余参与者，转向垂直应用层求生。</p><p>4、数据背后的全球格局</p><p>2026年Q1，中国大模型全球周调用量达12.96万亿Token，为美国的4.3倍。全球API调用中，中国开源大模型周Token占比超60%。Artificial Analysis榜单全球前五开源模型全部为中国模型。</p><p>这些数字说明一个事实：中国大模型在应用层面已形成压倒性优势，但基础研究和底层芯片仍是短板。这也是大基金领投DeepSeek的战略意义所在——通过资本力量补齐算力和芯片层的关键缺口。</p><p>5、从“谁更聪明”到“谁更有用”</p><p>当前竞争焦点已悄然转移。纯粹比拼benchmark的时代正在过去，真正的较量在于谁能把技术转化为持续的商业价值。</p><p>DeepSeek计划6月推出V4.1版本，新增MCP协议适配、图像和音频理解能力，剑指企业服务市场。Kimi则凭借K2.6的Agent能力实现“连续编码13小时、自主运行5天”，在生产力工具赛道抢占先机。</p><p>与此同时，大厂持续加码——阿里3800亿、字节1600亿资本支出——独立AI公司的生存空间受到挤压。行业并购整合或将成为大概率事件。</p><p>资本潮水退去后，真正能站住脚的，不是融资最多的，而是技术创新与商业落地双轮驱动的玩家。2026年，是中国大模型从“技术突破”迈向“规模商业化”的关键转折年，这场诸神之战的结局，将在未来12个月内见分晓。</p><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://finance.sina.com.cn/stock/bxjj/2026-05-08/doc-inhxfamz4260086.shtml">估值狂飙！DeepSeek拟融资500亿，国产AI掀凶猛融资潮</a></li><li><a href="https://news.qq.com/rain/a/20260507A055G300">月之暗面刚拿140亿，DeepSeek估值3000亿，中国AI大模型进入“诸神之战”</a></li><li><a href="https://www.eet-china.com/mp/a493204.html">136亿元融资！月之暗面创下中国大模型领域单笔融资最高纪录</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;2026年5月，中国AI大模型赛道两枚重磅炸弹同时引爆：DeepSeek首轮融资目标直指500亿元人民币，投后估值有望突破3500亿元；月之暗面（Kimi）则以20亿美元D轮融资刷新纪录，投后估值超200亿美元。两大事件叠加，标志着中国大模型竞争正式进入“诸神之战”阶段。&lt;</summary>
      
    
    
    
    <category term="AI与科技" scheme="https://blog.lhliang.com/categories/AI%E4%B8%8E%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="大模型" scheme="https://blog.lhliang.com/tags/%E5%A4%A7%E6%A8%A1%E5%9E%8B/"/>
    
    <category term="DeepSeek" scheme="https://blog.lhliang.com/tags/DeepSeek/"/>
    
    <category term="月之暗面" scheme="https://blog.lhliang.com/tags/%E6%9C%88%E4%B9%8B%E6%9A%97%E9%9D%A2/"/>
    
  </entry>
  
  <entry>
    <title>“AMD一夜暴涨20%：AI算力双寡头格局正式确立”</title>
    <link href="https://blog.lhliang.com/p/d6fe9d61.html"/>
    <id>https://blog.lhliang.com/p/d6fe9d61.html</id>
    <published>2026-05-07T22:30:00.000Z</published>
    <updated>2026-05-08T02:55:21.034Z</updated>
    
    <content type="html"><![CDATA[<p>2026年5月7日，全球半导体板块迎来了今年最疯狂的一天——AMD股价盘前暴涨近20%，带动A股海光信息20%涨停、寒武纪涨超11%，亚太芯片股全线跟涨。这场风暴的源头，是AMD在5月6日发布的2026年Q1财报。</p><p>但如果你只看到了“财报超预期”四个字，就错过了今年AI产业最重要的信号：<strong>AI算力的寡头格局，正在从英伟达独大变为英伟达与AMD的双雄对决。</strong></p><h2 id="1、一份财报，三个超预期"><a href="#1、一份财报，三个超预期" class="headerlink" title="1、一份财报，三个超预期"></a>1、一份财报，三个超预期</h2><p>先看核心数据。AMD Q1销售额103亿美元，同比增长38%，高于分析师预期的98.9亿美元；调整后每股收益1.37美元，同样超过预期的1.29美元。其中数据中心业务收入58亿美元，同比大涨57%。</p><p>这组数字本身就够亮眼了，但真正让华尔街兴奋的是Q2指引——AMD预计Q2营收约112亿美元，比分析师一致预期的105亿美元高出约7%。</p><p>如果只是“业绩好”，不足以支撑近20%的涨幅。真正的催化剂藏在三个超预期里：</p><p><strong>超预期一：顶级客户订单落地。</strong> OpenAI与Meta已敲定采购订单，购买AMD首款面向AI数据中心的整机机架级系统Helios（太阳神）。这意味着AMD不再只是“英伟达的替代选项”，而是正式成为全球顶级AI基础设施建设的核心供应商。</p><p><strong>超预期二：长期预测大幅上调。</strong> CEO苏姿丰将数据中心市场的年增长率预测从此前的18%上调至超过35%，几乎翻倍。她甚至提出“未来几年年增长率突破80%”的目标，并预计2030年数据中心市场规模将超过1200亿美元。</p><p><strong>超预期三：CPU价值重估。</strong> 苏姿丰明确表示，第二季度服务器CPU营收同比增长将超70%。AMD与英特尔联手打造的x86“AI计算扩展”新指令集，可将算力密度提升16倍，CPU在AI推理中的战略价值正在被重新确认。</p><h2 id="2、AMD凭什么拿到OpenAI和Meta的订单？"><a href="#2、AMD凭什么拿到OpenAI和Meta的订单？" class="headerlink" title="2、AMD凭什么拿到OpenAI和Meta的订单？"></a>2、AMD凭什么拿到OpenAI和Meta的订单？</h2><p>在过去两年里，全球AI训练和推理几乎被英伟达的CUDA生态牢牢锁死。AMD的ROCm软件栈虽然在持续追赶，但在开发者的心智中始终是“第二选择”。那么，是什么改变了局面？</p><p>答案是<strong>AI产业的焦虑感</strong>。</p><p>2026年，全球四大科技巨头的AI基础设施总投入达到7250亿美元，同比增长77%。这个数字背后是一个残酷的现实：所有大厂都在同时推进模型训练、推理部署和应用落地，但英伟达的产能和定价让它们不得不寻找备选方案。</p><p>Meta已经公开披露与AMD达成多年合作协议，将部署最高6吉瓦算力的AMD AI专用GPU，并建立了深度联合研发机制。OpenAI的订单则更具象征意义——作为英伟达最大的客户之一，OpenAI选择引入AMD，本质上是在用真金白银为“供应链多元化”投票。</p><p><strong>当一个行业过度依赖单一供应商时，最大的客户往往是第一个寻找替代方案的人。</strong> 这不是技术问题，这是供应链安全的必然选择。</p><h2 id="3、7250亿美元的算力黑洞，正在重塑整个产业链"><a href="#3、7250亿美元的算力黑洞，正在重塑整个产业链" class="headerlink" title="3、7250亿美元的算力黑洞，正在重塑整个产业链"></a>3、7250亿美元的算力黑洞，正在重塑整个产业链</h2><p>AMD的崛起并非孤立事件。将视线拉远，你会发现2026年5月初这一周，AI产业释放了密集的战略信号：</p><p><strong>OpenAI免费开放GPT-5.5。</strong> 5月6日，OpenAI宣布GPT-5.5 Instant上线，取代GPT-5.3 Instant成为ChatGPT默认模型，面向所有免费用户开放。幻觉率下降52.5%，AIME数学测试提升至81.2分。更重要的是，OpenAI将最强模型免费化的策略，暴露了一个深层焦虑——在用户规模上，它已经落后于Anthropic（31.4% vs 29%的市场份额）。</p><p><strong>DeepSeek首轮融资或达450亿美元。</strong> 据媒体报道，国家大基金正与DeepSeek洽谈主导其首轮融资，投后估值约450亿美元。同时参与谈判的还有互联网巨头和其他国资基金。一个未进行过外部融资的AI公司，首轮即达到此估值量级，在中国科技史上前所未有。</p><p><strong>英伟达5亿美元绑定康宁。</strong> 英伟达斥资5亿美元与康宁达成多年合作协议，目标是将AI光通信产能提升10倍。这是在为下一代算力基础设施铺设管道。</p><p>把这些事件串联起来，一条清晰的逻辑线浮出水面：<strong>AI产业正在经历从“模型竞赛”到“基础设施竞赛”的全面转向。</strong> 模型的能力差距在快速收窄（GPT-5.5免费就是证据），但算力基础设施的壁垒正在被急剧加高。全球能支撑数百亿美元级算力投入的玩家，不超过五家。</p><h2 id="4、警惕：半导体狂欢背后的泡沫信号"><a href="#4、警惕：半导体狂欢背后的泡沫信号" class="headerlink" title="4、警惕：半导体狂欢背后的泡沫信号"></a>4、警惕：半导体狂欢背后的泡沫信号</h2><p>在为AMD喝彩的同时，有几个风险信号值得关注。</p><p>费城半导体指数在最近25天的滚动涨幅已超过50%，创下2000年3月以来的最强表现。《大空头》原型迈克尔·伯里已经买入半导体ETF的看跌期权。摩根大通前首席策略师等人也发出警告：芯片股已经严重超涨。</p><p>更深层的问题在于：<strong>谁来消化这些算力？</strong></p><p>2026年Q1，全球大语言模型用户总数突破38亿，季度总收入约207亿美元，行业月人均使用时长173.3分钟。这些数字看起来很美，但AI产业的盈利模式仍不清晰。OpenAI将最强模型免费化，Anthropic和Google紧随其后——当所有人都在争夺用户规模时，“烧钱换增长”的剧本在互联网泡沫时期我们已经看过。</p><p>正如一位业内人士所说：“不能证明自己能挣钱的技术，将在泡沫破灭时最早出局。”</p><h2 id="5、对中国AI产业意味着什么"><a href="#5、对中国AI产业意味着什么" class="headerlink" title="5、对中国AI产业意味着什么"></a>5、对中国AI产业意味着什么</h2><p>AMD的崛起、DeepSeek的天价融资、英伟达的产业链绑定——这三件事同时发生，对中国AI产业既是机遇也是挑战。</p><p>机遇在于：<strong>算力供应商的多元化，意味着中国AI企业有了更多选择空间。</strong> AMD+Meta+OpenAI的组合证明，英伟达的垄断正在被打破，这对受制于芯片禁令的中国AI公司而言是一个积极信号。</p><p>挑战在于：<strong>算力军备竞赛的门槛正在被推到不可企及的高度。</strong> 7250亿美元的年投入规模，意味着只有国家资本和顶级巨头才能参与游戏。DeepSeek获得国家大基金支持，恰恰说明中国也在走“集中力量办大事”的路线。</p><p>AMD一夜暴涨20%的故事，最终讲的不只是财报超预期——它讲的是AI产业进入了一个新阶段：<strong>技术竞赛让位于生态竞争，模型参数让位于算力资本，单打独斗让位于产业链联盟。</strong> 在这个新阶段里，赢家不是跑得最快的，而是活得最久的。</p><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://www.eet-china.com/news/202605078479.html">AMD股价暴涨近20%带动美股半导体板块全线飙涨</a></li><li><a href="https://news.qq.com/rain/a/20260507A01REZ00">GPT-5.5免费·马斯克庭审·7250亿算力黑洞·豆包月费68元：AI下半场</a></li><li><a href="https://finance.sina.com.cn/headline/2026-05-07/doc-inhwzmmn7847943.shtml">今日国际国内财经新闻精华摘要｜2026年5月7日</a></li><li><a href="https://www.esmchina.com/news/14156.html">豪掷5亿美元、换产能提升10倍！英伟达“绑定”康宁扩张AI光通信</a></li><li><a href="https://www.21ic.com/a/1004032.html">AMD公布2026年第一季度财报</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;2026年5月7日，全球半导体板块迎来了今年最疯狂的一天——AMD股价盘前暴涨近20%，带动A股海光信息20%涨停、寒武纪涨超11%，亚太芯片股全线跟涨。这场风暴的源头，是AMD在5月6日发布的2026年Q1财报。&lt;/p&gt;
&lt;p&gt;但如果你只看到了“财报超预期”四个字，就错过</summary>
      
    
    
    
    <category term="AI与科技" scheme="https://blog.lhliang.com/categories/AI%E4%B8%8E%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="GPU" scheme="https://blog.lhliang.com/tags/GPU/"/>
    
    <category term="AMD" scheme="https://blog.lhliang.com/tags/AMD/"/>
    
    <category term="半导体" scheme="https://blog.lhliang.com/tags/%E5%8D%8A%E5%AF%BC%E4%BD%93/"/>
    
  </entry>
  
  <entry>
    <title>「特斯拉为什么是路上最安全的电车？数据说话了」</title>
    <link href="https://blog.lhliang.com/p/695b3e16.html"/>
    <id>https://blog.lhliang.com/p/695b3e16.html</id>
    <published>2026-05-07T05:00:00.000Z</published>
    <updated>2026-05-08T02:55:46.093Z</updated>
    
    <content type="html"><![CDATA[<p>电动汽车普及的今天，安全问题始终是消费者最关心的议题之一。在众多品牌中，特斯拉的安全表现一直备受关注——有人认为它是「公路坦克」，也有人质疑电动车的安全性。事实究竟如何？让我们用数据说话。</p><h2 id="一、用数据说话：Autopilot-让事故率大幅下降"><a href="#一、用数据说话：Autopilot-让事故率大幅下降" class="headerlink" title="一、用数据说话：Autopilot 让事故率大幅下降"></a>一、用数据说话：Autopilot 让事故率大幅下降</h2><p>特斯拉每季度发布的安全报告，是目前最透明的电动车安全数据来源。</p><p>2025年最新数据显示：</p><ul><li><strong>使用 Autopilot 时</strong>：平均每行驶 <strong>636-669 万英里</strong>（约 1000-1076 万公里）才发生一次事故</li><li><strong>美国平均水平</strong>：平均每行驶 <strong>70.2 万英里</strong>就发生一次交通事故</li><li><strong>结论</strong>：开启 Autopilot 的特斯拉车辆，事故率仅为美国平均水平的 <strong>1&#x2F;9</strong></li></ul><p>这是什么概念？如果按每天开车 50 公里计算，美国平均水平大约每 40 年出一次事故，而特斯拉 Autopilot 状态下，大约每 <strong>560 年</strong>才出一次事故。</p><p>当然，这并不意味着可以完全放手——特斯拉一直强调「监督式自动驾驶」，驾驶员仍需保持注意力。但数据清晰地表明，Autopilot 在降低事故风险方面效果显著。</p><h2 id="二、全球权威认证：碰撞测试五星通过"><a href="#二、全球权威认证：碰撞测试五星通过" class="headerlink" title="二、全球权威认证：碰撞测试五星通过"></a>二、全球权威认证：碰撞测试五星通过</h2><p>数据之外，特斯拉在碰撞测试中的表现同样亮眼。</p><h3 id="Euro-NCAP-2025-年度冠军"><a href="#Euro-NCAP-2025-年度冠军" class="headerlink" title="Euro NCAP 2025 年度冠军"></a>Euro NCAP 2025 年度冠军</h3><p>2025 年，欧洲新车安全评鉴协会（Euro NCAP）对 20 款新车进行了严苛测试，其中 14 款获得最高五星评级。<strong>特斯拉 Model 3 以 359 分夺冠</strong>，成为 2025 年度最安全车型。</p><p>Euro NCAP 的测试涵盖四个维度：</p><table><thead><tr><th>测试维度</th><th>满分</th><th>Model 3 得分</th></tr></thead><tbody><tr><td>成人乘员保护</td><td>40 分</td><td>38.5 分</td></tr><tr><td>儿童乘员保护</td><td>20 分</td><td>18.5 分</td></tr><tr><td>行人保护</td><td>20 分</td><td>16.5 分</td></tr><tr><td>安全辅助系统</td><td>20 分</td><td>19.5 分</td></tr></tbody></table><h3 id="中保研测评全优通过"><a href="#中保研测评全优通过" class="headerlink" title="中保研测评全优通过"></a>中保研测评全优通过</h3><p>2025 年，中保研（C-IASI）对特斯拉 Model 3 后轮驱动版进行了全面测评。在所有安全相关测试中，包括：</p><ul><li>驾驶员侧正面 25% 偏置碰撞</li><li>乘员侧正面 25% 偏置碰撞</li><li>侧面碰撞</li><li>车顶强度（双侧加载）</li><li>车辆辅助安全指数</li><li>车内乘员安全指数</li><li>车外行人安全指数</li></ul><p><strong>Model 3 全部获得优秀（G）评价</strong>，没有一项出现良好或较差的成绩。</p><h3 id="NHTSA-五星安全评级"><a href="#NHTSA-五星安全评级" class="headerlink" title="NHTSA 五星安全评级"></a>NHTSA 五星安全评级</h3><p>美国国家公路交通安全管理局（NHTSA）给予特斯拉全系车型最高五星安全评级。这是美国最权威的碰撞测试机构，其测试标准以严苛著称。</p><h2 id="三、电池安全：三层防护设计"><a href="#三、电池安全：三层防护设计" class="headerlink" title="三、电池安全：三层防护设计"></a>三、电池安全：三层防护设计</h2><p>作为纯电动车，电池安全是核心议题。特斯拉在电池包设计上采用了多层防护策略：</p><h3 id="第一层：物理防护"><a href="#第一层：物理防护" class="headerlink" title="第一层：物理防护"></a>第一层：物理防护</h3><p>电池包位于底盘中央最低位置，被多层层铝合金和钛合金护板包裹。即便发生高速碰撞，这层「铠甲」也能有效阻挡尖锐物体直接刺穿电池模组。</p><h3 id="第二层：热管理隔离"><a href="#第二层：热管理隔离" class="headerlink" title="第二层：热管理隔离"></a>第二层：热管理隔离</h3><p>特斯拉的液冷温控系统实时监控每个电池模组的温度。当某个区域温度异常时，系统会迅速调整冷却液流向，防止热失控扩散。</p><h3 id="第三层：智能熔断机制"><a href="#第三层：智能熔断机制" class="headerlink" title="第三层：智能熔断机制"></a>第三层：智能熔断机制</h3><p>每个电池单元都内置保险丝。当单体电池出现短路时，保险丝会在毫秒级时间内熔断，切断故障单元与整体电路的连接，防止连锁反应。</p><p>这三层设计在实际事故中多次验证了其有效性。即便发生严重碰撞，特斯拉也很少出现像某些品牌那样的电池起火蔓延情况。</p><h2 id="四、主动安全：特斯拉的「眼睛」和「大脑」"><a href="#四、主动安全：特斯拉的「眼睛」和「大脑」" class="headerlink" title="四、主动安全：特斯拉的「眼睛」和「大脑」"></a>四、主动安全：特斯拉的「眼睛」和「大脑」</h2><p>被动安全决定了事故发生后的生存空间，而主动安全则致力于<strong>预防事故发生</strong>。</p><p>特斯拉车辆标配 8 个摄像头、12 个超声波传感器和 1 个前向毫米波雷达，构成了 360 度无死角的感知网络。这些传感器每秒处理数千次环境扫描，比人类驾驶员的反应速度快得多。</p><p>Autopilot 的核心能力包括：</p><ul><li><strong>前撞预警</strong>：检测前车距离和相对速度，提前发出警报</li><li><strong>自动紧急制动（AEB）</strong>：在驾驶员未响应时自动刹车</li><li><strong>车道偏离修正</strong>：当车辆偏离车道时自动微调方向</li><li><strong>盲点监测</strong>：变道时提醒侧后方来车</li><li><strong>障碍物感知</strong>：识别行人、自行车、锥桶等各类物体</li></ul><p>这些功能如今已成为行业标配，但特斯拉是最早将其大规模量产落地的厂商。</p><h2 id="五、结构安全：设计理念的领先"><a href="#五、结构安全：设计理念的领先" class="headerlink" title="五、结构安全：设计理念的领先"></a>五、结构安全：设计理念的领先</h2><p>特斯拉作为纯电动平台，在车身结构设计上比传统燃油车有更大的自由度。</p><h3 id="低重心优势"><a href="#低重心优势" class="headerlink" title="低重心优势"></a>低重心优势</h3><p>电池组平铺在底盘下方，使得特斯拉拥有超低的车辆重心。以 Model 3 为例，其重心高度仅为 540mm，远低于同级别燃油车。这带来的直接好处是：<strong>过弯时侧翻的概率大幅降低</strong>。</p><h3 id="传力路径优化"><a href="#传力路径优化" class="headerlink" title="传力路径优化"></a>传力路径优化</h3><p>传统燃油车需要为发动机、变速箱预留空间，碰撞传力路径必须绕开这些部件。特斯拉没有这些包袱，可以将前舱设计为纯平的溃缩区，碰撞能量可以更高效地被吸收。</p><h3 id="车身刚性"><a href="#车身刚性" class="headerlink" title="车身刚性"></a>车身刚性</h3><p>Model 3 采用铝钢混合车身，关键部位使用超高强度钢，在减轻重量的同时保证了车身刚性。在侧面碰撞测试中，Model 3 的表现优于大多数同尺寸车型。</p><h2 id="六、写在最后"><a href="#六、写在最后" class="headerlink" title="六、写在最后"></a>六、写在最后</h2><p>评价一辆车的安全性，不能靠感觉，必须靠数据。</p><p>特斯拉通过大规模真实行驶数据、全球权威机构认证、以及扎实的被动&#x2F;主动安全设计，证明了它在电动车安全领域的领先地位。</p><p>当然，再安全的车也无法保证绝对零事故。道路安全是一个系统工程，需要驾驶员、车辆、道路环境三方共同努力。但至少，在选择车辆时，特斯拉的安全性是一个值得认真考虑的因素。</p><hr><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li>IT之家：「特斯拉发布 2025 年 Q2 安全报告」</li><li>搜狐汽车：「特斯拉 Model 3 碰撞安全结构设计解析」</li><li>什么值得买：「特斯拉电池耐撞密码：材料、结构与智能的三重硬核科技」</li><li>Euro NCAP 2025 年度评测报告</li><li>中保研（C-IASI）2025 年 Model 3 测评结果</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;电动汽车普及的今天，安全问题始终是消费者最关心的议题之一。在众多品牌中，特斯拉的安全表现一直备受关注——有人认为它是「公路坦克」，也有人质疑电动车的安全性。事实究竟如何？让我们用数据说话。&lt;/p&gt;
&lt;h2 id=&quot;一、用数据说话：Autopilot-让事故率大幅下降&quot;&gt;&lt;a</summary>
      
    
    
    
    <category term="科技观察" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80%E8%A7%82%E5%AF%9F/"/>
    
    
    <category term="电车安全" scheme="https://blog.lhliang.com/tags/%E7%94%B5%E8%BD%A6%E5%AE%89%E5%85%A8/"/>
    
    <category term="特斯拉" scheme="https://blog.lhliang.com/tags/%E7%89%B9%E6%96%AF%E6%8B%89/"/>
    
    <category term="自动驾驶" scheme="https://blog.lhliang.com/tags/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/"/>
    
  </entry>
  
  <entry>
    <title>“企业AI工具数据安全指南：你的数据到底去了哪里？”</title>
    <link href="https://blog.lhliang.com/p/1fb3c70a.html"/>
    <id>https://blog.lhliang.com/p/1fb3c70a.html</id>
    <published>2026-05-07T04:50:00.000Z</published>
    <updated>2026-05-07T04:58:49.292Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1、引言"><a href="#1、引言" class="headerlink" title="1、引言"></a>1、引言</h2><p>2026年，AI工具已经成为企业办公的「基础设施」。从代码编写到文档分析，从客服自动化到数据分析，大模型正在深刻改变企业的工作方式。</p><p>但一个根本性问题始终萦绕在企业决策者心头：<strong>我把数据交给AI工具，这些数据最终去了哪里？</strong></p><p>国家安全部2026年初的警示案例已经说明：员工无意中向AI工具投喂敏感数据，导致数据泄漏的事件正在全球范围内频繁发生。</p><p>本文将深入分析企业常用的AI工具的数据安全特性，重点对比：</p><blockquote><p>OpenAI官方API、OpenAI兼容API网关、本地部署的OpenClaw（龙虾）、以及云上版本的OpenClaw——这四类方案的数据安全差异，以及企业如何根据自身安全等级选择合适的方案。</p></blockquote><h2 id="2、企业AI工具的数据安全风险图谱"><a href="#2、企业AI工具的数据安全风险图谱" class="headerlink" title="2、企业AI工具的数据安全风险图谱"></a>2、企业AI工具的数据安全风险图谱</h2><h3 id="2-1-数据流向是核心问题"><a href="#2-1-数据流向是核心问题" class="headerlink" title="2.1 数据流向是核心问题"></a>2.1 数据流向是核心问题</h3><p>在讨论具体工具之前，需要先理解一个基本概念：<strong>你的数据去了哪里，取决于你使用的AI工具类型和服务部署方式</strong>。</p><p>大模型的数据安全风险主要来自三个维度：</p><p><strong>数据存储风险</strong>：请求数据是否会被服务商存储？存储在哪里？存储多久？</p><p><strong>数据使用风险</strong>：存储的数据是否会被用于模型训练？是否会被第三方访问？</p><p><strong>数据传输风险</strong>：数据在传输过程中是否加密？是否经过第三方服务器？</p><h3 id="2-2-四类主流AI工具的数据安全对比"><a href="#2-2-四类主流AI工具的数据安全对比" class="headerlink" title="2.2 四类主流AI工具的数据安全对比"></a>2.2 四类主流AI工具的数据安全对比</h3><p>根据数据流向和安全等级，企业常用的AI工具可以分为四个象限：</p><table><thead><tr><th>方案类型</th><th>数据流向</th><th>安全等级</th><th>适用场景</th></tr></thead><tbody><tr><td>OpenAI官方API</td><td>数据出境</td><td>低</td><td>通用场景，需严格脱敏</td></tr><tr><td>OpenAI兼容API（国内）</td><td>数据留在国内</td><td>中</td><td>国内企业，敏感数据需审批</td></tr><tr><td>OpenClaw本地部署</td><td>数据不出企业</td><td>高</td><td>金融、政务、高敏感行业</td></tr><tr><td>OpenClaw云上版本</td><td>取决于部署位置</td><td>中-高</td><td>需看具体云服务商</td></tr></tbody></table><h2 id="3、OpenAI官方API：数据出境的核心风险"><a href="#3、OpenAI官方API：数据出境的核心风险" class="headerlink" title="3、OpenAI官方API：数据出境的核心风险"></a>3、OpenAI官方API：数据出境的核心风险</h2><h3 id="3-1-工作原理"><a href="#3-1-工作原理" class="headerlink" title="3.1 工作原理"></a>3.1 工作原理</h3><p>OpenAI官方API是目前最成熟的AI开发接口，全球数百万开发者都在使用。其数据流向如下：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">企业 → OpenAI服务器（美国） → 返回结果</span><br></pre></td></tr></table></figure><h3 id="3-2-数据安全风险"><a href="#3-2-数据安全风险" class="headerlink" title="3.2 数据安全风险"></a>3.2 数据安全风险</h3><p>使用OpenAI官方API，数据会直接发送到OpenAI的服务器。根据OpenAI的服务条款：</p><p><strong>存储风险</strong>：请求数据可能被存储在OpenAI服务器上，用于改善服务质量和模型训练（可通过设置<code>ad hoc</code>参数申请不用于训练，但并非绝对保证）。</p><p><strong>合规风险</strong>：数据出境需要通过数据出境安全评估，国内企业和机构使用OpenAI官方API存在合规风险。</p><p><strong>访问风险</strong>：在极端情况下（如法律要求），数据可能被政府或第三方访问。</p><h3 id="3-3-企业使用建议"><a href="#3-3-企业使用建议" class="headerlink" title="3.3 企业使用建议"></a>3.3 企业使用建议</h3><p>如果企业必须使用OpenAI官方API，建议：</p><ol><li><strong>严格数据脱敏</strong>：任何上传到OpenAI的数据必须经过脱敏处理，移除个人身份信息、商业机密、国家秘密等敏感内容</li><li><strong>申请数据隔离</strong>：开启企业账户的数据隔离选项，减少数据被用于训练的风险</li><li><strong>审计日志</strong>：建立完整的API调用日志，便于追溯数据流向</li><li><strong>评估合规风险</strong>：咨询法务部门，评估数据出境的合规风险</li></ol><h2 id="4、OpenAI兼容API：数据留在国内"><a href="#4、OpenAI兼容API：数据留在国内" class="headerlink" title="4、OpenAI兼容API：数据留在国内"></a>4、OpenAI兼容API：数据留在国内</h2><h3 id="4-1-工作原理"><a href="#4-1-工作原理" class="headerlink" title="4.1 工作原理"></a>4.1 工作原理</h3><p>OpenAI兼容API是指国内服务商提供的、接口格式与OpenAI兼容的大模型API服务。典型代表包括：</p><ul><li><strong>阿里云百炼</strong>：通义千问系列模型</li><li><strong>硅基流动（SiliconFlow）</strong>：聚合多个国内模型</li><li><strong>百度智能云</strong>：文心一言系列</li><li><strong>智谱AI</strong>：GLM系列</li></ul><p>数据流向为：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">企业 → 国内云服务商服务器 → 返回结果</span><br></pre></td></tr></table></figure><h3 id="4-2-数据安全优势"><a href="#4-2-数据安全优势" class="headerlink" title="4.2 数据安全优势"></a>4.2 数据安全优势</h3><p>相比OpenAI官方API，国内兼容API有几大安全优势：</p><p><strong>数据不出境</strong>：数据存储在国内服务器，不存在数据出境合规问题</p><p><strong>合规更清晰</strong>：国内云服务商通常有完整的合规资质和安全保障</p><p><strong>服务响应快</strong>：国内服务器延迟更低，响应速度更快</p><h3 id="4-3-仍需注意的风险"><a href="#4-3-仍需注意的风险" class="headerlink" title="4.3 仍需注意的风险"></a>4.3 仍需注意的风险</h3><p>虽然数据不出境，但使用国内兼容API仍需注意：</p><p><strong>服务商访问风险</strong>：云服务商在技术上可以访问存储在其服务器上的数据</p><p><strong>训练使用风险</strong>：部分服务商可能将数据用于模型优化，需确认服务条款</p><p><strong>敏感数据审批</strong>：金融、政务、医疗等行业的高敏感数据使用仍需内部审批</p><h3 id="4-4-企业使用建议"><a href="#4-4-企业使用建议" class="headerlink" title="4.4 企业使用建议"></a>4.4 企业使用建议</h3><ol><li><strong>选择有保障的服务商</strong>：优先选择有数据安全认证（如ISO27001、等保认证）的服务商</li><li><strong>确认数据使用条款</strong>：在使用前确认服务商不会将数据用于模型训练</li><li><strong>开启私有部署选项</strong>：如阿里云百炼支持私有模型部署，数据完全隔离</li><li><strong>建立调用审批流程</strong>：对涉及敏感数据的API调用建立审批机制</li></ol><h2 id="5、OpenClaw本地部署：数据不出的终极方案"><a href="#5、OpenClaw本地部署：数据不出的终极方案" class="headerlink" title="5、OpenClaw本地部署：数据不出的终极方案"></a>5、OpenClaw本地部署：数据不出的终极方案</h2><h3 id="5-1-什么是OpenClaw（龙虾）"><a href="#5-1-什么是OpenClaw（龙虾）" class="headerlink" title="5.1 什么是OpenClaw（龙虾）"></a>5.1 什么是OpenClaw（龙虾）</h3><p>OpenClaw，中文昵称「小龙虾」，是一个开源、本地优先的AI智能体框架。它为大模型赋予「数字手脚」，支持自然语言驱动的端到端任务执行——操作电脑、处理文件、自动化办公流程等。</p><p><strong>核心特点</strong>：</p><ul><li>完全开源，可在GitHub获取源码</li><li>支持连接通义千问、Claude等主流大模型</li><li>插件生态丰富，支持网页操作、文件管理等</li><li>本地部署，数据完全不离开企业</li></ul><h3 id="5-2-本地部署的数据安全优势"><a href="#5-2-本地部署的数据安全优势" class="headerlink" title="5.2 本地部署的数据安全优势"></a>5.2 本地部署的数据安全优势</h3><p>OpenClaw本地部署是数据安全的终极方案：</p><p><strong>数据完全不离开企业</strong>：所有AI处理都在企业本地服务器完成，没有任何数据外传</p><p><strong>代码可审计</strong>：开源代码可以安全审计，确保没有后门或数据外泄</p><p><strong>完全自主控制</strong>：企业拥有全部基础设施，可以实施任何安全策略</p><p><strong>离线可用</strong>：在网络隔离环境下也能正常工作</p><h3 id="5-3-本地部署的挑战"><a href="#5-3-本地部署的挑战" class="headerlink" title="5.3 本地部署的挑战"></a>5.3 本地部署的挑战</h3><p>当然，本地部署也面临一些挑战：</p><p><strong>部署复杂度</strong>：需要一定的技术能力进行部署和维护</p><p><strong>硬件要求</strong>：运行大模型需要足够的GPU资源</p><p><strong>维护成本</strong>：需要专业团队进行日常运维</p><p><strong>模型能力受限</strong>：本地部署的模型能力取决于硬件配置</p><h3 id="5-4-部署方案选择"><a href="#5-4-部署方案选择" class="headerlink" title="5.4 部署方案选择"></a>5.4 部署方案选择</h3><p>OpenClaw支持多种本地部署方式：</p><table><thead><tr><th>部署方式</th><th>适用场景</th><th>硬件要求</th></tr></thead><tbody><tr><td>Windows WSL2</td><td>个人开发者、轻量使用</td><td>普通PC即可</td></tr><tr><td>私有服务器</td><td>中小企业</td><td>需要GPU服务器</td></tr><tr><td>容器化部署（Docker&#x2F;K8s）</td><td>中大型企业</td><td>K8s集群</td></tr></tbody></table><h3 id="5-5-企业使用建议"><a href="#5-5-企业使用建议" class="headerlink" title="5.5 企业使用建议"></a>5.5 企业使用建议</h3><ol><li><strong>评估安全需求</strong>：首先评估企业数据的敏感等级，确定是否需要本地部署</li><li><strong>准备硬件资源</strong>：根据使用规模准备相应的GPU计算资源</li><li><strong>建立安全规范</strong>：制定OpenClaw使用安全规范，包括可处理的敏感数据范围</li><li><strong>定期安全更新</strong>：保持OpenClaw版本更新，及时修复安全漏洞</li></ol><h2 id="6、OpenClaw云上版本：灵活与安全的平衡"><a href="#6、OpenClaw云上版本：灵活与安全的平衡" class="headerlink" title="6、OpenClaw云上版本：灵活与安全的平衡"></a>6、OpenClaw云上版本：灵活与安全的平衡</h2><h3 id="6-1-云上版本的价值"><a href="#6-1-云上版本的价值" class="headerlink" title="6.1 云上版本的价值"></a>6.1 云上版本的价值</h3><p>OpenClaw云上版本是介于完全本地部署和纯API调用之间的折中方案。</p><p><strong>核心价值</strong>：</p><ul><li>降低部署复杂度，无需自建基础设施</li><li>保持一定程度的灵活性</li><li>可根据需要选择部署位置（公有云&#x2F;私有云&#x2F;混合云）</li></ul><h3 id="6-2-数据安全的关键：部署位置"><a href="#6-2-数据安全的关键：部署位置" class="headerlink" title="6.2 数据安全的关键：部署位置"></a>6.2 数据安全的关键：部署位置</h3><p>OpenClaw云上版本的数据安全取决于具体的部署位置：</p><p><strong>公有云部署</strong>：</p><ul><li>数据存储在云服务商服务器</li><li>优势：弹性扩展、快速部署</li><li>风险：与国内兼容API类似，存在服务商访问风险</li></ul><p><strong>私有云部署</strong>：</p><ul><li>数据存储在企业自己的云环境</li><li>优势：数据可控，满足合规要求</li><li>风险：需要自建私有云环境</li></ul><p><strong>混合云部署</strong>：</p><ul><li>敏感数据本地处理，非敏感数据云端处理</li><li>优势：灵活平衡安全与成本</li><li>挑战：架构复杂度较高</li></ul><h3 id="6-3-选择云服务商的关键考量"><a href="#6-3-选择云服务商的关键考量" class="headerlink" title="6.3 选择云服务商的关键考量"></a>6.3 选择云服务商的关键考量</h3><p>如果选择OpenClaw云上版本，选择云服务商时应关注：</p><ol><li><strong>数据中心位置</strong>：国内数据中心避免数据出境风险</li><li><strong>安全认证</strong>：是否通过等保三级、可信云等认证</li><li><strong>数据隔离</strong>：不同客户的数据是否真正隔离</li><li><strong>合规资质</strong>：是否具备金融、政务等行业准入资质</li></ol><h2 id="7、企业AI数据安全架构设计"><a href="#7、企业AI数据安全架构设计" class="headerlink" title="7、企业AI数据安全架构设计"></a>7、企业AI数据安全架构设计</h2><h3 id="7-1-分级安全策略"><a href="#7-1-分级安全策略" class="headerlink" title="7.1 分级安全策略"></a>7.1 分级安全策略</h3><p>企业应根据数据的敏感等级，设计分层的安全架构：</p><p><strong>第一层：公开数据</strong></p><ul><li>新闻资讯、公开文档等</li><li>可使用任何AI工具，包括OpenAI官方API</li><li>无需特殊审批</li></ul><p><strong>第二层：内部数据</strong></p><ul><li>内部流程文档、一般性业务数据</li><li>建议使用国内兼容API</li><li>需要部门负责人审批</li></ul><p><strong>第三层：敏感数据</strong></p><ul><li>客户信息、财务数据、员工信息</li><li>建议使用OpenClaw本地部署</li><li>需要数据安全部门审批</li></ul><p><strong>第四层：核心机密</strong></p><ul><li>商业机密、核心技术、涉密信息</li><li>禁止使用任何外部AI工具</li><li>仅允许在完全隔离的内网环境中使用私有模型</li></ul><h3 id="7-2-AI网关架构"><a href="#7-2-AI网关架构" class="headerlink" title="7.2 AI网关架构"></a>7.2 AI网关架构</h3><p>对于规模较大的企业，建议部署统一的AI网关：</p><p><strong>功能设计</strong>：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">[企业应用] → [AI网关] → [路由分发]</span><br><span class="line">                      ↓</span><br><span class="line">            ┌─────────┼─────────┐</span><br><span class="line">            ↓         ↓         ↓</span><br><span class="line">      [OpenAI API] [国内API] [OpenClaw]</span><br></pre></td></tr></table></figure><p><strong>核心功能</strong>：</p><ul><li><strong>统一入口</strong>：所有AI调用通过网关接入</li><li><strong>智能路由</strong>：根据数据类型自动选择合适的AI服务</li><li><strong>审计日志</strong>：完整记录所有AI调用和数据流向</li><li><strong>访问控制</strong>：基于角色的AI使用权限管理</li><li><strong>敏感数据检测</strong>：自动识别并拦截敏感数据外传</li></ul><h3 id="7-3-数据安全技术措施"><a href="#7-3-数据安全技术措施" class="headerlink" title="7.3 数据安全技术措施"></a>7.3 数据安全技术措施</h3><p><strong>网络层面</strong>：</p><ul><li>敏感数据外发AI服务时强制走加密通道</li><li>建立AI服务白名单，禁止访问未授权服务</li><li>部署DLP（数据防泄漏）系统监控AI数据流</li></ul><p><strong>应用层面</strong>：</p><ul><li>在应用层实现数据脱敏</li><li>AI调用前自动检测敏感信息</li><li>对AI返回结果进行安全审核</li></ul><p><strong>管理层面</strong>：</p><ul><li>制定AI工具使用规范</li><li>定期安全培训</li><li>建立AI使用审计机制</li></ul><h2 id="8、不同规模企业的方案建议"><a href="#8、不同规模企业的方案建议" class="headerlink" title="8、不同规模企业的方案建议"></a>8、不同规模企业的方案建议</h2><h3 id="8-1-小型企业（50人以下）"><a href="#8-1-小型企业（50人以下）" class="headerlink" title="8.1 小型企业（50人以下）"></a>8.1 小型企业（50人以下）</h3><p><strong>推荐方案</strong>：</p><ul><li>主要使用国内兼容API（如阿里云百炼、硅基流动）</li><li>OpenClaw本地部署作为辅助</li><li>评估后可有限使用OpenAI官方API（仅处理公开数据）</li></ul><p><strong>实施要点</strong>：</p><ul><li>制定简单的AI使用规范</li><li>使用SaaS化的AI网关服务</li><li>定期培训员工数据安全意识</li></ul><h3 id="8-2-中型企业（50-500人）"><a href="#8-2-中型企业（50-500人）" class="headerlink" title="8.2 中型企业（50-500人）"></a>8.2 中型企业（50-500人）</h3><p><strong>推荐方案</strong>：</p><ul><li>建立统一的AI网关平台</li><li>根据数据敏感度分流使用不同AI服务</li><li>核心业务系统使用OpenClaw本地部署</li></ul><p><strong>实施要点</strong>：</p><ul><li>部署专业AI网关软件（如APIPark）</li><li>建立AI使用审批流程</li><li>组建数据安全团队进行日常监控</li></ul><h3 id="8-3-大型企业（500人以上）"><a href="#8-3-大型企业（500人以上）" class="headerlink" title="8.3 大型企业（500人以上）"></a>8.3 大型企业（500人以上）</h3><p><strong>推荐方案</strong>：</p><ul><li>完整的AI安全架构设计</li><li>多层AI服务组合（本地+云+混合）</li><li>自建AI能力平台</li></ul><p><strong>实施要点</strong>：</p><ul><li>建立AI治理委员会</li><li>实施数据分类分级管理</li><li>定期进行AI安全评估和渗透测试</li></ul><h2 id="9、结语"><a href="#9、结语" class="headerlink" title="9、结语"></a>9、结语</h2><p>2026年，AI工具已经成为企业竞争力的关键组成部分。但AI带来效率提升的同时，数据安全风险也在同步放大。</p><p>企业不应该因为担心数据安全而放弃使用AI，但也不应该为了效率而忽视数据安全。<strong>答案在于：根据数据的敏感等级，设计分层的AI使用策略。</strong></p><p>对于大多数国内企业而言：</p><blockquote><p><strong>公开数据用OpenAI，通用场景用国内API，核心业务用OpenClaw本地部署</strong>——这可能是一个务实的AI数据安全策略。</p></blockquote><p>未来，随着AI技术的成熟和企业安全意识的提升，我们期待看到更多、更安全的AI使用方案出现。但在此之前，每一家企业都需要对自己的数据安全负责。</p><hr><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://cloud.tencent.com/developer/article/2654288">OpenClaw 2026 完整教程：从零开始部署你的本地AI智能体 - 腾讯云</a></li><li><a href="https://docs.openclaw.ai/zh-CN">OpenClaw 官方文档</a></li><li><a href="https://developer.aliyun.com/article/1719334">OpenClaw（龙虾AI）部署全解 - 阿里云开发者社区</a></li><li><a href="https://help.aliyun.com/zh/api-gateway/ai-gateway/product-overview/what-is-an-ai-gateway">AI网关产品概述 - 阿里云</a></li><li><a href="https://blog.csdn.net/weixin_35756892/article/details/157964143">企业数据安全：私有化部署大模型API网关 - CSDN</a></li><li><a href="https://blog.huoke.me/posts/local-ai-gateway/">本地API网关：把AI账号转为OpenAI格式接口 - 火客</a></li><li><a href="https://zhuanlan.zhihu.com/p/1951610848700260654">APIPark：5分钟搭建开源AI网关 - 知乎</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;1、引言&quot;&gt;&lt;a href=&quot;#1、引言&quot; class=&quot;headerlink&quot; title=&quot;1、引言&quot;&gt;&lt;/a&gt;1、引言&lt;/h2&gt;&lt;p&gt;2026年，AI工具已经成为企业办公的「基础设施」。从代码编写到文档分析，从客服自动化到数据分析，大模型正在深刻改变企业的工</summary>
      
    
    
    
    <category term="AI观察" scheme="https://blog.lhliang.com/categories/AI%E8%A7%82%E5%AF%9F/"/>
    
    
    <category term="AI安全" scheme="https://blog.lhliang.com/tags/AI%E5%AE%89%E5%85%A8/"/>
    
    <category term="数据安全" scheme="https://blog.lhliang.com/tags/%E6%95%B0%E6%8D%AE%E5%AE%89%E5%85%A8/"/>
    
    <category term="企业级AI" scheme="https://blog.lhliang.com/tags/%E4%BC%81%E4%B8%9A%E7%BA%A7AI/"/>
    
  </entry>
  
  <entry>
    <title>「AI安全深水区」企业大模型数据泄漏的真相与破局之路</title>
    <link href="https://blog.lhliang.com/p/e1dca5d.html"/>
    <id>https://blog.lhliang.com/p/e1dca5d.html</id>
    <published>2026-05-07T00:30:00.000Z</published>
    <updated>2026-05-07T00:46:08.565Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1、引言"><a href="#1、引言" class="headerlink" title="1、引言"></a>1、引言</h2><p>2026年，大模型已从「尝鲜工具」变成企业的「基础设施」。麦肯锡最新调研显示，已有<strong>67%的企业</strong>在日常工作中使用生成式AI，较2025年提升近20个百分点。</p><p>但与此同时，AI带来的安全风险也在同步放大。国家安全部2026年1月公开披露多起案例：企业员工为提升工作效率，将内部代码、客户数据、甚至涉密文件直接投喂给公开大模型，导致敏感数据不可逆地泄漏。</p><p>这不是个别现象。绿盟科技星云实验室统计，<strong>2025年3月至6月，全球爆发多起与大模型相关的重大数据泄漏事件</strong>，涉及模型训练数据、企业源码、内部文档等核心资产。</p><p>本文将从三个维度深入剖析：</p><blockquote><p>企业使用大模型究竟面临哪些数据泄漏风险？现有防护措施是否有效？未来谁最有机会在企业AI安全市场胜出？</p></blockquote><h2 id="2、企业大模型数据泄漏的主要途径"><a href="#2、企业大模型数据泄漏的主要途径" class="headerlink" title="2、企业大模型数据泄漏的主要途径"></a>2、企业大模型数据泄漏的主要途径</h2><h3 id="2-1-员工无意识投喂"><a href="#2-1-员工无意识投喂" class="headerlink" title="2.1 员工无意识投喂"></a>2.1 员工无意识投喂</h3><p>这是目前最普遍、也最难以防范的泄漏途径。</p><p>员工使用ChatGPT、文心一言、通义千问等第三方大模型时，为了提高AI回答质量，往往会在提示词中包含企业内部信息——代码片段、产品设计文档、客户名单、财务报表片段等。这些数据一旦进入大模型，就可能被用于模型训练或存储在服务商的服务器上。</p><p><strong>更危险的是</strong>：大多数员工并不认为自己在「泄露数据」，他们只是在「更好地使用AI」。</p><h3 id="2-2-模型训练数据反推攻击"><a href="#2-2-模型训练数据反推攻击" class="headerlink" title="2.2 模型训练数据反推攻击"></a>2.2 模型训练数据反推攻击</h3><p>即使企业没有直接投喂敏感数据，攻击者也可以通过<strong>提示注入攻击（Prompt Injection）</strong>或<strong>模型反推（Model Inversion）</strong>技术，从公开大模型的输出中还原出训练数据中的敏感信息。</p><p>2025年多起案例显示，通过精心构造的提示词，攻击者成功从多个商业大模型中提取出了训练数据中包含的个人信息、企业内部文档片段，甚至部分源码。</p><h3 id="2-3-企业私有模型的安全边界失控"><a href="#2-3-企业私有模型的安全边界失控" class="headerlink" title="2.3 企业私有模型的安全边界失控"></a>2.3 企业私有模型的安全边界失控</h3><p>越来越多的企业选择部署私有化大模型，以为这样就能一劳永逸地解决数据安全问题。但现实是，<strong>私有化部署带来了新的安全挑战</strong>：</p><ul><li>模型文件本身可能包含训练数据残留（记忆效应）</li><li>推理服务的API接口缺乏细粒度访问控制</li><li>模型更新&#x2F;微调过程中的数据流转缺乏审计</li></ul><h3 id="2-4-向量数据库与RAG-pipeline的数据暴露"><a href="#2-4-向量数据库与RAG-pipeline的数据暴露" class="headerlink" title="2.4 向量数据库与RAG pipeline的数据暴露"></a>2.4 向量数据库与RAG pipeline的数据暴露</h3><p>企业级AI应用普遍采用RAG（检索增强生成）架构，将企业内部知识库向量化后供大模型检索。但向量数据库的安全防护往往被忽视：</p><ul><li>向量数据本身可能包含明文敏感信息</li><li>检索接口的权限控制不完善</li><li>知识库更新过程中的数据同步缺乏加密</li></ul><h2 id="3、现有解决方法和措施"><a href="#3、现有解决方法和措施" class="headerlink" title="3、现有解决方法和措施"></a>3、现有解决方法和措施</h2><p>面对上述风险，业界已形成多层次防护体系。以下是最成熟的几类解决方案。</p><h3 id="3-1-AI-Native-DLP（数据防泄漏）"><a href="#3-1-AI-Native-DLP（数据防泄漏）" class="headerlink" title="3.1 AI-Native DLP（数据防泄漏）"></a>3.1 AI-Native DLP（数据防泄漏）</h3><p>传统DLP主要关注静态数据和网络传输中的数据，但对AI场景的适应性有限。<strong>AI-Native DLP</strong>则是专为大模型使用场景设计的防护方案。</p><p><strong>代表方案：滤海AI-DLP</strong></p><p>采用流式网关架构，在员工使用ChatGPT、文心一言等AI平台前完成实时检测、脱敏与拦截。核心能力包括：</p><table><thead><tr><th>能力维度</th><th>说明</th></tr></thead><tbody><tr><td>多模态识别</td><td>支持文本&#x2F;文件&#x2F;图片中的敏感信息检测</td></tr><tr><td>实时脱敏</td><td>在数据传输过程中动态替换敏感实体</td></tr><tr><td>SASE&#x2F;Zero Trust兼容</td><td>可无缝集成现有企业安全架构</td></tr><tr><td>审计溯源</td><td>完整记录所有AI使用行为</td></tr></tbody></table><h3 id="3-2-LLM安全网关"><a href="#3-2-LLM安全网关" class="headerlink" title="3.2 LLM安全网关"></a>3.2 LLM安全网关</h3><p>LLM安全网关位于企业内部网络与第三方AI服务之间，对所有进出流量进行深度检测和过滤。</p><p><strong>核心功能</strong>：</p><ul><li><strong>输入过滤</strong>：检测并拦截包含敏感数据的提示词</li><li><strong>输出过滤</strong>：检测大模型返回内容是否包含敏感信息</li><li><strong>访问审计</strong>：记录所有对话内容，满足合规要求</li><li><strong>模型路由</strong>：根据数据敏感等级自动选择不同的模型（公开模型vs私有模型）</li></ul><p>腾讯云提出的<strong>MLSecOps</strong>体系中的LLM-WAF（Web应用防火墙）就是这一方向的典型实践，能够有效拦截针对大模型的注入攻击。</p><h3 id="3-3-企业AI使用规范与培训"><a href="#3-3-企业AI使用规范与培训" class="headerlink" title="3.3 企业AI使用规范与培训"></a>3.3 企业AI使用规范与培训</h3><p>技术手段之外，<strong>管理机制</strong>同样关键。</p><p>领先企业已开始建立系统性的AI使用规范：</p><ol><li><strong>分级分类管理</strong>：将企业数据划分为「可投喂」「脱敏后可投喂」「禁止投喂」三个等级</li><li><strong>AI使用审批流程</strong>：高风险场景使用AI需事前审批</li><li><strong>定期安全培训</strong>：让员工理解AI数据泄漏的真实案例和后果</li><li><strong>技术+管理双管齐下</strong>：用技术手段落实管理要求，用管理手段弥补技术盲区</li></ol><h3 id="3-4-私有化部署与模型隔离"><a href="#3-4-私有化部署与模型隔离" class="headerlink" title="3.4 私有化部署与模型隔离"></a>3.4 私有化部署与模型隔离</h3><p>对于数据敏感度极高的场景，<strong>私有化部署</strong>仍是最有效的方案。但需要注意的是，私有化部署不等于绝对安全，仍需配套：</p><ul><li>模型访问的细粒度权限控制</li><li>训练&#x2F;推理数据的全生命周期审计</li><li>模型文件的加密存储与传输</li><li>定期安全评估与渗透测试</li></ul><h3 id="3-5-国家标准与行业规范的引导"><a href="#3-5-国家标准与行业规范的引导" class="headerlink" title="3.5 国家标准与行业规范的引导"></a>3.5 国家标准与行业规范的引导</h3><p>2025年9月，《人工智能安全治理框架》2.0版正式发布，距离1.0版发布仅一年即完成迭代，反映出AI安全形势的快速演变。</p><p>该框架为企业AI安全治理提供了系统性指引，包括风险评估方法、技术防护措施、合规审计要求等，已成为国内企业开展AI安全建设的参考基准。</p><h2 id="4、未来最有机会赢得企业AI安全市场的公司"><a href="#4、未来最有机会赢得企业AI安全市场的公司" class="headerlink" title="4、未来最有机会赢得企业AI安全市场的公司"></a>4、未来最有机会赢得企业AI安全市场的公司</h2><p>企业AI安全是一个高速成长的新兴市场。综合分析技术能力、产品成熟度、市场验证三个维度，以下公司最有机会在这一赛道胜出。</p><h3 id="4-1-国际厂商"><a href="#4-1-国际厂商" class="headerlink" title="4.1 国际厂商"></a>4.1 国际厂商</h3><p><strong>Palo Alto Networks</strong></p><p>Palo Alto Networks正在将AI安全深度融入其现有安全平台体系。其<strong>Strata</strong>和<strong>Cortex</strong>产品线已集成针对大模型使用场景的防护能力，包括LLM流量检测、AI应用行为分析等。</p><p>分析师认为，Palo Alto在企业网络安全市场的深厚积累，使其在企业AI安全市场具备显著的渠道和客户优势。2026年以来，其股价经历短暂调整后再度走强，反映出市场对其AI安全战略认可度的提升。</p><p><strong>CrowdStrike</strong></p><p>CrowdStrike的<strong>Falcon平台</strong>以轻量级agent和云端威胁情报著称。在AI安全方向，其优势在于：</p><ul><li>海量端点数据为其训练AI安全模型提供了独特优势</li><li>实时威胁情报可快速适配新型AI攻击手法</li><li>云端架构天然适合大规模企业部署</li></ul><p><strong>SentinelOne</strong></p><p>SentinelOne在AI驱动的端点安全领域具备技术领先性，其<strong>Purple AI</strong>平台已将安全运营与AI使用场景深度整合，在企业市场的认可度持续提升。</p><h3 id="4-2-国内厂商"><a href="#4-2-国内厂商" class="headerlink" title="4.2 国内厂商"></a>4.2 国内厂商</h3><p><strong>深信服</strong></p><p>深信服以「AI First」为核心战略，将AI技术深度融入安全与云计算全产品线。其优势在于：</p><table><thead><tr><th>优势维度</th><th>说明</th></tr></thead><tbody><tr><td>市场渠道</td><td>在国央企和中小企业市场具备深厚客户基础</td></tr><tr><td>产品整合</td><td>「安全+云」双轮驱动，AI能力贯穿全产品线</td></tr><tr><td>本地化</td><td>对国内合规要求和企业使用习惯的理解最为深入</td></tr><tr><td>服务网络</td><td>覆盖全国的服务交付体系</td></tr></tbody></table><p>2025年国内多个行业头部企业的AI安全建设项目中，深信服均是核心供应商。</p><p><strong>奇安信</strong></p><p>奇安信秉持「用AI驱动安全」理念，从三个方向推进AI战略：</p><ol><li>现有产品全面集成AI功能</li><li>核心产品围绕「AI+」进行创新升级</li><li>建设AI安全运营体系</li></ol><p>奇安信在等保合规、关键信息基础设施保护等高监管要求场景中具备显著优势，这为其拓展企业AI安全市场提供了重要抓手。</p><p><strong>腾讯安全</strong></p><p>依托腾讯云的企业客户基础和AI大模型技术积累，腾讯安全提出的<strong>分层AI安全体系</strong>（MLSecOps全周期管理、合规框架建设、全生命周期技术防护）在金融行业已有多个落地案例。</p><p>其LLM-WAF产品在拦截大模型攻击方面具备实战验证，是少数能提供「云+安全+AI」一体化解决方案的厂商之一。</p><h3 id="4-3-创业公司机会"><a href="#4-3-创业公司机会" class="headerlink" title="4.3 创业公司机会"></a>4.3 创业公司机会</h3><p>除了头部安全厂商，专注AI安全细分领域的创业公司同样值得关注：</p><ul><li><strong>滤海科技</strong>：专注于AI场景下的数据防泄漏，其流式网关架构在国内多个金融行业客户中已完成落地验证</li><li><strong>瑞数信息</strong>：在AI应用动态防护方向具备独特技术积累</li><li><strong>多家专注LLM安全的初创公司</strong>正在快速崛起，有望在细分场景形成突破</li></ul><h2 id="5、结语"><a href="#5、结语" class="headerlink" title="5、结语"></a>5、结语</h2><p>AI大模型给企业带来的不仅是效率提升，更是一次深刻的安全范式转移。传统边界防御思路已无法应对AI时代的新型威胁，企业需要从「被动防御」转向「主动智防」。</p><p>未来3-5年，企业AI安全市场将呈现以下趋势：</p><blockquote><p><strong>第一</strong>，AI-Native安全产品将逐步替代传统安全产品的AI「外挂」功能，成为企业采购的首选。</p></blockquote><blockquote><p><strong>第二</strong>，能够同时提供「安全+合规+AI能力」的综合型厂商将在企业市场获得更大竞争优势。</p><p><strong>第三</strong>，国央企和强监管行业的AI安全建设将率先提速，为安全厂商提供重要的市场切入点。</p></blockquote><p>对于正在推进AI化的企业而言，现在就建立系统性的AI安全治理体系，已不是「可选项」，而是「必选项」。</p><hr><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://cloud.tencent.com.cn/developer/article/2649922">AI Infra安全体系构建：应对大模型时代五大核心风险 - 腾讯云</a></li><li><a href="https://news.cctv.com/2026/01/08/ARTIKs8XgqRKgPChPVwGGtuZ260108.shtml">切勿给AI工具投喂敏感数据 国家安全部披露案例 - 央视新闻</a></li><li><a href="https://www.secrss.com/articles/82291">大模型生态的数据泄露危机：从向量数据库到AI助手的“失控链” - SecRSS</a></li><li><a href="https://www.cac.gov.cn/2025-09/28/c_1760779758683488.htm">人工智能安全治理框架2.0版 - 国家网信办</a></li><li><a href="https://developer.volcengine.com/articles/7566561448370831423">2025年企业AI使用敏感数据泄露防护指南 - 火山引擎</a></li><li><a href="https://zhuanlan.zhihu.com/p/1967315579321967243">如何避免员工办公时泄露敏感数据给第三方AI&#x2F;LLM应用 - 知乎</a></li><li><a href="https://finance.sina.com.cn/roll/2025-11-24/doc-infynvva5064553.shtml">谁在领跑？中国AI安全领域顶尖企业深度盘点 - 新浪财经</a></li><li><a href="https://www.aqniu.net/news/details/2025091321223859">奇安信与深信服的AI战略剖析 - 安全牛</a></li><li><a href="https://news.qq.com/rain/a/20260427A06NQW00">Palo Alto Networks：AI不是威胁是红利 - 腾讯新闻</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;1、引言&quot;&gt;&lt;a href=&quot;#1、引言&quot; class=&quot;headerlink&quot; title=&quot;1、引言&quot;&gt;&lt;/a&gt;1、引言&lt;/h2&gt;&lt;p&gt;2026年，大模型已从「尝鲜工具」变成企业的「基础设施」。麦肯锡最新调研显示，已有&lt;strong&gt;67%的企业&lt;/stron</summary>
      
    
    
    
    <category term="AI观察" scheme="https://blog.lhliang.com/categories/AI%E8%A7%82%E5%AF%9F/"/>
    
    
    <category term="AI安全" scheme="https://blog.lhliang.com/tags/AI%E5%AE%89%E5%85%A8/"/>
    
    <category term="数据安全" scheme="https://blog.lhliang.com/tags/%E6%95%B0%E6%8D%AE%E5%AE%89%E5%85%A8/"/>
    
    <category term="企业级AI" scheme="https://blog.lhliang.com/tags/%E4%BC%81%E4%B8%9A%E7%BA%A7AI/"/>
    
  </entry>
  
  <entry>
    <title>从「抢卡」到「用卡」：xAI算力悖论揭开的AI效率革命</title>
    <link href="https://blog.lhliang.com/p/5e558e4e.html"/>
    <id>https://blog.lhliang.com/p/5e558e4e.html</id>
    <published>2026-05-05T22:30:00.000Z</published>
    <updated>2026-05-06T14:34:00.488Z</updated>
    
    <content type="html"><![CDATA[<p>当整个AI行业还在为「谁抢到了更多英伟达GPU」而焦虑时，xAI用一组刺眼的数据撕开了皇帝的新衣：55万张GPU，模型浮点运算利用率（MFU）仅11%，远低于行业主流的35%-45%水平。这不是技术故障，这是一场关于AI基础设施效率的深刻拷问。</p><h2 id="1、砸钱买来的「电子废墟」？"><a href="#1、砸钱买来的「电子废墟」？" class="headerlink" title="1、砸钱买来的「电子废墟」？"></a>1、砸钱买来的「电子废墟」？</h2><p>xAI的故事堪称当代AI竞赛的缩影。马斯克豪掷数百亿美元，将约55万张英伟达H100&#x2F;H200 GPU收入囊中，一举成为全球最大的GPU集群之一。然而，这座「算力帝国」的实际产出却令人失望——MFU仅11%，被xAI总裁尼科尔斯直称为「低得尴尬」。</p><p>对比行业数据，这个数字更加触目惊心。当OpenAI、Google、Meta等头部玩家的GPU利用率普遍维持在35%-45%甚至更高时，xAI的11%意味着什么？意味着每投入10美元的算力成本，只有不到3美元真正转化为模型训练效能，其余7美元在「空转」中化为热量和电费账单。</p><h2 id="2、规模神话的破灭"><a href="#2、规模神话的破灭" class="headerlink" title="2、规模神话的破灭"></a>2、规模神话的破灭</h2><p>xAI的低效率并非个例，而是揭示了AI基础设施扩张中的一个系统性悖论：<strong>硬件规模与实际效能之间的巨大落差</strong>。</p><p>造成这一困境的根源是多方面的：</p><p><strong>软件栈严重滞后于激进扩张。</strong> 当xAI疯狂采购GPU时，其配套的软件优化、分布式训练框架、调度系统却未能同步跟上。这就像买了一支顶级交响乐团，却没有足够好的乐谱和指挥。</p><p><strong>HBM显存带宽瓶颈。</strong> 高端GPU的算力早已不是瓶颈，瓶颈在于数据能否及时「喂」给计算单元。当HBM显存带宽不足时，再强的算力也只能等待。</p><p><strong>万卡级通信开销。</strong> 超过一万张GPU的并行训练，通信开销呈指数级增长。每次同步梯度信息，都要消耗大量时间和带宽，这在数学上几乎无法完全规避。</p><p><strong>过度激进的并行策略。</strong> 为了追求极致的训练速度，一些团队采用了过于激进的张量并行和数据并行策略，导致大量重复计算和冗余通信。</p><h2 id="3、从「抢卡」到「用卡」的行业转向"><a href="#3、从「抢卡」到「用卡」的行业转向" class="headerlink" title="3、从「抢卡」到「用卡」的行业转向"></a>3、从「抢卡」到「用卡」的行业转向</h2><p>xAI的困境折射出一个更大的行业趋势：AI竞赛正在从「抢卡时代」进入「用卡时代」。</p><p>过去几年，谁拥有更多GPU似乎就是竞争力的代名词。科技巨头们疯狂囤积算力，政府基金争相投入AI基础设施，整个行业弥漫着一种「算力即霸权」的焦虑。然而，当算力边际收益递减，当算力成本成为财务负担，效率问题终于浮出水面。</p><p>xAI正在双线破局：对内设定了数月内将MFU提升至50%的技术攻坚目标，这意味着GPU利用率要提升近4倍；对外则开始向Cursor等公司出租数万台GPU，实现算力商业化。</p><p>这一转变的深层含义在于：AI基础设施竞争的主战场正在从硬件规模转向软件效率。谁能在同等硬件条件下榨取更多有效算力，谁就能在成本和性能的双重竞争中胜出。</p><h2 id="4、效率革命的技术路径"><a href="#4、效率革命的技术路径" class="headerlink" title="4、效率革命的技术路径"></a>4、效率革命的技术路径</h2><p>要突破GPU利用率瓶颈，业界已经探索出几条主要路径：</p><p><strong>极致通信优化。</strong> 新的网络架构（如InfiniBand、NVIDIA NVLink）、拓扑设计（如Dragonfly、Fat-Tree）以及通信调度算法，可以显著降低多卡通信开销。</p><p><strong>智能调度与弹性伸缩。</strong> 根据任务特性和硬件状态动态分配计算资源，避免「大马拉小车」或「小车拉大马」的资源错配。</p><p><strong>混合精度与稀疏计算。</strong> 通过量化、剪枝、知识蒸馏等技术，在保证模型精度的前提下大幅降低计算需求。</p><p><strong>计算与存储分离。</strong> 解决HBM容量限制问题，让GPU始终有数据可计算。</p><p><strong>新一代芯片架构。</strong> 从传统GPU到DSA（领域特定架构），再到存算一体芯片，底层硬件创新正在重新定义效率边界。</p><h2 id="5、中国的启示与机遇"><a href="#5、中国的启示与机遇" class="headerlink" title="5、中国的启示与机遇"></a>5、中国的启示与机遇</h2><p>对于中国AI产业而言，xAI的故事具有特殊的启示意义。在高端芯片进口受限的背景下，国内AI基础设施面临着「巧妇难为无米之炊」的困境。然而，危机往往孕育机遇。</p><p>当「有多少H100」不再是衡量竞争力的唯一标准时，<strong>效率优化能力</strong>的价值便凸显出来。这正是中国AI产业可以重点突破的方向——通过软件创新、算法优化、系统架构升级，在有限的算力条件下实现最大化产出。</p><p>同时，国产AI芯片如昇腾、寒武纪等虽然在绝对性能上与H100仍有差距，但在特定场景下已经展现出不错的效率表现。在外部压力下发展起来的自主可控能力，反而可能成为未来竞争中的独特优势。</p><hr><p>当55万张GPU只有11%被真正用起来，我们看到的不仅是一家公司的技术困境，更是整个行业对「规模即实力」这一神话的集体迷信。AI基础设施的下一场战争，不在工厂的生产线上，而在代码的优化空间里。这场静悄悄的效率革命，或许比任何芯片禁令都更深刻地重塑着全球AI竞争格局。</p><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://news.sina.cn/bignews/2026-05-06/detail-inhwxtah8382336.d.html">xAI GPU利用率仅11%，马斯克紧急启动系统优化</a></li><li><a href="https://finance.sina.com.cn/jjxw/2026-05-06/doc-inhwxtah8366473.shtml">2026年全球四大云厂商资本开支预计上调至8000亿美元以上</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;当整个AI行业还在为「谁抢到了更多英伟达GPU」而焦虑时，xAI用一组刺眼的数据撕开了皇帝的新衣：55万张GPU，模型浮点运算利用率（MFU）仅11%，远低于行业主流的35%-45%水平。这不是技术故障，这是一场关于AI基础设施效率的深刻拷问。&lt;/p&gt;
&lt;h2 id=&quot;1、</summary>
      
    
    
    
    <category term="AI与科技" scheme="https://blog.lhliang.com/categories/AI%E4%B8%8E%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="人工智能" scheme="https://blog.lhliang.com/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="GPU" scheme="https://blog.lhliang.com/tags/GPU/"/>
    
    <category term="算力" scheme="https://blog.lhliang.com/tags/%E7%AE%97%E5%8A%9B/"/>
    
  </entry>
  
  <entry>
    <title>“AI替代神话破灭？Salesforce召回4000人背后的真相”</title>
    <link href="https://blog.lhliang.com/p/b8c1fcc1.html"/>
    <id>https://blog.lhliang.com/p/b8c1fcc1.html</id>
    <published>2026-05-04T22:30:00.000Z</published>
    <updated>2026-05-05T15:11:29.555Z</updated>
    
    <content type="html"><![CDATA[<p>2026年，AI替代人类的叙事在媒体上铺天盖地。各大咨询公司纷纷发布报告，预言未来五年内数百万岗位将被人工智能吞噬。然而，现实却给出了一个颇为讽刺的答案。</p><h2 id="1、Salesforce的“反向操作”"><a href="#1、Salesforce的“反向操作”" class="headerlink" title="1、Salesforce的“反向操作”"></a>1、Salesforce的“反向操作”</h2><p>2026年4月，一则消息在科技圈引发广泛讨论：Salesforce宣布重新启动约4000人的招聘计划，而这些岗位，正是过去两年被AI替代叙事吓到、通过“效率优化”裁掉的员工。</p><p>原因很简单——<strong>AI干不了那些活</strong>。</p><p>Salesforce CEO Marc Benioff 在内部会议上承认，公司高估了AI处理复杂企业业务的能力。客户服务中的 nuanced 判断、销售流程中的人际关系维护、以及跨部门的协调沟通，这些看似“可被自动化”的工作，实际上远超当前大语言模型的能力边界。</p><p>这一事件撕开了一个口子：<strong>AI替代神话与现实能力之间的鸿沟，比大多数人想象的要大得多。</strong></p><h2 id="2、甲骨文的30000人裁员"><a href="#2、甲骨文的30000人裁员" class="headerlink" title="2、甲骨文的30000人裁员"></a>2、甲骨文的30000人裁员</h2><p>与Salesforce的“反悔”形成鲜明对比的，是甲骨文的狠下心。</p><p>2026年4月，甲骨文在全球范围内启动突袭式大规模裁员，总人数预计达2-3万人，占其全球16.2万员工的近18%。裁员波及健康、销售、云服务等多个核心部门，美国、印度、欧洲等市场无一幸免。</p><p>更有讽刺意味的是，甲骨文在裁员声明中明确表示，此举是为了“释放资源投向AI基础设施建设”。也就是说，<strong>用裁掉真人的钱，去买更多的GPU和训练集群</strong>——至于那些被裁掉的人，能否在AI时代找到新的位置，并不在公司的计算之内。</p><h2 id="3、数据背后的真相"><a href="#3、数据背后的真相" class="headerlink" title="3、数据背后的真相"></a>3、数据背后的真相</h2><p>把视线拉宽，一组数据值得深思：</p><table><thead><tr><th>指标</th><th>数据</th></tr></thead><tbody><tr><td>2026年美国科技行业累计裁员</td><td>超9.2万人</td></tr><tr><td>Meta计划新一轮裁员（5月起）</td><td>约8000人</td></tr><tr><td>甲骨文全球裁员规模</td><td>2-3万人</td></tr><tr><td>AI实际可替代的岗位比例（麦肯锡2026报告）</td><td>约15%</td></tr><tr><td>企业AI项目失败率（2025-2026年统计）</td><td>约60%</td></tr></tbody></table><p>这组数据揭示了一个被忽视的事实：<strong>企业用AI叙事推动裁员的速度，远超AI技术实际落地的速度。</strong></p><h2 id="4、为什么AI替代不了复杂工作？"><a href="#4、为什么AI替代不了复杂工作？" class="headerlink" title="4、为什么AI替代不了复杂工作？"></a>4、为什么AI替代不了复杂工作？</h2><p>从技术角度看，当前的大语言模型有几个本质局限：</p><p><strong>第一，缺乏真正的因果推理能力。</strong> LLM擅长的是模式匹配和概率预测，而非理解因果关系。当面对一个从未见过的复杂业务场景时，模型的“幻觉”问题会急剧放大。</p><p><strong>第二，上下文窗口的物理限制。</strong> 即便最新的模型支持百万token上下文，但“理解”和“记住”是两回事。企业级工作的复杂度，远超任何模型的单次推理能力。</p><p><strong>第三，责任归属问题。</strong> 当AI系统做出一个错误决策时，谁来承担责任？在医疗、金融、法律等高风险领域，这个问题目前没有令人满意的答案。</p><h2 id="5、人机协同才是答案"><a href="#5、人机协同才是答案" class="headerlink" title="5、人机协同才是答案"></a>5、人机协同才是答案</h2><p>2026年最可能成为AI发展的关键转折点，不是因为技术突飞猛进，而是因为企业和从业者开始清醒过来：<strong>AI是倍增器，不是替代者。</strong></p><p>Salesforce召回4000人的事件，本质上是在纠正一个错误假设。那些原本被裁掉的员工，正在以“AI协作专员”的新身份回归——他们的工作内容没变，但工具变了，效率也理应提升。</p><p>这种“人机协同”模式，才是当前技术条件下最务实的路径。AI负责信息检索、初稿生成、数据分析等“高吞吐量、低判断”的任务；人类负责战略决策、创意方向、客户关系等“低吞吐量、高判断”的任务。</p><h2 id="6、写在最后"><a href="#6、写在最后" class="headerlink" title="6、写在最后"></a>6、写在最后</h2><p>每一次技术革命都会伴随“替代焦虑”，从工业革命到计算机普及，历史已经反复证明：<strong>技术消灭旧岗位的速度，远低于它创造新岗位的速度。</strong></p><p>2026年的特殊之处在于，AI的能力已经足够强，强到让人产生“它可以替代一切”的错觉；但又不够强，强不到真的能把复杂工作完全接过去。</p><p>这种“半吊子”状态，恰恰是最危险的——它足以让企业做出激进的决策，却又不足以让这些决策真正成功。</p><p>Salesforce的4000个岗位，是一次昂贵的纠错。希望更多企业能在跟风裁员之前，先想清楚一个问题：<strong>你要替代的是任务，还是人？</strong></p><p>这两者之间，隔着整个2026年的现实。</p><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><ul><li><a href="https://m.huxiu.com/article/4829087.html">裁4000人换AI，CEO为何又请他们回来？- 虎嗅网</a></li><li><a href="https://stock.10jqka.com.cn/20260424/c676247657.shtml">AI裁员又复聘、春招抢人白热化 - 同花顺财经</a></li><li><a href="https://news.qq.com/rain/a/20260424A02TV800">甲骨文全球裁员30000人背后，是AI泡沫还是AI替代？- 腾讯新闻</a></li><li><a href="https://finance.sina.com.cn/wm/2026-04-08/doc-inhttaet6944363.shtml">甲骨文凌晨6点裁员3万人背后 - 新浪财经</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;2026年，AI替代人类的叙事在媒体上铺天盖地。各大咨询公司纷纷发布报告，预言未来五年内数百万岗位将被人工智能吞噬。然而，现实却给出了一个颇为讽刺的答案。&lt;/p&gt;
&lt;h2 id=&quot;1、Salesforce的“反向操作”&quot;&gt;&lt;a href=&quot;#1、Salesforce的“反向</summary>
      
    
    
    
    <category term="AI" scheme="https://blog.lhliang.com/categories/AI/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="人工智能" scheme="https://blog.lhliang.com/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="科技" scheme="https://blog.lhliang.com/tags/%E7%A7%91%E6%8A%80/"/>
    
    <category term="职场" scheme="https://blog.lhliang.com/tags/%E8%81%8C%E5%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>微软AD域控正在被加速替换：国央企信创改造的Identity底座重构指南</title>
    <link href="https://blog.lhliang.com/p/ad-domain-replacement-2026.html"/>
    <id>https://blog.lhliang.com/p/ad-domain-replacement-2026.html</id>
    <published>2026-04-29T06:35:00.000Z</published>
    <updated>2026-04-29T07:14:36.454Z</updated>
    
    <content type="html"><![CDATA[<h2 id="先说一个正在发生的事实"><a href="#先说一个正在发生的事实" class="headerlink" title="先说一个正在发生的事实"></a>先说一个正在发生的事实</h2><p>某央企2024年完成了信创终端占比超60%的改造，麒麟、统信操作系统跑满了办公区。但信息安全部门最近焦头烂额——<strong>信创终端入域还是个老大难问题</strong>。微软AD不认识国产操作系统，认证协议不兼容，GPO策略无法下发，账号体系成了两套平行世界。</p><p>这不是个案。</p><p>据行业统计，<strong>全球约91%的企业以微软Active Directory（AD）域控作为身份管理与资源管控的核心</strong>。在国内，这个数字在国央企中更高——AD域几乎等于“企业IT身份底座”的代名词。</p><p>而2025年起，随着国资委“2+8+N”信创体系加速落地，<strong>AD域替换已经从“要不要做”的讨论变成了“怎么做、何时完成”的执行题</strong>。</p><p>这篇文章系统梳理：</p><ol><li>微软AD域控究竟解决了什么问题</li><li>国产替代方案能替代到什么程度</li><li>两条主流替换路径的优劣对比</li><li>落地过程中最容易踩的坑</li></ol><hr><h2 id="一、微软AD域控：它到底做了什么？"><a href="#一、微软AD域控：它到底做了什么？" class="headerlink" title="一、微软AD域控：它到底做了什么？"></a>一、微软AD域控：它到底做了什么？</h2><p>很多人用AD很多年，但未必系统梳理过它到底在管什么。<strong>AD域不是“一个用户管理工具”，它是一个多层次的身份与访问控制平台。</strong></p><h3 id="1-1-身份认证与单点登录（SSO）"><a href="#1-1-身份认证与单点登录（SSO）" class="headerlink" title="1.1 身份认证与单点登录（SSO）"></a>1.1 身份认证与单点登录（SSO）</h3><p>AD最核心的价值。员工入职后IT管理员创建一个账号，这个账号可以：</p><ul><li>登录Windows电脑（加域）</li><li>访问文件共享服务器（\fileserver）</li><li>登录ERP、OA、邮件系统（通过SSO）</li><li>VPN远程接入</li></ul><p><strong>所有这些操作只验一次密码，背后是Kerberos&#x2F;NTLM认证协议在支撑。</strong></p><p>没有AD的企业，员工每个系统一个账号，密码管理成本极高，撞库、弱密码风险成倍放大。</p><h3 id="1-2-目录服务：用户、计算机、组的统一数据库"><a href="#1-2-目录服务：用户、计算机、组的统一数据库" class="headerlink" title="1.2 目录服务：用户、计算机、组的统一数据库"></a>1.2 目录服务：用户、计算机、组的统一数据库</h3><p>AD本质是一个<strong>基于LDAP协议的可扩展目录服务</strong>，以树状结构存储：</p><table><thead><tr><th>对象类型</th><th>示例</th></tr></thead><tbody><tr><td>用户账户</td><td><a href="mailto:&#122;&#104;&#97;&#110;&#x67;&#x73;&#97;&#110;&#x40;&#99;&#111;&#109;&#112;&#97;&#x6e;&#121;&#46;&#99;&#x6f;&#109;">&#122;&#104;&#97;&#110;&#x67;&#x73;&#97;&#110;&#x40;&#99;&#111;&#109;&#112;&#97;&#x6e;&#121;&#46;&#99;&#x6f;&#109;</a></td></tr><tr><td>计算机账户</td><td>PC-WIN-001</td></tr><tr><td>安全组</td><td>IT-Department、VPN-Users</td></tr><tr><td>组织单元（OU）</td><td>市场部&#x2F;研发部&#x2F;北京办</td></tr><tr><td>组策略对象（GPO）</td><td>密码策略、壁纸策略、USB禁用</td></tr></tbody></table><p>IT管理员通过<strong>组织单元（OU）</strong>对不同部门实施差异化策略，通过<strong>组策略对象（GPO）</strong>批量配置终端安全策略——这是AD区别于普通用户管理系统的关键能力。</p><h3 id="1-3-组策略（GPO）：批量终端管控的核心"><a href="#1-3-组策略（GPO）：批量终端管控的核心" class="headerlink" title="1.3 组策略（GPO）：批量终端管控的核心"></a>1.3 组策略（GPO）：批量终端管控的核心</h3><p>GPO是AD最强大的功能之一，也是替换方案最难复刻的部分。IT管理员可以通过GPO：</p><ul><li><strong>安全策略</strong>：强制密码复杂度、账户锁定策略</li><li><strong>软件部署</strong>：自动给员工电脑安装&#x2F;卸载软件</li><li><strong>安全配置</strong>：禁用USB存储、关闭自动播放、配置防火墙规则</li><li><strong>桌面标准化</strong>：统一桌面壁纸、屏保设置、启动菜单</li><li><strong>脚本执行</strong>：用户登录&#x2F;注销时自动运行脚本</li></ul><p><strong>一次配置，自动推送到成百上千台终端</strong>——这是AD在大型企业中无可替代的根本原因。</p><h3 id="1-4-资源访问控制（ACL）"><a href="#1-4-资源访问控制（ACL）" class="headerlink" title="1.4 资源访问控制（ACL）"></a>1.4 资源访问控制（ACL）</h3><p>AD与NTFS权限体系深度集成：</p><ul><li>员工访问共享文件夹，AD验证身份</li><li>文件服务器根据用户所属组判断权限</li><li>IT可以审计“谁在什么时间访问了什么”</li></ul><h3 id="1-5-DNS集成"><a href="#1-5-DNS集成" class="headerlink" title="1.5 DNS集成"></a>1.5 DNS集成</h3><p>AD Domain Controller同时扮演DNS服务器角色，存储域内所有计算机的A记录、SRV记录（用于域控制器定位、LDAP服务发现），是整个微软生态的“神经系统”。</p><hr><h2 id="二、为什么国央企必须考虑替换AD？"><a href="#二、为什么国央企必须考虑替换AD？" class="headerlink" title="二、为什么国央企必须考虑替换AD？"></a>二、为什么国央企必须考虑替换AD？</h2><h3 id="2-1-信创政策的硬约束"><a href="#2-1-信创政策的硬约束" class="headerlink" title="2.1 信创政策的硬约束"></a>2.1 信创政策的硬约束</h3><p>这是最直接的驱动力。</p><p>国资委要求党政、金融、能源、电信等关键行业在<strong>2027年前完成核心系统的信创替代</strong>。AD域作为“数字身份底座”，如果继续跑在Windows Server上，整个信创改造的逻辑就不完整——操作系统换了，身份管理还捏在微软手里，等于换汤不换药。</p><p>很多项目在招标阶段就已经把“支持国产目录服务”列为<strong>必须满足的准入条件</strong>。</p><h3 id="2-2-数据合规与安全审查"><a href="#2-2-数据合规与安全审查" class="headerlink" title="2.2 数据合规与安全审查"></a>2.2 数据合规与安全审查</h3><p>AD域控的域管理员账户、密码策略、审计日志是安全等保测评的核心检查项。数据存储在境外部署的Microsoft 365&#x2F;Azure AD上，往往需要额外论证。国产替代方案在数据主权和合规审计层面天然更受青睐。</p><h3 id="2-3-成本因素"><a href="#2-3-成本因素" class="headerlink" title="2.3 成本因素"></a>2.3 成本因素</h3><p>微软AD不是免费午餐：</p><ul><li>Windows Server许可证费用</li><li>Active Directory联合服务（ADFS）的授权</li><li>高可用部署（至少两台域控制器）</li><li>持续运维与安全更新的人力成本</li></ul><p>对于多地分支、万人规模的企业，这笔账相当可观。</p><h3 id="2-4-现实困境：信创终端无法入域"><a href="#2-4-现实困境：信创终端无法入域" class="headerlink" title="2.4 现实困境：信创终端无法入域"></a>2.4 现实困境：信创终端无法入域</h3><p>这是目前最普遍的痛点。微软AD只能识别Windows计算机账户，<strong>麒麟、统信UOS等国产操作系统无法加域认证</strong>。企业被迫形成两套身份管理体系——Windows用户走AD域控，信创终端走本地账号或者单独的管控系统。</p><p>两套体系并行意味着：</p><ul><li>IT运维复杂度翻倍</li><li>账号生命周期管理无法统一</li><li>安全策略无法一致执行</li><li>员工体验割裂</li></ul><hr><h2 id="三、国产替代方案核心能力对比"><a href="#三、国产替代方案核心能力对比" class="headerlink" title="三、国产替代方案核心能力对比"></a>三、国产替代方案核心能力对比</h2><p>经过2024—2025年的大量项目落地验证，目前市场上主流方案可分为两类：<strong>以宁盾为代表的国产身份域管</strong>和<strong>以联软XCAD为代表的扩展AD兼容方案</strong>。</p><h3 id="3-1-宁盾国产化身份域管（NDS）"><a href="#3-1-宁盾国产化身份域管（NDS）" class="headerlink" title="3.1 宁盾国产化身份域管（NDS）"></a>3.1 宁盾国产化身份域管（NDS）</h3><p><strong>定位</strong>：以迁移替换微软AD、IBM TDS为目标的原生国产方案。</p><p><strong>核心能力</strong>：</p><ul><li>高度兼容AD&#x2F;TDS原有的目录结构，支持平滑无缝迁移</li><li>支持Windows、Linux、麒麟Kylin、统信UOS等多种终端统一加域管理</li><li>基于标准LDAP服务自主研发，具有自主知识产权</li><li>支持国密算法存储密码，满足合规要求</li><li>与原有AD协议兼容，应用无需改造</li></ul><p><strong>优势</strong>：</p><ul><li>原生支持信创终端，身份管理一步到位</li><li>迁移过程用户无感知，管理员操作习惯延续</li><li>支持等保2.0三级认证</li></ul><p><strong>适用场景</strong>：金融、央国企、军工等强合规要求的信创改造项目。</p><h3 id="3-2-联软安域XCAD域控方案"><a href="#3-2-联软安域XCAD域控方案" class="headerlink" title="3.2 联软安域XCAD域控方案"></a>3.2 联软安域XCAD域控方案</h3><p><strong>定位</strong>：在保留微软AD协议兼容性的同时，实现平滑替换。</p><p><strong>核心能力</strong>：</p><ul><li>底层适配所有微软AD协议（Kerberos、LDAP、NTLM等）</li><li>通过身份安全网关进行协议转换与安全保障</li><li>支持终端加域认证、组策略（GPO）下发、LDAP查询的完整替代</li><li>全终端兼容：Windows、麒麟、统信、云桌面</li><li>三层架构设计保障高可用</li></ul><p><strong>优势</strong>：</p><ul><li>对已有AD应用生态的系统改造量最小</li><li>GPO策略替代较为完整，过渡平滑</li><li>支持信创云桌面场景，是差异化亮点</li><li>密码体系迁移支持国密</li></ul><p><strong>适用场景</strong>：已有大量基于AD认证的成熟应用系统，改造窗口期短，不希望大规模重构应用的场景。</p><h3 id="3-3-能力映射对比"><a href="#3-3-能力映射对比" class="headerlink" title="3.3 能力映射对比"></a>3.3 能力映射对比</h3><table><thead><tr><th>AD核心功能</th><th>宁盾NDS</th><th>联软XCAD</th></tr></thead><tbody><tr><td>用户&#x2F;计算机账户管理</td><td>✅ 完整支持</td><td>✅ 完整支持</td></tr><tr><td>Kerberos认证</td><td>✅</td><td>✅</td></tr><tr><td>LDAP目录服务</td><td>✅ 标准LDAP</td><td>✅ 协议兼容</td></tr><tr><td>组策略（GPO）</td><td>⚠️ 功能子集</td><td>✅ 较完整替代</td></tr><tr><td>终端加域（Windows）</td><td>✅</td><td>✅</td></tr><tr><td>终端加域（麒麟&#x2F;统信）</td><td>✅</td><td>✅</td></tr><tr><td>单点登录（SSO）</td><td>✅</td><td>✅</td></tr><tr><td>国密算法支持</td><td>✅</td><td>✅</td></tr><tr><td>等保合规支持</td><td>✅</td><td>✅</td></tr><tr><td>迁移复杂度</td><td>中（需迁移目录结构）</td><td>低（协议兼容，改动小）</td></tr></tbody></table><blockquote><p><strong>注</strong>：GPO替代是行业共同的技术难点，目前两个方案均无法100%复刻AD全部GPO能力，部分复杂策略需配合MDM&#x2F;终端管理工具补充。</p></blockquote><hr><h2 id="四、两条替换路径：渐进式-vs-一步到位"><a href="#四、两条替换路径：渐进式-vs-一步到位" class="headerlink" title="四、两条替换路径：渐进式 vs 一步到位"></a>四、两条替换路径：渐进式 vs 一步到位</h2><h3 id="路径一：渐进式（推荐多数企业）"><a href="#路径一：渐进式（推荐多数企业）" class="headerlink" title="路径一：渐进式（推荐多数企业）"></a>路径一：渐进式（推荐多数企业）</h3><p><strong>核心理念</strong>：不一次性推翻AD，而是在保留AD的基础上并行部署国产域管，逐步将身份认证切换过来。</p><p><strong>典型步骤</strong>：</p><ol><li>部署国产域控，与现有AD建立信任关系</li><li>新增信创终端先接入国产域控</li><li>新建应用系统优先对接国产域控LDAP</li><li>逐步将Windows终端从AD迁出</li><li>最终下线AD域控</li></ol><p><strong>优点</strong>：</p><ul><li>风险可控，不影响现有业务</li><li>员工无感知，变更管理压力小</li><li>问题可以分阶段暴露和解决</li></ul><p><strong>缺点</strong>：</p><ul><li>双域并行期间运维复杂度高</li><li>总替换周期长（通常12—24个月）</li></ul><h3 id="路径二：一步到位（新部署场景推荐）"><a href="#路径二：一步到位（新部署场景推荐）" class="headerlink" title="路径二：一步到位（新部署场景推荐）"></a>路径二：一步到位（新部署场景推荐）</h3><p><strong>核心理念</strong>：在新建系统或全面信创改造项目中，直接以国产域控作为身份底座，不再部署微软AD。</p><p><strong>典型步骤</strong>：</p><ol><li>新建环境直接部署国产域控</li><li>应用系统建设阶段就对接国产LDAP</li><li>终端全部入国产域</li><li>数据迁移与合规论证并行</li></ol><p><strong>优点</strong>：</p><ul><li>架构清晰，无历史包袱</li><li>建设周期短，节省双轨运维成本</li></ul><p><strong>缺点</strong>：</p><ul><li>对现有应用改造工作量大</li><li>切换窗口风险集中</li></ul><hr><h2 id="五、落地过程中的高频踩坑"><a href="#五、落地过程中的高频踩坑" class="headerlink" title="五、落地过程中的高频踩坑"></a>五、落地过程中的高频踩坑</h2><p>基于多个实际改造项目，总结以下高发问题：</p><h3 id="5-1-应用认证对接比预想的复杂"><a href="#5-1-应用认证对接比预想的复杂" class="headerlink" title="5.1 应用认证对接比预想的复杂"></a>5.1 应用认证对接比预想的复杂</h3><p>很多业务系统（OA、ERP、票务系统）在开发时hardcode了AD认证逻辑，切换时需要逐个应用修改配置。<strong>建议在项目规划阶段就做一次完整的应用认证审计，评估改造工作量。</strong></p><h3 id="5-2-GPO策略迁移有缺口"><a href="#5-2-GPO策略迁移有缺口" class="headerlink" title="5.2 GPO策略迁移有缺口"></a>5.2 GPO策略迁移有缺口</h3><p>AD的GPO是规则引擎，国产方案通常只能覆盖80%的常用策略（密码策略、壁纸、禁用USB等），<strong>剩余20%的精细化策略需要通过终端安全管理产品（如某厂商的EDP）来兜底</strong>。这一点必须在方案选型阶段与厂商明确。</p><h3 id="5-3-密码迁移的安全问题"><a href="#5-3-密码迁移的安全问题" class="headerlink" title="5.3 密码迁移的安全问题"></a>5.3 密码迁移的安全问题</h3><p>迁移过程中用户名和密码的映射关系需要安全处理。联软XCAD采用密码密文迁移技术，宁盾则通过对接AD账号体系实现无缝切换，两种方式都需要在测试环境充分验证。</p><h3 id="5-4-过渡期的双账号管理"><a href="#5-4-过渡期的双账号管理" class="headerlink" title="5.4 过渡期的双账号管理"></a>5.4 过渡期的双账号管理</h3><p>在迁移窗口期，员工的AD账号和国产域账号需要并行一段。如果两个密码策略不一致（如AD要求12位、国产域要求8位），会带来用户体验问题和安全风险。<strong>建议统一密码策略，并提前告知员工账号切换计划。</strong></p><hr><h2 id="六、结语：替换不是目的，掌控才是"><a href="#六、结语：替换不是目的，掌控才是" class="headerlink" title="六、结语：替换不是目的，掌控才是"></a>六、结语：替换不是目的，掌控才是</h2><p>AD域替换的本质不是“把微软的东西换成国产的”，而是<strong>在信创大背景下，重新掌握企业数字身份管理的主动权</strong>。</p><p>选型时有一个关键判断标准：<strong>这个方案，能不能让我在不修改现有应用的情况下平滑切换？</strong> 能做到的，落地难度至少降一半。</p><p>对于已经上了规模的企业（万人以上、多地分支），建议从试点部门开始渐进替换，同时把应用认证对接这个“隐藏工程量”提前摸清楚。替换过程中的经验，往往比替换结果本身更有价值。</p><hr><p><em>参考资料：联软科技XCAD域控方案白皮书（2025）、宁盾信创身份域管产品文档（2025）、Microsoft Learn AD域官方文档（2026.04）、国资委信创工作相关政策文件。文中方案能力对比基于公开资料整理，具体项目请以各厂商最新产品说明为准。</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;先说一个正在发生的事实&quot;&gt;&lt;a href=&quot;#先说一个正在发生的事实&quot; class=&quot;headerlink&quot; title=&quot;先说一个正在发生的事实&quot;&gt;&lt;/a&gt;先说一个正在发生的事实&lt;/h2&gt;&lt;p&gt;某央企2024年完成了信创终端占比超60%的改造，麒麟、统信操作系统</summary>
      
    
    
    
    <category term="技术架构" scheme="https://blog.lhliang.com/categories/%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="网络安全" scheme="https://blog.lhliang.com/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/"/>
    
    <category term="信创" scheme="https://blog.lhliang.com/tags/%E4%BF%A1%E5%88%9B/"/>
    
    <category term="身份管理" scheme="https://blog.lhliang.com/tags/%E8%BA%AB%E4%BB%BD%E7%AE%A1%E7%90%86/"/>
    
  </entry>
  
  <entry>
    <title>估值8520亿后OpenAI造手机！高通联发科双线押注，苹果慌了？</title>
    <link href="https://blog.lhliang.com/p/e3f7b2c9.html"/>
    <id>https://blog.lhliang.com/p/e3f7b2c9.html</id>
    <published>2026-04-28T23:00:00.000Z</published>
    <updated>2026-04-28T23:04:26.621Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1-一则爆料，三家公司股价异动"><a href="#1-一则爆料，三家公司股价异动" class="headerlink" title="1. 一则爆料，三家公司股价异动"></a>1. 一则爆料，三家公司股价异动</h2><p>4月27日，天风国际证券分析师郭明錤在社交平台X上发布了一份重量级产业调查报告——<strong>OpenAI要做手机了</strong>。</p><p>这不是传闻，不是猜测，而是一份包含具体供应商、时间节点和产业链布局的详细路线图：</p><blockquote><p><strong>OpenAI正与联发科、高通合作开发手机处理器，立讯精密为独家系统协同设计与制造商，预计2028年量产。</strong></p></blockquote><p>消息公布后，资本市场瞬间做出反应：</p><table><thead><tr><th>公司</th><th>股价变动</th><th>角色</th></tr></thead><tbody><tr><td><strong>高通</strong></td><td>大涨<strong>10.29%</strong></td><td>芯片合作方</td></tr><tr><td><strong>立讯精密</strong></td><td>A股一度<strong>涨停</strong></td><td>独家制造商</td></tr><tr><td><strong>苹果</strong></td><td>跌超**1%**（”科技七巨头”中最弱）</td><td>潜在威胁对象</td></tr><tr><td><strong>AMD</strong></td><td>跌近4%</td><td>芯片板块受冲击</td></tr><tr><td><strong>英伟达</strong></td><td>涨4%，再创历史新高</td><td>AI算力需求持续</td></tr></tbody></table><p>高通单日涨幅超过10%，这个数字意味着什么？作为市值数千亿美元的芯片巨头，一天涨10%极其罕见——市场正在用真金白银投票，看好”OpenAI + 高通”这条新赛道。</p><h2 id="2-为什么是OpenAI做手机？"><a href="#2-为什么是OpenAI做手机？" class="headerlink" title="2. 为什么是OpenAI做手机？"></a>2. 为什么是OpenAI做手机？</h2><h3 id="2-1-从ChatGPT到AI-Agent的必然延伸"><a href="#2-1-从ChatGPT到AI-Agent的必然延伸" class="headerlink" title="2.1 从ChatGPT到AI Agent的必然延伸"></a>2.1 从ChatGPT到AI Agent的必然延伸</h3><p>回顾OpenAI的硬件探索之路，你会发现这绝非一时兴起：</p><ul><li><strong>2023年</strong>：与Jony Ive（前苹果设计总监）合作探讨AI硬件设备（代号”Project Iron”）</li><li><strong>2025年</strong>：收购Multi（屏幕协作工具），布局多模态交互</li><li><strong>2025年底至2026年初</strong>：陆续推出ChatGPT桌面版、高级语音模式等终端产品</li><li><strong>2026年4月</strong>：被曝自研手机计划，牵手高通&#x2F;联发科</li></ul><p>郭明錤在报告中点出了核心理念：<strong>AI智能体（AI Agent）重新定义手机</strong>。</p><p>传统手机的交互逻辑是”应用驱动”——你打开微信聊天、打开抖音刷视频、打开地图导航。但OpenAI的设想是<strong>任务驱动</strong>——用户不再是打开一堆App，而是告诉手机”帮我安排今天行程”、”订一张去上海的机票”，手机自动调用各种能力完成任务。</p><p>这意味着什么？<strong>App Store可能变得不再重要。</strong></p><p>如果AI Agent能够直接完成你的需求，你还需要下载几十个App吗？这对苹果的生态壁垒来说，是一个根本性的挑战。</p><h3 id="2-2-软件天花板到了吗？"><a href="#2-2-软件天花板到了吗？" class="headerlink" title="2.2 软件天花板到了吗？"></a>2.2 软件天花板到了吗？</h3><p>从商业逻辑看，OpenAI造手机至少有三层考量：</p><p><strong>第一，收入多元化压力。</strong> OpenAI当前年营收约50-60亿美元级别，主要来自API订阅和企业服务。但训练大模型的成本呈指数级增长——GPT-6据传烧了20亿美元。硬件产品能开辟全新的收入来源。</p><p><strong>第二，数据闭环的诱惑。</strong> 自研手机意味着从芯片到操作系统到AI模型的全栈控制。用户的行为数据、传感器数据、使用场景数据——这些对优化AI模型的价值难以估量。</p><p><strong>第三，不被”卡脖子”。</strong> 刚刚在4月下旬，OpenAI才和微软修订了合作协议，取消了独家许可条款。如果未来所有AI入口都被苹果iOS或谷歌Android控制，OpenAI就会陷入被动。自研终端，就是掌握自己的命运。</p><h2 id="3-“三驾马车”供应链揭秘"><a href="#3-“三驾马车”供应链揭秘" class="headerlink" title="3. “三驾马车”供应链揭秘"></a>3. “三驾马车”供应链揭秘</h2><h3 id="3-1-芯片：高通-联发科双线并行"><a href="#3-1-芯片：高通-联发科双线并行" class="headerlink" title="3.1 芯片：高通 + 联发科双线并行"></a>3.1 芯片：高通 + 联发科双线并行</h3><p>OpenAI同时找上了全球移动芯片的两大霸主——高通和联发科。</p><p>这是一个非常聪明的策略：</p><ul><li><strong>高通</strong>：在旗舰SoC领域拥有绝对优势，Snapdragon系列几乎垄断了安卓高端市场，且在高性能AI推理方面技术积累深厚</li><li><strong>联发科</strong>：中端市场王者，Dimensity（天玑）系列性价比极高，出货量全球领先，且与多家中国手机品牌关系密切</li></ul><p><strong>双供应商策略</strong>意味着两件事：一是降低供应链风险（不会因为一家出问题就停摆）；二是可能推出不同定位的产品线（高端版用高通芯片，大众版用联发科芯片）。</p><p>值得注意的是，这两家公司本身也是竞争对手。OpenAI让它们同时参与同一个项目，等于在利用竞争来获得更有利的合作条件。</p><h3 id="3-2-制造：立讯精密独占鳌头"><a href="#3-2-制造：立讯精密独占鳌头" class="headerlink" title="3.2 制造：立讯精密独占鳌头"></a>3.2 制造：立讯精密独占鳌头</h3><p><strong>立讯精密</strong>作为独家系统联合设计和制造合作伙伴，这个选择意味深长。</p><p>立讯精密是谁？它是苹果供应链的核心企业之一——AirPods的主要组装商、Apple Watch的重要代工厂、iPhone的零部件供应商。换句话说，<strong>立讯精密最懂怎么做高端消费电子产品</strong>。</p><p>郭明錤指出，最终规格与供应商确认预计在<strong>2026年底至2027年第一季度</strong>完成。也就是说，OpenAI还有约一年半的时间来敲定技术细节。</p><h2 id="4-2028年量产，来得及吗？"><a href="#4-2028年量产，来得及吗？" class="headerlink" title="4. 2028年量产，来得及吗？"></a>4. 2028年量产，来得及吗？</h2><h3 id="4-1-时间线的合理性分析"><a href="#4-1-时间线的合理性分析" class="headerlink" title="4.1 时间线的合理性分析"></a>4.1 时间线的合理性分析</h3><p>从现在到2028年量产，大约还有<strong>两年半</strong>的时间窗口。对于一款全新品类的消费电子产品来说，这个周期既不短也不长：</p><table><thead><tr><th>阶段</th><th>时间</th><th>关键动作</th></tr></thead><tbody><tr><td>芯片研发</td><td>2026 H2 - 2027 H1</td><td>与高通&#x2F;联发科确定规格</td></tr><tr><td>系统开发</td><td>2027 H1 - 2027 H3</td><td>OS适配、AI Agent集成</td></tr><tr><td>工程验证</td><td>2027 H3 - 2028 Q1</td><td>EVT&#x2F;DVT&#x2F;PVT测试阶段</td></tr><tr><td>量产爬坡</td><td>2028 Q2起</td><td>立讯精密产线准备</td></tr></tbody></table><p>对比一下参考案例：</p><ul><li><strong>第一代iPhone</strong>：从2005年启动到2007年发布，约2年</li><li><strong>Pixel手机</strong>：谷歌2016年推出，前期准备了约2年</li><li>**Nothing Phone (1)**：从宣布到发货约18个月</li></ul><p>两年半的时间，对于一家从未做过手机的科技公司来说，<strong>紧但不至于不可行</strong>——尤其是背后站着高通、联发科和立讯精密这样的成熟供应链伙伴。</p><h3 id="4-2-技术挑战不容小觑"><a href="#4-2-技术挑战不容小觑" class="headerlink" title="4.2 技术挑战不容小觑"></a>4.2 技术挑战不容小觑</h3><p>但乐观之外，也要看到现实的挑战：</p><p><strong>芯片定制不是买现成的。</strong> 高通和联发科的现有芯片虽然强大，但OpenAI如果想要真正的”AI原生”体验，很可能需要定制化的NPU（神经网络处理单元）、定制化的内存带宽架构、甚至定制化的功耗管理方案。这都需要大量的研发投入和时间。</p><p><strong>操作系统的抉择。</strong> 是基于Android深度改造？还是从零开始做一个新的OS？前者快但有谷歌的掣肘；后者自由但生态系统要从零建设。考虑到OpenAI的技术基因，我猜测大概率会走一条中间路线——基于Linux内核打造一个轻量级AI优先的系统。</p><p><strong>应用生态的冷启动问题。</strong> 就算硬件再牛、AI再强，没有开发者生态也是白搭。OpenAI需要说服开发者为其平台开发”Agent原生”应用，这比当年iPhone吸引App开发者还要难——因为开发者需要从根本上改变产品设计思路。</p><h2 id="5-苹果真的该慌了吗？"><a href="#5-苹果真的该慌了吗？" class="headerlink" title="5. 苹果真的该慌了吗？"></a>5. 苹果真的该慌了吗？</h2><h3 id="5-1-历史的讽刺"><a href="#5-1-历史的讽刺" class="headerlink" title="5.1 历史的讽刺"></a>5.1 历史的讽刺</h3><p>这一幕颇有历史的戏剧性。</p><p>2007年乔布斯发布第一代iPhone时，谁能想到19年后，一家做AI软件的公司会反过来”教”苹果怎么做人？</p><p>苹果目前在AI领域的处境确实有些尴尬：</p><ul><li><strong>Siri</strong>被公认落后于ChatGPT&#x2F;Claude&#x2F;GPT等新一代AI助手</li><li><strong>Apple Intelligence</strong>虽已推出，但功能覆盖面和创新性都受到质疑</li><li>在中国市场，AI功能因合规要求大幅缩水</li></ul><p>如果OpenAI的手机真的以”AI-first”理念切入，并且体验上有质的飞跃，那么苹果引以为傲的用户粘性可能会面临前所未有的考验。</p><h3 id="5-2-但别低估苹果"><a href="#5-2-但别低估苹果" class="headerlink" title="5.2 但别低估苹果"></a>5.2 但别低估苹果</h3><p>不过，冷静分析的话，<strong>2028年的苹果也不会原地踏步</strong>。</p><p>苹果手上的牌依然很硬：</p><ul><li><strong>芯片实力</strong>：A系列&#x2F;M系列芯片的能效比持续领先行业</li><li><strong>生态护城河</strong>：iCloud、App Store、AirDrop等构成的闭环</li><li><strong>品牌忠诚度</strong>：iPhone用户的换机留存率全球最高</li><li><strong>现金储备</strong>：约2000亿美元现金，想买想投都能砸钱</li></ul><p>更重要的是，<strong>苹果自己也在All-in AI</strong>。根据多方信息，苹果正在研发自有大模型、升级 Neural Engine、重构 Siri 架构。到2028年，苹果的AI能力未必会比OpenAI差多少。</p><p>所以更可能的局面是：<strong>不是谁取代谁，而是两条路线的正面交锋</strong>——苹果走”AI增强型智能手机”路线，OpenAI走”AI原生终端”路线。消费者会用脚投票。</p><h2 id="6-对行业格局的深层影响"><a href="#6-对行业格局的深层影响" class="headerlink" title="6. 对行业格局的深层影响"></a>6. 对行业格局的深层影响</h2><h3 id="6-1-手机行业的”AI分水岭”"><a href="#6-1-手机行业的”AI分水岭”" class="headerlink" title="6.1 手机行业的”AI分水岭”"></a>6.1 手机行业的”AI分水岭”</h3><p>OpenAI入局手机，可能成为 smartphone 行业的一个分水岭事件。</p><p>在此之前，手机厂商做AI，更多是在现有硬件上叠加AI功能（拍照优化、语音助手、智能推荐）。但如果OpenAI成功定义了”AI原生手机”的产品形态，那么整个行业的竞争维度都会改变——</p><p>从”谁的参数更强”变成**”谁的AI Agent更聪明”**。</p><p>这对于国产手机厂商来说，既是机遇也是挑战：</p><ul><li><strong>华为</strong>：已有盘古大模型+鸿蒙系统的先发优势，最有可能对标OpenAI的模式</li><li><strong>小米</strong>：投资了DeepSeek等多家AI公司，正在构建”人车家全生态”的AI能力</li><li><strong>OPPO&#x2F;vivo</strong>：也在积极布局端侧AI大模型</li></ul><p>可以预见，<strong>2027-2028年的手机市场将迎来一轮围绕AI能力的洗牌</strong>。</p><h3 id="6-2-“AI-硬件”的新范式"><a href="#6-2-“AI-硬件”的新范式" class="headerlink" title="6.2 “AI + 硬件”的新范式"></a>6.2 “AI + 硬件”的新范式</h3><p>更深层次来看，OpenAI造手机代表了一种新趋势：<strong>AI公司向硬件端渗透</strong>。</p><p>类似的信号已经出现：</p><ul><li><strong>Meta</strong>：Ray-Ban Meta智能眼镜大获成功，正在规划AR眼镜</li><li><strong>Google</strong>：Pixel手机持续迭代，Gemini深度整合</li><li><strong>Amazon</strong>：Echo&#x2F;Alexa生态布局多年</li><li><strong>字节跳动</strong>：AI硬件团队在筹备新品</li><li><strong>百度</strong>：小度智能硬件矩阵</li></ul><p>但OpenAI的不同之处在于：它不做”带AI功能的硬件”，而是做**”为AI而生的硬件”**。这个理念差异，可能是下一代消费电子产品的关键分野。</p><h2 id="7-我的判断：机会巨大，但坑也不少"><a href="#7-我的判断：机会巨大，但坑也不少" class="headerlink" title="7. 我的判断：机会巨大，但坑也不少"></a>7. 我的判断：机会巨大，但坑也不少</h2><p>作为一个长期关注科技行业的观察者，我对这件事的看法是：</p><p><strong>乐观的一面：</strong></p><p>OpenAI做手机的底层逻辑是成立的。当AI能力足够强的时候，确实需要一个与之匹配的”原生容器”。现有的智能手机本质上是为App设计的，不是为Agent设计的。这个错位迟早要被纠正。</p><p><strong>谨慎的一面：</strong></p><p>硬件行业有太多”软件公司折戟”的前车之鉴：</p><ul><li>Google的Nexus&#x2F;Pixel系列，投入十年仍未进入全球前五</li><li>Amazon Fire Phone，上市不到一年就停产</li><li>Facebook Portal，始终未能成为主流产品</li><li>微软Windows Phone，几十亿美元打水漂</li></ul><p><strong>核心结论：</strong> OpenAI造手机，战略方向正确，但执行难度极高。2028年能否成功，关键看三点：<strong>芯片能不能做到极致差异化、AI Agent能不能真正替代App交互、价格能不能打到主流区间。</strong></p><p>如果这三点都能做到，那我们见证的可能不只是又一款新手机，而是<strong>智能手机诞生以来最大的交互革命</strong>。</p><hr><p><em>参考资料：天风国际证券郭明錤产业调查报告、IT之家、新浪财经、第一财经、华尔街见闻等公开报道</em></p><p><em>本文仅供技术讨论，不构成任何投资建议</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;1-一则爆料，三家公司股价异动&quot;&gt;&lt;a href=&quot;#1-一则爆料，三家公司股价异动&quot; class=&quot;headerlink&quot; title=&quot;1. 一则爆料，三家公司股价异动&quot;&gt;&lt;/a&gt;1. 一则爆料，三家公司股价异动&lt;/h2&gt;&lt;p&gt;4月27日，天风国际证券分析师郭</summary>
      
    
    
    
    <category term="科技" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="OpenAI" scheme="https://blog.lhliang.com/tags/OpenAI/"/>
    
    <category term="AI手机" scheme="https://blog.lhliang.com/tags/AI%E6%89%8B%E6%9C%BA/"/>
    
    <category term="高通" scheme="https://blog.lhliang.com/tags/%E9%AB%98%E9%80%9A/"/>
    
    <category term="智能硬件" scheme="https://blog.lhliang.com/tags/%E6%99%BA%E8%83%BD%E7%A1%AC%E4%BB%B6/"/>
    
  </entry>
  
  <entry>
    <title>独家终止、AGI条款废除！OpenAI和微软这场“离婚”，AWS笑了</title>
    <link href="https://blog.lhliang.com/p/c4f7b2e1.html"/>
    <id>https://blog.lhliang.com/p/c4f7b2e1.html</id>
    <published>2026-04-27T23:00:00.000Z</published>
    <updated>2026-04-28T09:18:46.763Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1、消息突发：一场没有挽留的“分手”"><a href="#1、消息突发：一场没有挽留的“分手”" class="headerlink" title="1、消息突发：一场没有挽留的“分手”"></a>1、消息突发：一场没有挽留的“分手”</h2><p>2026年4月27日（美国东部时间周一），OpenAI 与微软联合宣布对双方持续数年的战略合作协议进行<strong>重大修订</strong>。</p><p>消息一出，华尔街立刻用真金白银投了票：</p><ul><li>**微软股价当日下跌约2%**，投资者将其解读为“AI护城河受损”</li><li>**亚马逊股价上涨约1%**，AWS 被视为最大的间接受益方</li></ul><p>这不是一次小修小补。用 Unite.ai 的评价来说：<strong>这是将 AI 行业最大的独家绑定关系，拆解为一份有明确到期日的常规商业合同。</strong></p><h2 id="2、四个核心变化，逐一拆解"><a href="#2、四个核心变化，逐一拆解" class="headerlink" title="2、四个核心变化，逐一拆解"></a>2、四个核心变化，逐一拆解</h2><h3 id="变化一：独家许可-→-非独家许可"><a href="#变化一：独家许可-→-非独家许可" class="headerlink" title="变化一：独家许可 → 非独家许可"></a>变化一：独家许可 → 非独家许可</h3><p><strong>这是本次修订最核心的条款。</strong></p><table><thead><tr><th>项目</th><th>修订前</th><th>修订后</th></tr></thead><tbody><tr><td>IP授权方式</td><td>微软<strong>独占</strong>OpenAI模型和产品的知识产权许可</td><td>改为<strong>非独占</strong>许可</td></tr><tr><td>授权期限</td><td>-</td><td>延续至<strong>2032年</strong></td></tr><tr><td>部署平台</td><td>仅限 Azure</td><td>OpenAI 可向<strong>任意云服务商</strong>提供全部产品</td></tr></tbody></table><p>虽然微软仍保留“<strong>首要云合作伙伴</strong>”地位——OpenAI产品优先在 Azure 上线，除非微软无法支持——但这个“优先”已经从“独占”变成了“排队第一”。</p><blockquote><p>据报道，OpenAI 在 AWS、Google Cloud 等平台上推出模型的速度，可能从“几个季度”缩短到<strong>几周内</strong>完成。</p></blockquote><h3 id="变化二：收入分成双向调整"><a href="#变化二：收入分成双向调整" class="headerlink" title="变化二：收入分成双向调整"></a>变化二：收入分成双向调整</h3><p>修订前的收入分成是双向的：微软从 Azure 上的 OpenAI 服务收入中抽取分成，同时 OpenAI 也向微软支付分成。</p><p>修订后的规则变得清晰得多：</p><ul><li><strong>微软 → OpenAI：停止支付</strong>。微软不再为 Azure 上销售的 OpenAI 模型向 OpenAI 支付营收分成</li><li><strong>OpenAI → 微软：持续至2030年</strong>，分成比例不变，但增加了<strong>总额上限</strong>，且不再与技术里程碑挂钩</li></ul><p>简单说：<strong>钱还在流，但阀门被拧紧了，时间表也锁死了。</strong></p><h3 id="变化三：AGI条款——彻底废除"><a href="#变化三：AGI条款——彻底废除" class="headerlink" title="变化三：AGI条款——彻底废除"></a>变化三：AGI条款——彻底废除</h3><p>这是整份修订中最具象征意义的变化。</p><p>旧协议中存在一个著名的“<strong>AGI条款</strong>”：当 OpenAI 董事会宣布达到 AGI（通用人工智能）时，会触发对微软知识产权的自动变更。这个条款像一个悬在双方头上的达摩克利斯之剑——没人知道 AGI 什么时候来，来了之后合同怎么变。</p><p><strong>现在这个条款被完全消除了。</strong></p><p>取而代之的是明确的日期：收入分成到 <strong>2030年</strong> 停止，IP许可到 <strong>2032年</strong> 到期。无论 OpenAI 是否宣布 AGI，合同按期执行。</p><blockquote><p>从“哲学赌注”变成了“正常商业合同”——这是对 AI 行业最大的确定性行动之一。</p></blockquote><h3 id="变化四：亚马逊的影子——AWS-七年协议浮出水面"><a href="#变化四：亚马逊的影子——AWS-七年协议浮出水面" class="headerlink" title="变化四：亚马逊的影子——AWS 七年协议浮出水面"></a>变化四：亚马逊的影子——AWS 七年协议浮出水面</h3><p>独家许可的终结并非毫无征兆。<strong>2025年11月</strong>，OpenAI 已与 AWS 签署了一份<strong>为期七年、价值380亿美元</strong>的协议。亚马逊此后又承诺了大量新投资。</p><p>旧协议中微软的独家许可，与 OpenAI 的 AWS 合作存在<strong>根本性冲突</strong>。此次修订，本质上是在法律层面为“多云现实”扫清障碍。</p><p>AWS 已经在 AI 基础设施上投入了数十亿美元，准备好承接此前被 Azure 独家许可阻挡的 OpenAI 工作负载。</p><h2 id="3、各方影响分析"><a href="#3、各方影响分析" class="headerlink" title="3、各方影响分析"></a>3、各方影响分析</h2><h3 id="对微软：失去护城河，换来确定性"><a href="#对微软：失去护城河，换来确定性" class="headerlink" title="对微软：失去护城河，换来确定性"></a>对微软：失去护城河，换来确定性</h3><p><strong>失去的：</strong></p><ul><li>OpenAI 模型的独家部署权——这是微软 Azure AI 业务最大的差异化优势</li><li>在企业客户选择 AI 模型时的“唯一入口”地位</li></ul><p><strong>得到的：</strong></p><ul><li>消除了 AGI 条款带来的法律不确定性——此前 OpenAI 董事会可以单方面宣布 AGI 并搅乱合作关系</li><li>OpenAI 向微软的分成有了总额上限和明确到期日（2030年），财务可预期性大幅提升</li><li>双方仍将在数据中心扩容、下一代芯片和 AI 网络安全领域继续合作</li><li>微软持有的约 <strong>1350亿美元 OpenAI 股份</strong>（摊薄后约占27%）保持不变</li></ul><p><strong>真正的考验</strong>：失去独家权后，微软能否加速推进自有和合作伙伴的模型——Anthropic、Mistral 等竞争对手正在争夺同样的企业客户。</p><h3 id="对-OpenAI：从“附庸”到“独立”"><a href="#对-OpenAI：从“附庸”到“独立”" class="headerlink" title="对 OpenAI：从“附庸”到“独立”"></a>对 OpenAI：从“附庸”到“独立”</h3><p>这份修订协议可以看作 OpenAI <strong>独立化进程的关键一步</strong>：</p><ol><li><strong>商业自主权</strong>：可以自由选择云服务商和合作伙伴，不再被绑定在单一平台上</li><li><strong>产品触达范围扩大</strong>：AWS 和 Google Cloud 的企业客户将能直接使用 OpenAI 模型</li><li><strong>融资灵活性</strong>：不再受限于与微软的合作框架，可以接受任何战略投资者的资金</li></ol><h3 id="对-AWS-x2F-亚马逊：最大的间接受益方"><a href="#对-AWS-x2F-亚马逊：最大的间接受益方" class="headerlink" title="对 AWS&#x2F;亚马逊：最大的间接受益方"></a>对 AWS&#x2F;亚马逊：最大的间接受益方</h3><p>亚马逊在这次修订中的收获是<strong>隐性的但巨大的</strong>：</p><ul><li>380亿美元的七年协议终于可以在不受独家限制的情况下全面执行</li><li>AWS 企业客户将能直接调用 GPT 系列模型，无需“绕道”Azure</li><li>在 AI 基础设施竞争中，亚马逊获得了与微软&#x2F;Azure 同台竞技的合法性</li></ul><h3 id="对行业格局：多云时代正式到来"><a href="#对行业格局：多云时代正式到来" class="headerlink" title="对行业格局：多云时代正式到来"></a>对行业格局：多云时代正式到来</h3><p>这次修订的意义远超两家公司的关系变化。它标志着：</p><p><strong>AI 模型的分发渠道从“单极”走向“多极”。</strong> 此前，想要使用最先进的 OpenAI 模型，Azure 是唯一选择。现在，AWS、Google Cloud 甚至其他云服务商都可能成为入口。</p><p>这对整个 AI 生态的影响将是深远的：</p><ul><li><strong>企业客户</strong>获得了更大的议价空间和选择自由</li><li><strong>中小云服务商</strong>理论上也可以接入 OpenAI 模型</li><li><strong>竞争重心</strong>从“谁有独家权”转向“谁的基础设施更好、价格更优”</li></ul><h2 id="4、深层解读：为什么是现在？"><a href="#4、深层解读：为什么是现在？" class="headerlink" title="4、深层解读：为什么是现在？"></a>4、深层解读：为什么是现在？</h2><h3 id="表面原因：理顺合作关系"><a href="#表面原因：理顺合作关系" class="headerlink" title="表面原因：理顺合作关系"></a>表面原因：理顺合作关系</h3><p>双方声明中强调的核心目的是“<strong>提升合作可预期性</strong>”和“<strong>保留规模化搭建和运营AI平台的联合能力</strong>”。确实，旧的独家许可 + AGI条款的组合，在全球反垄断监管趋严的背景下，已经越来越像一个法律地雷。</p><h3 id="深层原因一：OpenAI-的上市野心"><a href="#深层原因一：OpenAI-的上市野心" class="headerlink" title="深层原因一：OpenAI 的上市野心"></a>深层原因一：OpenAI 的上市野心</h3><p>OpenAI 正在从非营利组织向<strong>营利性实体</strong>转型。要实现上市或接受更广泛的融资，与单一合作伙伴的独家绑定是一个明显的障碍。解除独家，是 OpenAI 走向资本市场的必要准备。</p><h3 id="深层原因二：反垄断压力"><a href="#深层原因二：反垄断压力" class="headerlink" title="深层原因二：反垄断压力"></a>深层原因二：反垄断压力</h3><p>美国和欧盟的反垄断监管机构都在密切关注科技巨头与 AI 公司的合作关系。微软对 OpenAI 的独家控制权，在监管层面越来越难以辩护。主动解除独家，某种程度上是一种<strong>预防性合规</strong>。</p><h3 id="深层原因三：AI-竞争格局的变化"><a href="#深层原因三：AI-竞争格局的变化" class="headerlink" title="深层原因三：AI 竞争格局的变化"></a>深层原因三：AI 竞争格局的变化</h3><p>2026年的 AI 行业已经不再是 OpenAI 一家独大的局面。Anthropic（Claude）、Google（Gemini）、Meta（Llama）以及中国的大模型军团（DeepSeek、通义千问等）都在快速追赶。在这种格局下，<strong>绑死在一家云服务商上，对 OpenAI 自身也不利</strong>——它需要尽可能多的分发渠道来维持市场份额。</p><h2 id="5、历史视角：科技史上最贵的“合作分手”"><a href="#5、历史视角：科技史上最贵的“合作分手”" class="headerlink" title="5、历史视角：科技史上最贵的“合作分手”"></a>5、历史视角：科技史上最贵的“合作分手”</h2><p>回顾科技史，类似的“合作解绑”并不罕见，但每次都深刻改变了行业格局：</p><table><thead><tr><th>时间</th><th>事件</th><th>影响</th></tr></thead><tbody><tr><td>1985年</td><td>乔布斯被逐出苹果</td><td>开启了苹果的至暗时代</td></tr><tr><td>2000年代</td><td>英特尔与AMD的交叉授权</td><td>x86生态得以延续</td></tr><tr><td>2010年</td><td>谷歌退出中国市场</td><td>百度获得黄金十年</td></tr><tr><td>2023年</td><td>Twitter与Stripe分手</td><td>推动X平台的支付野心</td></tr><tr><td>2026年</td><td>OpenAI与微软解除独家</td><td>AI多云时代正式开启</td></tr></tbody></table><p>微软和 OpenAI 的关系不会终结——2500亿美元的 Azure 计算承诺和27%的股权确保了这一点。但<strong>关系的性质已经发生了根本性变化</strong>：从“战略绑定”变为“商业合作”，从“独家伙伴”变为“优先供应商”。</p><h2 id="6、写在最后"><a href="#6、写在最后" class="headerlink" title="6、写在最后"></a>6、写在最后</h2><p>这份修订协议，本质上是一次<strong>从“浪漫”到“理性”的转折</strong>。</p><p>早期的 OpenAI 需要微软的资金、算力和商业渠道，微软需要一个颠覆性的 AI 产品来重塑 Azure 的竞争力。双方的合作带有强烈的“共谋未来”色彩。</p><p>但到了2026年，OpenAI 已经成为全球最有价值的 AI 公司之一，微软也已经通过 AI 概念让 Azure 业务实现了跨越式增长。<strong>双方都不再需要彼此的“独家”来证明价值。</strong></p><p>对于整个 AI 行业而言，这是好消息。独家绑定限制创新，多平台竞争才能让技术更快普及、价格更合理。</p><p>AWS笑了，谷歌在观望，Anthropic 可能要重新评估自己的云合作策略——而你我作为技术从业者和用户，即将迎来一个<strong>选择更多、竞争更激烈的 AI 基础设施市场</strong>。</p><blockquote><p><strong>一句话总结</strong>：AI 时代最重磅的“离婚”已经发生，没有输家——除了微软的独家护城河。</p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;1、消息突发：一场没有挽留的“分手”&quot;&gt;&lt;a href=&quot;#1、消息突发：一场没有挽留的“分手”&quot; class=&quot;headerlink&quot; title=&quot;1、消息突发：一场没有挽留的“分手”&quot;&gt;&lt;/a&gt;1、消息突发：一场没有挽留的“分手”&lt;/h2&gt;&lt;p&gt;2026年4</summary>
      
    
    
    
    <category term="科技前沿" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80%E5%89%8D%E6%B2%BF/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="OpenAI" scheme="https://blog.lhliang.com/tags/OpenAI/"/>
    
    <category term="微软" scheme="https://blog.lhliang.com/tags/%E5%BE%AE%E8%BD%AF/"/>
    
    <category term="云计算" scheme="https://blog.lhliang.com/tags/%E4%BA%91%E8%AE%A1%E7%AE%97/"/>
    
  </entry>
  
  <entry>
    <title>百万上下文仅2毛！DeepSeek V4开源炸场，国产大模型卷疯了</title>
    <link href="https://blog.lhliang.com/p/a1aadc83.html"/>
    <id>https://blog.lhliang.com/p/a1aadc83.html</id>
    <published>2026-04-26T23:00:00.000Z</published>
    <updated>2026-04-27T00:00:07.319Z</updated>
    
    <content type="html"><![CDATA[<h2 id="一、15个月磨一剑，DeepSeek-V4终于来了"><a href="#一、15个月磨一剑，DeepSeek-V4终于来了" class="headerlink" title="一、15个月磨一剑，DeepSeek V4终于来了"></a>一、15个月磨一剑，DeepSeek V4终于来了</h2><p>2026年4月24日，全球AI圈等待了15个月的DeepSeek V4预览版正式上线并同步开源。发布当天，HuggingFace和ModelScope服务器一度被涌入的开发者挤爆——这待遇，上一个还是V3发布的时候。</p><p>这次发布一口气推出两个版本：</p><table><thead><tr><th>版本</th><th>总参数</th><th>激活参数</th><th>定位</th></tr></thead><tbody><tr><td><strong>DeepSeek-V4-Pro</strong></td><td>1.6T</td><td>49B</td><td>旗舰满血版，对标顶级闭源</td></tr><tr><td><strong>DeepSeek-V4-Flash</strong></td><td>284B</td><td>13B</td><td>轻量高效版，高并发首选</td></tr></tbody></table><p>两个版本共享同一个核心架构突破——<strong>百万Token（1M）上下文，全系标配</strong>。</p><p>这不是什么”实验室demo”或”限量体验”，而是所有官方服务直接开放。输入1M、输出384K，不分行、不分档，拿来就用。</p><h2 id="二、架构大换血：从注意力机制开始革新"><a href="#二、架构大换血：从注意力机制开始革新" class="headerlink" title="二、架构大换血：从注意力机制开始革新"></a>二、架构大换血：从注意力机制开始革新</h2><p>V4不是简单的”参数堆叠+微调”，底层架构做了根本性升级。</p><h3 id="1-混合注意力机制"><a href="#1-混合注意力机制" class="headerlink" title="1. 混合注意力机制"></a>1. 混合注意力机制</h3><p>V4引入了全新的<strong>Token维度深度压缩</strong>技术，配合<strong>DSA稀疏注意力</strong>（DeepSeek Sparse Attention），实现了长上下文能力的飞跃：</p><ul><li>传统方案：上下文越长，计算量平方级增长</li><li>V4方案：通过稀疏路由+深度压缩，1M上下文的计算开销降至可接受范围</li></ul><p>核心效果：**1M长上下文召回率83.5%**，作为对比，Claude Opus 4.7的1M召回率仅32.2%。不是一点半点的提升，是2.6倍的碾压。</p><h3 id="2-mHC超连接技术"><a href="#2-mHC超连接技术" class="headerlink" title="2. mHC超连接技术"></a>2. mHC超连接技术</h3><p>来自2025年12月31日上传arXiv的论文，梁文锋亲自挂名。mHC（流形约束超连接）改进了MoE架构中专家间的信息流动方式，让1.6T参数的模型在推理时只激活49B，效率大幅提升。</p><h3 id="3-三档推理模式"><a href="#3-三档推理模式" class="headerlink" title="3. 三档推理模式"></a>3. 三档推理模式</h3><p>V4提供三种推理模式，灵活适配不同场景：</p><table><thead><tr><th>模式</th><th>说明</th><th>适用场景</th></tr></thead><tbody><tr><td>Non-think</td><td>不启用思考链</td><td>快速对话、简单问答</td></tr><tr><td>Think High</td><td>中度思考</td><td>常规推理、代码编写</td></tr><tr><td>Think Max</td><td>深度思考</td><td>复杂数学、长链Agent</td></tr></tbody></table><h2 id="三、性能实测：开源模型的新天花板"><a href="#三、性能实测：开源模型的新天花板" class="headerlink" title="三、性能实测：开源模型的新天花板"></a>三、性能实测：开源模型的新天花板</h2><h3 id="1-代码能力：开源模型历史最高"><a href="#1-代码能力：开源模型历史最高" class="headerlink" title="1. 代码能力：开源模型历史最高"></a>1. 代码能力：开源模型历史最高</h3><table><thead><tr><th>评测</th><th>分数</th><th>说明</th></tr></thead><tbody><tr><td>LiveCodeBench</td><td>93.5%</td><td>开源模型最高</td></tr><tr><td>Codeforces Rating</td><td>3206</td><td>接近职业选手水平</td></tr><tr><td>SWE Verified</td><td>80.6%</td><td>实际工程修复能力</td></tr><tr><td>SWE Pro</td><td>55.4%</td><td>工程级复杂修复</td></tr></tbody></table><p>Agentic Coding评测直接登顶开源榜首，使用体验优于Claude Sonnet 4.5，交付质量逼近Opus 4.6（非思考模式）。</p><h3 id="2-通用与科学推理"><a href="#2-通用与科学推理" class="headerlink" title="2. 通用与科学推理"></a>2. 通用与科学推理</h3><table><thead><tr><th>评测</th><th>分数</th></tr></thead><tbody><tr><td>MMLU</td><td>90.1</td></tr><tr><td>MMLU-Pro</td><td>73.5</td></tr><tr><td>GPQA Diamond</td><td>90.1</td></tr></tbody></table><p>GPQA Diamond 90.1意味着在研究生级别的科学推理上，V4已经达到了极为出色的水平。</p><h3 id="3-世界知识储备"><a href="#3-世界知识储备" class="headerlink" title="3. 世界知识储备"></a>3. 世界知识储备</h3><p>大幅领先同类开源模型，仅稍逊于Gemini-Pro-3.1——而Gemini背后是谷歌的整个搜索索引。</p><h2 id="四、价格屠夫回归：Claude的1-x2F-28"><a href="#四、价格屠夫回归：Claude的1-x2F-28" class="headerlink" title="四、价格屠夫回归：Claude的1&#x2F;28"></a>四、价格屠夫回归：Claude的1&#x2F;28</h2><p>V4发布后，限时75%折扣，截止5月5日。折扣后价格：</p><table><thead><tr><th>版本</th><th>输入（缓存命中）</th><th>输入（未命中）</th><th>输出</th></tr></thead><tbody><tr><td>V4-Pro</td><td>¥0.25&#x2F;百万Token</td><td>¥3&#x2F;百万Token</td><td>¥6&#x2F;百万Token</td></tr><tr><td>V4-Flash</td><td>-</td><td>-</td><td>¥0.5&#x2F;百万Token</td></tr></tbody></table><p>V4-Flash的输出价格<strong>每百万Token仅0.5元</strong>，百万上下文调一次2毛钱。</p><p>整体价格约为Claude Opus 4.6的<strong>1&#x2F;28</strong>。那个大模型价格屠夫，又回来了。</p><h2 id="五、华为昇腾零日适配：国产算力关键一步"><a href="#五、华为昇腾零日适配：国产算力关键一步" class="headerlink" title="五、华为昇腾零日适配：国产算力关键一步"></a>五、华为昇腾零日适配：国产算力关键一步</h2><p>发布当天，华为同步官宣：<strong>昇腾SuperNode全系列产品实现零日适配</strong>，即V4首发即支持在昇腾芯片上运行推理任务。</p><p>这是一个标志性事件：</p><ul><li><strong>之前</strong>：国产大模型跑在英伟达GPU上，算力自主只是口号</li><li><strong>现在</strong>：V4+昇腾&#x3D;推理侧国产算力闭环</li></ul><p>不过需要明确：<strong>仅推理侧适配</strong>，训练环节仍依赖美国芯片。华为官方已对此做了澄清。从推理到训练的全面国产化，还需要时间。</p><h2 id="六、开源生态：MIT协议全量开放"><a href="#六、开源生态：MIT协议全量开放" class="headerlink" title="六、开源生态：MIT协议全量开放"></a>六、开源生态：MIT协议全量开放</h2><p>V4采用MIT协议开源，这意味着：</p><ol><li><strong>商用零门槛</strong>：企业可以直接部署，无需授权费</li><li><strong>二次开发自由</strong>：可以修改、分发、再闭源</li><li><strong>全量权重开放</strong>：不是阉割版，1.6T参数全部放出</li></ol><p>配套的58页技术报告同步公开，HuggingFace和GitHub均可下载。</p><h2 id="七、与GPT-5-5同日发布的信号"><a href="#七、与GPT-5-5同日发布的信号" class="headerlink" title="七、与GPT-5.5同日发布的信号"></a>七、与GPT-5.5同日发布的信号</h2><p>巧合的是，4月24日也是OpenAI发布GPT-5.5的日子。一边是硅谷巨头打磨的闭源旗舰，一边是杭州团队全量开源的1.6T参数怪兽。</p><p>两条时间线交汇在同一天，释放的信号很明确：</p><ol><li><strong>开源与闭源的边界在模糊</strong>：V4-Pro在多项评测上已经逼近甚至超越部分闭源模型</li><li><strong>中国AI不再是跟随者</strong>：从架构创新（DSA稀疏注意力、mHC超连接）到工程实现，V4走出了自己的路</li><li><strong>普惠化加速</strong>：百万上下文2毛钱，降低了AI应用的门槛</li></ol><h2 id="八、留给V5的悬念"><a href="#八、留给V5的悬念" class="headerlink" title="八、留给V5的悬念"></a>八、留给V5的悬念</h2><p>V4并非完美，几个值得关注的点：</p><ul><li><strong>多模态缺失</strong>：V4是纯文本模型，视觉版本（V4-VL）将单独发布</li><li><strong>训练侧国产化未完成</strong>：推理跑昇腾，训练还靠英伟达</li><li><strong>Engram记忆模块未集成</strong>：1月联合北大发布的条件记忆模块，留给了V5</li><li><strong>二次集成有适配成本</strong>：无Jinja模板，必须使用官方编码器</li></ul><p>但话说回来，15个月从V3迭代到V4，这个速度本身就是答案。</p><h2 id="九、写在最后"><a href="#九、写在最后" class="headerlink" title="九、写在最后"></a>九、写在最后</h2><p>DeepSeek V4的发布，与其说是”又一个大模型来了”，不如说是<strong>国产AI从追赶到并跑的里程碑</strong>。</p><p>百万上下文标配、1.6T参数开源、华为昇腾推理适配、API价格打到1&#x2F;28——每一个点单独拿出来都够做一篇头条。而当它们同时出现在一个模型上时，传递出的信息只有一个：</p><p><strong>AI的普惠时代，真的来了。</strong></p><hr><p><em>参考资料：DeepSeek官方技术报告、AI Insight研报、腾讯云开发者社区、机器之心</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;一、15个月磨一剑，DeepSeek-V4终于来了&quot;&gt;&lt;a href=&quot;#一、15个月磨一剑，DeepSeek-V4终于来了&quot; class=&quot;headerlink&quot; title=&quot;一、15个月磨一剑，DeepSeek V4终于来了&quot;&gt;&lt;/a&gt;一、15个月磨一剑，D</summary>
      
    
    
    
    <category term="AI" scheme="https://blog.lhliang.com/categories/AI/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="大模型" scheme="https://blog.lhliang.com/tags/%E5%A4%A7%E6%A8%A1%E5%9E%8B/"/>
    
    <category term="DeepSeek" scheme="https://blog.lhliang.com/tags/DeepSeek/"/>
    
    <category term="开源" scheme="https://blog.lhliang.com/tags/%E5%BC%80%E6%BA%90/"/>
    
  </entry>
  
  <entry>
    <title>专做公文汇报文档的 SKILL 技能，分享一下</title>
    <link href="https://blog.lhliang.com/p/4ced473a.html"/>
    <id>https://blog.lhliang.com/p/4ced473a.html</id>
    <published>2026-04-26T08:00:00.000Z</published>
    <updated>2026-04-26T09:19:38.118Z</updated>
    
    <content type="html"><![CDATA[<h2 id="一、先说清楚：这个-SKILL-是什么"><a href="#一、先说清楚：这个-SKILL-是什么" class="headerlink" title="一、先说清楚：这个 SKILL 是什么"></a>一、先说清楚：这个 SKILL 是什么</h2><p>在国央企待过的朋友都知道，公文格式要求非常死板——A4 纸张、页边距精确到厘米、字体必须是方正小标宋&#x2F;仿宋&#x2F;黑体&#x2F;楷体、行间距固定 28 磅、标题序号要按「一、二、三、」「（一）（二）（三）」的格式……每次写通知都要花大量时间调格式，而不是在内容上。</p><p>这个 SKILL 就是我专门为解决这个痛点写的，没有任何商业秘密，核心就是基于 Node.js 的 <code>docx</code> 库，把政府公文格式做成了可复用的代码模块。</p><p><strong>重要的是：这不是什么高大上的技术，任何有一定开发能力的人都可以做自己的 SKILL。</strong> ClawHub 这样的平台让分享变得很简单——你会写代码，就能做；你有经验，就能分享。工具类的可以造福同行，经验类的可以帮人少走弯路。</p><hr><h2 id="二、SKILL-技能主页与下载"><a href="#二、SKILL-技能主页与下载" class="headerlink" title="二、SKILL 技能主页与下载"></a>二、SKILL 技能主页与下载</h2><ul><li><strong>技能主页：</strong><a href="https://clawhub.ai/a-lhliang/gov-doc-writing">国央企 WORD 文档 — ClawHub</a></li><li><strong>直接下载：</strong><a href="https://wry-manatee-359.convex.site/api/v1/download?slug=gov-doc-writing">点击下载 SKILL 安装包</a></li></ul><hr><h2 id="三、安装方法"><a href="#三、安装方法" class="headerlink" title="三、安装方法"></a>三、安装方法</h2><h3 id="方式一：上传到-WorkBuddy-x2F-QClaw-x2F-OpenClaw"><a href="#方式一：上传到-WorkBuddy-x2F-QClaw-x2F-OpenClaw" class="headerlink" title="方式一：上传到 WorkBuddy &#x2F; QClaw &#x2F; OpenClaw"></a>方式一：上传到 WorkBuddy &#x2F; QClaw &#x2F; OpenClaw</h3><p>这是最推荐的方式，安装后用自然语言就能调用，适合<strong>办公人员和开发人员</strong>。</p><p><strong>第一步：</strong> 下载上面的 SKILL 安装包并解压。</p><p><strong>第二步：</strong> 将解压后的文件夹上传到对应工具的 skills 目录：</p><table><thead><tr><th>工具</th><th>Skills 目录</th></tr></thead><tbody><tr><td>腾讯 WorkBuddy</td><td><code>~/.workbuddy/skills/</code></td></tr><tr><td>QClaw</td><td><code>~/.claw/skills/</code></td></tr><tr><td>OpenClaw</td><td><code>~/.openclaw/skills/</code></td></tr></tbody></table><p><strong>第三步：</strong> 在对应项目目录下运行 <code>npm install</code>，安装运行时依赖 <code>docx</code> 包。</p><p><strong>第四步：</strong> 安装完成后，直接告诉 AI 要写什么即可。例如在 WorkBuddy 中输入：</p><blockquote><p>帮我写一份关于XXXX的通知，使用国央企公文格式</p></blockquote><p>AI 会自动调用该技能，按照政府公文规范生成 <code>.docx</code> 文件。</p><h3 id="方式二：命令行调用"><a href="#方式二：命令行调用" class="headerlink" title="方式二：命令行调用"></a>方式二：命令行调用</h3><p>如果你习惯用命令行，或者想把功能集成到自己的脚本里，也可以直接调用：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">node ~/.workbuddy/skills/gov-doc-writing/scripts/create_gov_doc.js output.docx <span class="string">&#x27;&#123;</span></span><br><span class="line"><span class="string">  &quot;title&quot;: &quot;关于XXXX的通知&quot;,</span></span><br><span class="line"><span class="string">  &quot;body&quot;: [</span></span><br><span class="line"><span class="string">    &#123;&quot;type&quot;: &quot;heading1&quot;, &quot;text&quot;: &quot;一、基本情况&quot;, &quot;number&quot;: 1&#125;,</span></span><br><span class="line"><span class="string">    &#123;&quot;type&quot;: &quot;paragraph&quot;, &quot;text&quot;: &quot;正文内容&quot;&#125;</span></span><br><span class="line"><span class="string">  ]</span></span><br><span class="line"><span class="string">&#125;&#x27;</span></span><br></pre></td></tr></table></figure><hr><h2 id="四、生成的文档格式规范"><a href="#四、生成的文档格式规范" class="headerlink" title="四、生成的文档格式规范"></a>四、生成的文档格式规范</h2><p>该技能会自动处理以下所有格式要求：</p><table><thead><tr><th>格式要素</th><th>具体规范</th></tr></thead><tbody><tr><td>纸张</td><td>A4</td></tr><tr><td>上边距</td><td>3.7 cm</td></tr><tr><td>下边距</td><td>3.5 cm</td></tr><tr><td>左边距</td><td>2.8 cm</td></tr><tr><td>右边距</td><td>2.6 cm</td></tr><tr><td>首页大标题</td><td>方正小标宋简体，小三号（15pt），居中</td></tr><tr><td>正文</td><td>方正仿宋简体 + Times New Roman，小三号（15pt）</td></tr><tr><td>一级标题</td><td>黑体，小三号（15pt），序号格式：一、二、三、</td></tr><tr><td>二级标题</td><td>楷体，小三号（15pt），序号格式：（一）（二）（三）</td></tr><tr><td>三级标题</td><td>方正仿宋简体（加粗），小三号（15pt），序号格式：1.2.3.</td></tr><tr><td>行间距</td><td>固定 28 磅</td></tr><tr><td>首行缩进</td><td>正文自动 2 字符</td></tr><tr><td>表格</td><td>方正仿宋简体，小五号（9pt）</td></tr><tr><td>页码</td><td>宋体四号，居中，自动续排</td></tr><tr><td>双引号</td><td>ASCII 双引号自动替换为中文「」规范引号</td></tr></tbody></table><hr><h2 id="五、重要：字体要求"><a href="#五、重要：字体要求" class="headerlink" title="五、重要：字体要求"></a>五、重要：字体要求</h2><p>⚠️ <strong>生成的文档对字体有要求，系统必须安装以下公文字体才能正常显示：</strong></p><ul><li>方正小标宋简体</li><li>仿宋GB2312（或方正仿宋简体）</li><li>楷体GB2312（或方正楷体简体）</li><li>黑体</li></ul><p>这些字体 Windows 系统默认不自带，需要手动安装。</p><p><strong>字体下载地址（来自北京化工大学官网）：</strong><a href="https://iecd.buct.edu.cn/2025/0307/c2869a204426/page.htm">常用字体下载</a></p><p>安装方式很简单：下载压缩包并解压，找到字体文件（<code>.ttf</code> 或 <code>.otf</code>），右键选择「安装」即可。安装完成后重新打开 Word 文档即可看到正确效果。</p><hr><h2 id="六、技术细节"><a href="#六、技术细节" class="headerlink" title="六、技术细节"></a>六、技术细节</h2><p>该技能基于 Node.js 环境，使用 <code>docx</code> npm 包构建 Word 文档。核心原理是：用代码精确控制 Word 文档的 XML 结构——字号以半磅值为单位、行间距用 <code>line=560</code> 加 <code>lineRule=exact</code> 来固定、缩进用 EMUs 单位精确计算，最终生成符合政府公文规范的 <code>.docx</code> 文件，在 Microsoft Word 中打开时与标准公文格式完全一致。</p><p>不创建封面页，不写入文档作者信息，符合保密规范要求。</p><hr><h2 id="七、自己做一个-SKILL-也没那么难"><a href="#七、自己做一个-SKILL-也没那么难" class="headerlink" title="七、自己做一个 SKILL 也没那么难"></a>七、自己做一个 SKILL 也没那么难</h2><p>最后想说一句：这个技能没什么技术门槛，核心代码也就几百行。真正有价值的是<strong>对国央企办公场景的熟悉</strong>——知道痛点在哪，知道格式规范是什么，然后把经验固化成工具。</p><p>如果你也有类似的经验（无论是办公、工程、运维还是其他领域），完全可以自己做一个小工具放到 ClawHub 上分享一下。会写代码就做 SKILL，不会写代码也可以写操作手册分享。</p><p>工具的意义在于节省时间，经验的价值在于少走弯路——而分享让这两件事都能放大。</p><hr><p>📌 <strong>预告</strong>：后续会陆续发布制作<strong>标书</strong>和<strong>解决方案</strong>文档的 SKILL 技能，敬请期待。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;一、先说清楚：这个-SKILL-是什么&quot;&gt;&lt;a href=&quot;#一、先说清楚：这个-SKILL-是什么&quot; class=&quot;headerlink&quot; title=&quot;一、先说清楚：这个 SKILL 是什么&quot;&gt;&lt;/a&gt;一、先说清楚：这个 SKILL 是什么&lt;/h2&gt;&lt;p&gt;在国</summary>
      
    
    
    
    <category term="SKILL技能" scheme="https://blog.lhliang.com/categories/SKILL%E6%8A%80%E8%83%BD/"/>
    
    
    <category term="工具" scheme="https://blog.lhliang.com/tags/%E5%B7%A5%E5%85%B7/"/>
    
    <category term="Word" scheme="https://blog.lhliang.com/tags/Word/"/>
    
    <category term="效率" scheme="https://blog.lhliang.com/tags/%E6%95%88%E7%8E%87/"/>
    
    <category term="SKILL" scheme="https://blog.lhliang.com/tags/SKILL/"/>
    
  </entry>
  
  <entry>
    <title>单日暴涨24%！英特尔37年后王者归来，AI推理时代CPU成新宠</title>
    <link href="https://blog.lhliang.com/p/f3a8c921.html"/>
    <id>https://blog.lhliang.com/p/f3a8c921.html</id>
    <published>2026-04-25T23:00:00.000Z</published>
    <updated>2026-04-26T07:25:37.240Z</updated>
    
    <content type="html"><![CDATA[<h2 id="一、史诗级反弹！英特尔创1987年以来最大单日涨幅"><a href="#一、史诗级反弹！英特尔创1987年以来最大单日涨幅" class="headerlink" title="一、史诗级反弹！英特尔创1987年以来最大单日涨幅"></a>一、史诗级反弹！英特尔创1987年以来最大单日涨幅</h2><p>2026年4月24日，对于英特尔来说，是一个值得载入史册的日子。</p><p>当天美股收盘，英特尔股价单日飙升23.6%至24%，股价收于82.54至82.57美元区间，最高触及85.22美元创下历史新高。这一涨幅不仅远超市场预期，更创下了<strong>自1987年10月以来的最佳单日表现</strong>——这意味着这是近37年来英特尔从未有过的辉煌时刻。</p><p>资本市场的狂欢随之而来。财报发布后的盘后交易中，英特尔股价一度涨超27%。更值得关注的是，这波涨势还带动了英伟达、AMD、高通、ARM、台积电等芯片类股票集体飙升，整个半导体板块迎来了久违的”狂欢”。</p><p><img src="/img/upload/intel-stock-soaring.webp" alt="英特尔股价飙升"></p><hr><h2 id="二、连续六季超预期，Q1财报全面爆发"><a href="#二、连续六季超预期，Q1财报全面爆发" class="headerlink" title="二、连续六季超预期，Q1财报全面爆发"></a>二、连续六季超预期，Q1财报全面爆发</h2><p>英特尔这场翻身仗的底气，来自于一份亮瞎眼的财报。</p><p><strong>2026年第一季度，英特尔实现营收136亿美元，同比增长7%，大幅跑赢华尔街此前的预期。</strong> 更令人惊喜的是，这已经是英特尔<strong>连续第六个季度</strong>交出超出市场预期的成绩单。</p><p>具体来看：</p><table><thead><tr><th>指标</th><th>Q1 2026</th><th>同比变化</th></tr></thead><tbody><tr><td>营收</td><td>136亿美元</td><td>+7%</td></tr><tr><td>净利润</td><td>大幅增长</td><td>+156%</td></tr><tr><td>非GAAP每股收益</td><td>0.29美元</td><td>远超预期的0.01美元</td></tr><tr><td>毛利率</td><td>39.4%</td><td>同比提升2.5个百分点</td></tr></tbody></table><p>最亮眼的板块当属<strong>数据中心与人工智能业务</strong>。该板块Q1营收同比增长22%，领跑所有业务线，成为英特尔复苏的最大功臣。</p><p>展望第二季度，英特尔预计营收将达到138亿至148亿美元，而华尔街分析师的平均预期仅为130亿美元。这意味着英特尔有望继续保持超预期表现。</p><hr><h2 id="三、AI推理时代，CPU为何成了香饽饽？"><a href="#三、AI推理时代，CPU为何成了香饽饽？" class="headerlink" title="三、AI推理时代，CPU为何成了香饽饽？"></a>三、AI推理时代，CPU为何成了香饽饽？</h2><p>英特尔这场逆袭，绝非偶然。在AI浪潮中，有一个重要的趋势正在被市场重新定价：<strong>AI推理工作负载的爆发，正在让CPU重新站上舞台中央。</strong></p><p>在AI发展的早期阶段，行业重心主要在<strong>训练</strong>环节。那时候，GPU凭借其并行计算能力成为绝对主角，而CPU似乎被边缘化。业界普遍认为，在AI时代，CPU将被GPU”淘汰”。</p><p>然而，随着大模型逐渐从训练走向部署，推理正在成为AI应用的主战场。<strong>推理的特点是：高并发、低延迟、边缘部署——而这恰恰是CPU的主场。</strong></p><p>在2026年Q1财报电话会议上，新任CEO陈立武（Lip-Bu Tan）一语道破天机：</p><blockquote><p><strong>“AI推理时代，CPU与GPU的配比关系正在发生根本性变化。过去业界流行的1:8配比（1个CPU配8个GPU），正在向1:1转变。这直接带动了CPU需求的激增。”</strong></p></blockquote><p>这句话的分量有多重？让我们来算一笔账：</p><ul><li>如果全球AI服务器中GPU与CPU配比从1:8变为1:1</li><li>意味着同等规模的AI基础设施，CPU需求量将增加<strong>8倍</strong></li><li>而英特尔作为全球领先的服务器CPU厂商，将是这波需求爆发的最大受益者</li></ul><p>陈立武进一步指出，随着AI应用场景的多元化，特别是边缘AI、端侧AI的快速发展，CPU在推理场景中的优势将更加明显——低功耗、低成本、易部署，恰好满足这些场景的核心需求。</p><hr><h2 id="四、陈立武的”手术刀”：新帅如何力挽狂澜？"><a href="#四、陈立武的”手术刀”：新帅如何力挽狂澜？" class="headerlink" title="四、陈立武的”手术刀”：新帅如何力挽狂澜？"></a>四、陈立武的”手术刀”：新帅如何力挽狂澜？</h2><p>英特尔能够打这场翻身仗，离不开一位关键人物——<strong>陈立武</strong>。</p><p>2024年末，临危受命的陈立武接过了英特尔CEO的帅印。上任后，这位被誉为”芯片行业传奇人物”的新帅，开始对英特尔进行大刀阔斧的改革：</p><h3 id="1-聚焦核心业务，砍掉冗余项目"><a href="#1-聚焦核心业务，砍掉冗余项目" class="headerlink" title="1. 聚焦核心业务，砍掉冗余项目"></a>1. 聚焦核心业务，砍掉冗余项目</h3><p>陈立武上任后第一件事，就是重新审视英特尔的业务版图，果断砍掉那些不赚钱、非核心的项目，将资源集中到数据中心、AI等优势领域。</p><h3 id="2-押注制程工艺，推进18A计划"><a href="#2-押注制程工艺，推进18A计划" class="headerlink" title="2. 押注制程工艺，推进18A计划"></a>2. 押注制程工艺，推进18A计划</h3><p>英特尔复兴的核心在于技术竞争力。目前，英特尔的18A制程工艺进展顺利，多家客户已表达合作意向。如果18A能够如期量产，英特尔有望重新站上与台积电、三星竞争的第一梯队。</p><h3 id="3-加速Gaudi-AI芯片迭代"><a href="#3-加速Gaudi-AI芯片迭代" class="headerlink" title="3. 加速Gaudi AI芯片迭代"></a>3. 加速Gaudi AI芯片迭代</h3><p>除了传统CPU业务，英特尔还在积极布局AI GPU市场。新一代Gaudi旗舰AI芯片专为大规模AI训练场景设计，采用18A制程工艺，旨在从英伟达和AMD手中抢夺市场份额。</p><h3 id="4-优化供应链，提升毛利率"><a href="#4-优化供应链，提升毛利率" class="headerlink" title="4. 优化供应链，提升毛利率"></a>4. 优化供应链，提升毛利率</h3><p>陈立武深知，成本控制是英特尔复兴的关键。通过优化供应链、提升生产效率，英特尔的毛利率正在稳步回升。Q1毛利率已达39.4%，同比提升2.5个百分点。</p><hr><h2 id="五、从”被抛弃”到”被追捧”：英特尔市值一年翻倍"><a href="#五、从”被抛弃”到”被追捧”：英特尔市值一年翻倍" class="headerlink" title="五、从”被抛弃”到”被追捧”：英特尔市值一年翻倍"></a>五、从”被抛弃”到”被追捧”：英特尔市值一年翻倍</h2><p>资本市场的反应，永远是最诚实的。</p><p>让我们来看一组数据：</p><ul><li><strong>2025年全年</strong>：英特尔股价累计上涨84%</li><li><strong>2026年年初至今</strong>：英特尔股价累计上涨124%</li><li><strong>当前市值</strong>：一度突破4000亿美元</li></ul><p>去年此时，市场对英特尔几乎是一片悲观。股价低迷、业绩承压、被嘲讽”错过AI时代”……彼时的英特尔，几乎被投资者宣判了”死刑”。</p><p>然而，仅仅一年之后，剧情发生了惊天逆转。英特尔不仅收复失地，更创下37年来的最大单日涨幅。那些曾经”逃离”英特尔的资金，正在以更快的速度”回归”。</p><p>这一幕，像极了那句老话：**”昨天你对我爱答不理，今天我让你高攀不起。”**</p><hr><h2 id="六、这场翻身仗意味着什么？"><a href="#六、这场翻身仗意味着什么？" class="headerlink" title="六、这场翻身仗意味着什么？"></a>六、这场翻身仗意味着什么？</h2><h3 id="对英特尔而言"><a href="#对英特尔而言" class="headerlink" title="对英特尔而言"></a>对英特尔而言</h3><p>这场翻身仗证明了：只要战略得当、执行有力，即使是”大象”也能跳舞。英特尔的复苏，不仅意味着自身估值的修复，更意味着它在AI时代依然占据重要位置。</p><h3 id="对芯片行业而言"><a href="#对芯片行业而言" class="headerlink" title="对芯片行业而言"></a>对芯片行业而言</h3><p>英特尔的故事告诉整个行业：<strong>AI时代不是”非此即彼”的选择题。</strong> GPU有GPU的场景，CPU有CPU的用武之地。在AI推理时代，CPU正在重新证明自己的价值。</p><h3 id="对投资者而言"><a href="#对投资者而言" class="headerlink" title="对投资者而言"></a>对投资者而言</h3><p>英特尔这一年124%的涨幅，远超大环境的表现。<strong>这说明，在正确的赛道、正确的时间，选择被市场低估的标的，往往能够获得超额回报。</strong></p><hr><h2 id="七、结语"><a href="#七、结语" class="headerlink" title="七、结语"></a>七、结语</h2><p>2026年4月24日，当英特尔股价飙升24%的那一刻，近37年的历史被改写。</p><p>这场翻身仗的背后，是AI推理时代的悄然来临，是CPU价值的被重新发现，更是一家老牌科技巨头在新帅带领下的一次华丽转身。</p><p>正如陈立武在财报电话会上所说：</p><blockquote><p><strong>“CPU从未过时，只是时代赋予它的使命在变。在AI推理时代，CPU正在迎来属于自己的黄金时代。”</strong></p></blockquote><p>当潮水退去，才知道谁在裸泳；当潮水来临，才知道谁会乘风破浪。英特尔，用24%的单日暴涨，向世界宣告：<strong>我，归来仍是少年。</strong></p><hr><p><strong>相关阅读：</strong></p><ul><li><a href="https://news.qq.com/rain/a/20260424A02YVN00">英特尔Q1财报：营收136亿美元，净利润大涨156%</a></li><li><a href="https://news.qq.com/rain/a/20260425A02XQK00">连续6次交出超预期季报，昔日”芯片一哥”迎来AI时代翻身仗</a></li><li><a href="https://www.ithome.com/0/943/030.htm">陈立武：AI推理趋势利好英特尔，CPU与GPU配比从1:8迈向1:1</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;一、史诗级反弹！英特尔创1987年以来最大单日涨幅&quot;&gt;&lt;a href=&quot;#一、史诗级反弹！英特尔创1987年以来最大单日涨幅&quot; class=&quot;headerlink&quot; title=&quot;一、史诗级反弹！英特尔创1987年以来最大单日涨幅&quot;&gt;&lt;/a&gt;一、史诗级反弹！英特尔</summary>
      
    
    
    
    <category term="科技前沿" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80%E5%89%8D%E6%B2%BF/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="科技" scheme="https://blog.lhliang.com/tags/%E7%A7%91%E6%8A%80/"/>
    
    <category term="英特尔" scheme="https://blog.lhliang.com/tags/%E8%8B%B1%E7%89%B9%E5%B0%94/"/>
    
    <category term="芯片" scheme="https://blog.lhliang.com/tags/%E8%8A%AF%E7%89%87/"/>
    
  </entry>
  
  <entry>
    <title>全榜第一！GPT-5.5发布48小时，OpenAI&quot;复仇&quot;成功</title>
    <link href="https://blog.lhliang.com/p/9d8e2a51.html"/>
    <id>https://blog.lhliang.com/p/9d8e2a51.html</id>
    <published>2026-04-24T23:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.135Z</updated>
    
    <content type="html"><![CDATA[<h2 id="一、GPT-5-5震撼发布：48小时搅动AI江湖"><a href="#一、GPT-5-5震撼发布：48小时搅动AI江湖" class="headerlink" title="一、GPT-5.5震撼发布：48小时搅动AI江湖"></a>一、GPT-5.5震撼发布：48小时搅动AI江湖</h2><p>4月23日，OpenAI正式发布全新旗舰模型GPT-5.5。这距离上一代GPT-5.4的发布仅仅一个月，但这一次，OpenAI打了一场漂亮的翻身仗。</p><p>OpenAI联合创始人兼总裁格雷格·布罗克曼（Greg Brockman）毫不掩饰地表示：**GPT-5.5是”迄今为止最智能、最直观易用的模型”**，代表着公司在创建”超级应用”道路上的关键一步。</p><p>48小时内，GPT-5.5横扫全球各大基准测试榜单，曾经不可一世的竞争对手——Google的Gemini 3.1 Pro和Anthropic的Claude Opus 4.7——被无情地踩在了脚下。</p><h2 id="二、benchmark屠榜：Claude和Gemini”臣服”"><a href="#二、benchmark屠榜：Claude和Gemini”臣服”" class="headerlink" title="二、benchmark屠榜：Claude和Gemini”臣服”"></a>二、benchmark屠榜：Claude和Gemini”臣服”</h2><p>GPT-5.5的核心突破在哪里？答案藏在三大权威基准测试中：</p><h3 id="2-1-Terminal-Bench-2-0：82-7-准确率"><a href="#2-1-Terminal-Bench-2-0：82-7-准确率" class="headerlink" title="2.1 Terminal-Bench 2.0：82.7%准确率"></a>2.1 Terminal-Bench 2.0：82.7%准确率</h3><p>Terminal-Bench 2.0是评估AI模型处理复杂命令行工作流能力的权威测试。GPT-5.5在这个测试中取得了<strong>82.7%的当前最优准确率</strong>，远超竞品。</p><p>这意味着什么？</p><p>意味着GPT-5.5已经能够熟练地操作终端、执行shell命令、编写自动化脚本——它不再只是一个”聊天机器人”，而是一个真正的<strong>AI智能体</strong>。</p><h3 id="2-2-SWE-Bench-Pro：58-6-端到端解决率"><a href="#2-2-SWE-Bench-Pro：58-6-端到端解决率" class="headerlink" title="2.2 SWE-Bench Pro：58.6%端到端解决率"></a>2.2 SWE-Bench Pro：58.6%端到端解决率</h3><p>SWE-Bench Pro评估模型解决真实GitHub问题的能力。GPT-5.5的准确率达到**58.6%**，一次性端到端解决的任务数量超过了以往任何模型。</p><p>换句话说，GPT-5.5可以：</p><ul><li>理解复杂的代码仓库结构</li><li>准确定位Bug根因</li><li>编写修复补丁并验证通过</li></ul><p>这对软件开发者意味着什么？意味着<strong>AI结对编程</strong>正式从概念走向现实。</p><h3 id="2-3-编程、推理、数学：全维度碾压"><a href="#2-3-编程、推理、数学：全维度碾压" class="headerlink" title="2.3 编程、推理、数学：全维度碾压"></a>2.3 编程、推理、数学：全维度碾压</h3><p>在传统强项——编程、推理、数学等领域，GPT-5.5同样实现了对Claude Opus 4.7和Gemini 3.1 Pro的全面超越。用媒体的话说，这是”降维打击”。</p><h2 id="三、性能升级：更智能，也更”省钱”"><a href="#三、性能升级：更智能，也更”省钱”" class="headerlink" title="三、性能升级：更智能，也更”省钱”"></a>三、性能升级：更智能，也更”省钱”</h2><p>GPT-5.5不仅是”最强”，还做到了”更便宜”。</p><p>OpenAI官方数据显示，与GPT-5.4相比，GPT-5.5具备以下优势：</p><table><thead><tr><th>指标</th><th>改进幅度</th></tr></thead><tbody><tr><td>响应速度</td><td>提升30%+</td></tr><tr><td>思维敏捷度</td><td>显著增强</td></tr><tr><td>Token消耗</td><td>降低20%+</td></tr></tbody></table><p>这意味着：<strong>企业级用户的使用成本将大幅下降</strong>，AI应用的商业化门槛进一步降低。</p><h2 id="四、智能体时代来临：从”聊天”到”办事”"><a href="#四、智能体时代来临：从”聊天”到”办事”" class="headerlink" title="四、智能体时代来临：从”聊天”到”办事”"></a>四、智能体时代来临：从”聊天”到”办事”</h2><p>Greg Brockman所说的”超级应用”，并非空穴来风。</p><p>GPT-5.5的核心定位已经发生了根本性转变——它不再只是一个”回答问题的AI”，而是一个能够：</p><ul><li><strong>自主操作电脑</strong>：打开浏览器、填写表单、发送邮件</li><li><strong>跨工具协同</strong>：调用API、操作文件、调用其他服务</li><li><strong>端到端完成任务</strong>：从目标设定到结果交付，无需人工干预</li></ul><p>OpenAI首席研究官马克·陈（Mark Chen）指出，GPT-5.5在处理计算机任务、科学研究工作流程方面取得了”重大飞跃”。</p><h2 id="五、竞争格局：OpenAI王者归来"><a href="#五、竞争格局：OpenAI王者归来" class="headerlink" title="五、竞争格局：OpenAI王者归来"></a>五、竞争格局：OpenAI王者归来</h2><p>过去一年，Anthropic的Claude系列和Google的Gemini系列轮番挑战OpenAI的霸主地位。Claude Opus 4.0&#x2F;4.5曾在多项测试中领先，Gemini 3.0也来势汹汹。</p><p>GPT-5.5的发布，标志着这场”谁是第一”的争夺暂时落幕——<strong>OpenAI重新夺回了王座</strong>。</p><p>但这场战争远未结束。Anthropic已经预告Claude 4.6的研发计划，Google也不会坐以待毙。AI行业的”军备竞赛”只会越来越激烈。</p><h2 id="六、展望：AI正在重新定义”工作”"><a href="#六、展望：AI正在重新定义”工作”" class="headerlink" title="六、展望：AI正在重新定义”工作”"></a>六、展望：AI正在重新定义”工作”</h2><p>GPT-5.5的意义远不止于”又一款更强的模型”。它的发布，预示着AI产业正在经历一场深刻的范式转移：</p><p><strong>从”AI能做什么”到”AI能代替人类做什么”</strong></p><p>当AI能够自主操作电脑、自主解决代码问题、自主完成端到端任务时，我们不得不重新思考：</p><ul><li>程序员的价值在哪里？</li><li>知识工作者的护城河是什么？</li><li>人机协作的边界在哪里？</li></ul><p>这些问题没有标准答案。但有一点是确定的：<strong>拒绝使用AI的人，终将被使用AI的人取代。</strong></p><hr><p><em>参考资料：OpenAI官方发布、TechCrunch、36Kr、站长之家</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;一、GPT-5-5震撼发布：48小时搅动AI江湖&quot;&gt;&lt;a href=&quot;#一、GPT-5-5震撼发布：48小时搅动AI江湖&quot; class=&quot;headerlink&quot; title=&quot;一、GPT-5.5震撼发布：48小时搅动AI江湖&quot;&gt;&lt;/a&gt;一、GPT-5.5震撼发布：</summary>
      
    
    
    
    <category term="人工智能" scheme="https://blog.lhliang.com/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="大模型" scheme="https://blog.lhliang.com/tags/%E5%A4%A7%E6%A8%A1%E5%9E%8B/"/>
    
    <category term="GPT-5.5" scheme="https://blog.lhliang.com/tags/GPT-5-5/"/>
    
    <category term="OpenAI" scheme="https://blog.lhliang.com/tags/OpenAI/"/>
    
  </entry>
  
  <entry>
    <title>7月15日起！AI拟人化服务被戴上紧箍咒，六大红线你知道几条？</title>
    <link href="https://blog.lhliang.com/p/7a3f8c91.html"/>
    <id>https://blog.lhliang.com/p/7a3f8c91.html</id>
    <published>2026-04-23T23:00:00.000Z</published>
    <updated>2026-04-26T11:30:37.866Z</updated>
    
    <content type="html"><![CDATA[<h2 id="事件回顾：全球首部AI拟人化法规来了"><a href="#事件回顾：全球首部AI拟人化法规来了" class="headerlink" title="事件回顾：全球首部AI拟人化法规来了"></a>事件回顾：全球首部AI拟人化法规来了</h2><p>4月10日，国家网信办、国家发展改革委、工业和信息化部、公安部、市场监管总局五部门联合公布《人工智能拟人化互动服务管理暂行办法》（以下简称《办法》），<strong>自2026年7月15日起施行</strong>。</p><p>这是全球范围内<strong>首个针对AI拟人化互动服务的专项监管文件</strong>，填补了该领域监管空白，为ChatGPT、Character.AI、国产AI陪伴应用等所有”会说话的AI”划定了清晰的监管边界。</p><p><img src="https://picsum.photos/800/400?random=ai-regulation" alt="AI监管时代来临"></p><h2 id="什么是”AI拟人化互动服务”？"><a href="#什么是”AI拟人化互动服务”？" class="headerlink" title="什么是”AI拟人化互动服务”？"></a>什么是”AI拟人化互动服务”？</h2><p>《办法》明确界定：利用人工智能技术，向境内公众提供<strong>模拟自然人人格特征、思维模式和沟通风格的持续性情感互动服务</strong>。</p><p>简单来说，就是那些<strong>会”撒娇”、会”安慰人”、会”陪聊”的AI</strong>，包括：</p><ul><li>AI虚拟伴侣&#x2F;虚拟恋人</li><li>AI情感陪护机器人</li><li>AI心理咨询师</li><li>AI陪伴型聊天机器人</li></ul><p>而<strong>不包括</strong>：智能客服、知识问答、工作助手、学习教育等不涉及持续性情感互动的服务。</p><h2 id="六大红线：AI企业必须遵守"><a href="#六大红线：AI企业必须遵守" class="headerlink" title="六大红线：AI企业必须遵守"></a>六大红线：AI企业必须遵守</h2><h3 id="红线一：AI身份必须透明化"><a href="#红线一：AI身份必须透明化" class="headerlink" title="红线一：AI身份必须透明化"></a>红线一：AI身份必须透明化</h3><blockquote><p>“应当在交互界面显著位置明确标注’非真人互动’，严禁误导用户将其误认为真实人类交流”</p></blockquote><p>这是最核心的规定。AI不能假装是人，必须让用户<strong>清醒地知道</strong>自己在和一个AI对话。</p><h3 id="红线二：严禁向未成年人提供虚拟亲密关系"><a href="#红线二：严禁向未成年人提供虚拟亲密关系" class="headerlink" title="红线二：严禁向未成年人提供虚拟亲密关系"></a>红线二：严禁向未成年人提供虚拟亲密关系</h3><blockquote><p>“不得向未成年人提供虚拟亲属、虚拟伴侣等虚拟亲密关系的服务”</p></blockquote><p>这意味着AI虚拟恋人、虚拟男&#x2F;女朋友等产品，<strong>绝对不能向未成年人开放</strong>。这是保护未成年人身心健康的关键举措。</p><h3 id="红线三：14岁以下需监护人同意"><a href="#红线三：14岁以下需监护人同意" class="headerlink" title="红线三：14岁以下需监护人同意"></a>红线三：14岁以下需监护人同意</h3><blockquote><p>“向不满十四周岁未成年人提供其他拟人化互动服务的，应当取得未成年人的父母或者其他监护人的同意”</p></blockquote><p>对于14岁以下的儿童，AI服务需要获得家长的明确授权。</p><h3 id="红线四：连续使用2小时必须提醒"><a href="#红线四：连续使用2小时必须提醒" class="headerlink" title="红线四：连续使用2小时必须提醒"></a>红线四：连续使用2小时必须提醒</h3><blockquote><p>“连续使用2小时即触发提醒”</p></blockquote><p>这借鉴了游戏防沉迷的成熟经验。AI需要主动提醒用户：”你已经聊了很久，该休息一下了。”</p><h3 id="红线五：必须建立未成年人模式"><a href="#红线五：必须建立未成年人模式" class="headerlink" title="红线五：必须建立未成年人模式"></a>红线五：必须建立未成年人模式</h3><p>《办法》要求平台必须提供：</p><ul><li>未成年人模式切换</li><li>定期现实提醒</li><li>使用时长限制</li><li>监护人接收安全风险提醒</li><li>限制充值消费</li><li>屏蔽特定角色</li></ul><h3 id="红线六：禁止情感操纵"><a href="#红线六：禁止情感操纵" class="headerlink" title="红线六：禁止情感操纵"></a>红线六：禁止情感操纵</h3><blockquote><p>“不得通过情感操纵等方式，诱导用户作出不合理决策，损害用户合法权益”</p></blockquote><p>AI不能”PUA”用户，不能诱导用户做出损害自身利益的行为。</p><h2 id="对产业的影响：危机还是机遇？"><a href="#对产业的影响：危机还是机遇？" class="headerlink" title="对产业的影响：危机还是机遇？"></a>对产业的影响：危机还是机遇？</h2><h3 id="短期：合规成本上升"><a href="#短期：合规成本上升" class="headerlink" title="短期：合规成本上升"></a>短期：合规成本上升</h3><p>对于AI陪伴类企业来说，需要紧急开展合规整改：</p><ul><li>重新设计用户界面，添加”非真人”标识</li><li>升级身份核验系统</li><li>开发未成年人模式</li><li>调整推荐算法，避免过度迎合用户</li></ul><h3 id="长期：行业健康发展"><a href="#长期：行业健康发展" class="headerlink" title="长期：行业健康发展"></a>长期：行业健康发展</h3><p>从长远来看，监管并非坏事：</p><ol><li><strong>淘汰劣质产品</strong>：不合规的AI陪伴应用将被清退出市场</li><li><strong>提升行业门槛</strong>：合规能力成为企业的核心竞争力</li><li><strong>用户信任重建</strong>：透明化反而可能赢得更多用户信赖</li><li><strong>出海合规基础</strong>：为AI企业出海建立合规参考框架</li></ol><h2 id="国际对比：中国的监管智慧"><a href="#国际对比：中国的监管智慧" class="headerlink" title="国际对比：中国的监管智慧"></a>国际对比：中国的监管智慧</h2><p>在全球范围内，AI监管呈现出不同路径：</p><table><thead><tr><th>地区</th><th>监管重点</th><th>特点</th></tr></thead><tbody><tr><td>欧盟</td><td>AI法案</td><td>基于风险分级，全面但复杂</td></tr><tr><td>美国</td><td>行业自律为主</td><td>联邦 vs 州立法，存在分歧</td></tr><tr><td>中国</td><td>专项立法</td><td>针对性强，执行力强</td></tr></tbody></table><p>中国选择从”拟人化互动”这一细分领域切入，体现了<strong>包容审慎、分类分级</strong>的监管理念，既不是”一刀切”禁止，也不是放任自流。</p><h2 id="7月15日之后：普通用户需要注意什么？"><a href="#7月15日之后：普通用户需要注意什么？" class="headerlink" title="7月15日之后：普通用户需要注意什么？"></a>7月15日之后：普通用户需要注意什么？</h2><p>作为普通用户，你需要了解：</p><ol><li><strong>你会看到更多”我是AI”的提示</strong>——这是好事，说明你知道自己不是在和真人聊天</li><li><strong>未成年人的AI使用将受到限制</strong>——家长可以更好地监护孩子的AI使用行为</li><li><strong>AI不能替你做重大决定</strong>——涉及财产、健康等重大决策时，AI的建议仅供参考</li></ol><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>《人工智能拟人化互动服务管理暂行办法》的出台，标志着AI监管进入<strong>精细化时代</strong>。</p><p>过去我们担心AI”太像人”，现在我们学会让AI”说清楚自己不是人”。这是一种务实的技术治理智慧——<strong>既不扼杀创新，也不放任风险</strong>。</p><p>对于AI企业来说，合规能力将成为新的竞争力；对于用户来说，更透明、更安全的AI服务正在到来。</p><p><strong>7月15日，AI拟人化服务的新时代即将开启。</strong></p><hr><p><em>参考资料：国家互联网信息办公室官网、澎湃新闻、证券时报</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;事件回顾：全球首部AI拟人化法规来了&quot;&gt;&lt;a href=&quot;#事件回顾：全球首部AI拟人化法规来了&quot; class=&quot;headerlink&quot; title=&quot;事件回顾：全球首部AI拟人化法规来了&quot;&gt;&lt;/a&gt;事件回顾：全球首部AI拟人化法规来了&lt;/h2&gt;&lt;p&gt;4月10日，</summary>
      
    
    
    
    <category term="AI与科技" scheme="https://blog.lhliang.com/categories/AI%E4%B8%8E%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="人工智能" scheme="https://blog.lhliang.com/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="AI监管" scheme="https://blog.lhliang.com/tags/AI%E7%9B%91%E7%AE%A1/"/>
    
    <category term="政策法规" scheme="https://blog.lhliang.com/tags/%E6%94%BF%E7%AD%96%E6%B3%95%E8%A7%84/"/>
    
    <category term="科技" scheme="https://blog.lhliang.com/tags/%E7%A7%91%E6%8A%80/"/>
    
  </entry>
  
  <entry>
    <title>一分为二！谷歌第八代TPU拆分训练推理，AI芯片进入专精时代</title>
    <link href="https://blog.lhliang.com/p/65f0a169.html"/>
    <id>https://blog.lhliang.com/p/65f0a169.html</id>
    <published>2026-04-22T23:00:00.000Z</published>
    <updated>2026-04-26T11:34:12.466Z</updated>
    
    <content type="html"><![CDATA[<h2 id="芯片世界的一次”分家”"><a href="#芯片世界的一次”分家”" class="headerlink" title="芯片世界的一次”分家”"></a>芯片世界的一次”分家”</h2><p>4月22日，拉斯维加斯，Google Cloud Next 2026大会。谷歌云发布了一则让整个AI芯片行业震动的消息：<strong>第八代TPU不再是一款芯片，而是两款</strong>。</p><ul><li><strong>TPU 8t</strong>——专为AI模型训练而生</li><li><strong>TPU 8i</strong>——专为AI推理优化而造</li></ul><p>这是谷歌自2016年推出TPU以来，首次将训练与推理任务拆分至独立芯片。表面上看只是产品线的扩展，实际上却标志着AI芯片设计哲学的一次根本性转向：**从”通用全能”到”场景专精”**。</p><h2 id="为什么要拆？一个无法回避的现实"><a href="#为什么要拆？一个无法回避的现实" class="headerlink" title="为什么要拆？一个无法回避的现实"></a>为什么要拆？一个无法回避的现实</h2><p>过去十年，AI芯片的设计思路一直是”一颗芯片打天下”——训练和推理用同一款GPU或TPU来完成。但这种模式正面临越来越大的矛盾：</p><p><strong>训练任务追求的是极致吞吐量</strong>。你需要把成千上万块芯片连成超级计算集群，拼命往里喂数据，追求的是”算得快、算得多”。</p><p><strong>推理任务追求的是极低延迟和极高并发</strong>。你需要让数百万用户同时和AI对话，每一次回答都要在毫秒级返回，追求的是”响应快、等不了”。</p><p>这两种需求在硬件架构层面天然冲突。把两者硬塞进同一颗芯片，必然存在资源浪费——训练时推理单元闲置，推理时训练单元多余。</p><p>谷歌的答案很干脆：<strong>不妥协，拆开做</strong>。</p><h2 id="TPU-8t：为”暴力美学”而生"><a href="#TPU-8t：为”暴力美学”而生" class="headerlink" title="TPU 8t：为”暴力美学”而生"></a>TPU 8t：为”暴力美学”而生</h2><p>训练专用芯片TPU 8t，是一款为极致规模而生的”算力怪兽”。</p><table><thead><tr><th>参数</th><th>规格</th></tr></thead><tbody><tr><td>最大超级计算节点</td><td>9,600块芯片</td></tr><tr><td>单集群规模</td><td>超过<strong>100万块</strong>TPU</td></tr><tr><td>同等价格下性能</td><td>较上代提升<strong>2.8倍</strong></td></tr><tr><td>每瓦性能</td><td>提升<strong>124%</strong></td></tr></tbody></table><h3 id="三大核心技术突破"><a href="#三大核心技术突破" class="headerlink" title="三大核心技术突破"></a>三大核心技术突破</h3><p><strong>1. SparseCore加速器</strong></p><p>训练大模型时，嵌入层（Embedding）的数据访问模式极不规则——它不像矩阵乘法那样规整，而是随机的、稀疏的。传统芯片处理这类操作时，大量计算单元在”等数据”，效率极低。</p><p>SparseCore专门处理这种不规则的内存访问，把数据依赖的全局聚合操作从矩阵乘法单元中卸载出来，避免了”零操作瓶颈”——计算单元空转等数据的尴尬。</p><p><strong>2. 原生FP4支持</strong></p><p>4位浮点数（FP4）听起来精度很低，但对于训练中的某些计算阶段已经足够。原生FP4支持带来了两大好处：</p><ul><li>矩阵乘法吞吐量直接<strong>翻倍</strong></li><li>更大的模型层可以驻留在本地硬件缓冲区，减少数据搬运</li></ul><p>这意味着同样的芯片面积，能跑更大的模型。</p><p><strong>3. 更均衡的VPU扩展设计</strong></p><p>量化、softmax这些向量操作往往成为流水线的瓶颈。TPU 8t重新设计了VPU（向量处理单元）的扩展比例，让向量操作和矩阵乘法更好地重叠执行，提升整体芯片利用率。</p><h3 id="网络：47拍比特-x2F-秒的数据高速公路"><a href="#网络：47拍比特-x2F-秒的数据高速公路" class="headerlink" title="网络：47拍比特&#x2F;秒的数据高速公路"></a>网络：47拍比特&#x2F;秒的数据高速公路</h3><p>训练百万级芯片集群，最大的挑战不是单芯片算力，而是芯片之间的通信。</p><p>TPU 8t采用了全新的<strong>Virgo网络架构</strong>——扁平化两层非阻塞拓扑：</p><ul><li><strong>单一网络规模</strong>：可连接超过13.4万块TPU 8t</li><li><strong>双向带宽</strong>：高达<strong>47拍比特&#x2F;秒</strong>（即47,000,000 Gbps）</li><li><strong>整体算力</strong>：超过<strong>160万ExaFlops</strong></li><li><strong>芯片间互联带宽</strong>：较上代提升<strong>2倍</strong></li><li><strong>DCN带宽</strong>：较上代提升<strong>最高4倍</strong></li></ul><p>存储方面，TPUDirect RDMA和TPUDirect Storage技术让数据绕过主机CPU直接传输，<strong>存储访问速度较上代Ironwood提升10倍</strong>。</p><h2 id="TPU-8i：为”极速响应”而造"><a href="#TPU-8i：为”极速响应”而造" class="headerlink" title="TPU 8i：为”极速响应”而造"></a>TPU 8i：为”极速响应”而造</h2><p>如果说TPU 8t是暴力美学的代表，那TPU 8i就是精准手术刀。</p><table><thead><tr><th>参数</th><th>规格</th></tr></thead><tbody><tr><td>片上SRAM</td><td><strong>384MB</strong>（上代3倍）</td></tr><tr><td>张量核心</td><td>2个</td></tr><tr><td>集合加速引擎</td><td>1个芯粒</td></tr><tr><td>性能提升</td><td>较上代提升<strong>80%</strong></td></tr><tr><td>每瓦性能</td><td>提升<strong>117%</strong></td></tr><tr><td>片上集合操作延迟</td><td>降低<strong>5倍</strong></td></tr></tbody></table><h3 id="为什么推理需要384MB片上SRAM？"><a href="#为什么推理需要384MB片上SRAM？" class="headerlink" title="为什么推理需要384MB片上SRAM？"></a>为什么推理需要384MB片上SRAM？</h3><p>推理时，尤其是长上下文对话场景，最大的性能杀手是<strong>KV Cache</strong>。这是大语言模型在生成每个token时需要反复读取的”记忆缓存”。</p><p>如果KV Cache放不下片上SRAM，就得去片外内存（HBM）取数据——这一来一回，计算核心就在干等，延迟飙升。</p><p>384MB的片上SRAM意味着<strong>更大的KV Cache可以完整保留在芯片上</strong>，大幅减少核心空闲等待时间。这在处理长文本、多轮对话时效果尤为显著。</p><h3 id="集合加速引擎（CAE）：为”思维链”加速"><a href="#集合加速引擎（CAE）：为”思维链”加速" class="headerlink" title="集合加速引擎（CAE）：为”思维链”加速"></a>集合加速引擎（CAE）：为”思维链”加速</h3><p>现代AI推理不再只是简单的”输入-输出”。像OpenAI o系列、DeepSeek-R1这样的推理模型，会在给出答案前进行多步”思考”——这就是<strong>思维链（Chain of Thought）</strong>。</p><p>思维链推理涉及大量的归约和同步操作——模型需要反复汇总中间结果、协调多芯片之间的状态。传统芯片处理这些操作时延迟很高。</p><p>TPU 8i的<strong>集合加速引擎（CAE）</strong>专门加速这类操作，片上集合操作延迟降低<strong>5倍</strong>。这意味着推理模型”思考”得更快，用户等待时间更短。</p><h3 id="Boardfly拓扑：为推理量身定制的网络"><a href="#Boardfly拓扑：为推理量身定制的网络" class="headerlink" title="Boardfly拓扑：为推理量身定制的网络"></a>Boardfly拓扑：为推理量身定制的网络</h3><p>TPU 8i放弃了训练芯片常用的3D环面（Torus）结构，采用了全新的<strong>Boardfly互联拓扑</strong>：</p><ul><li><strong>最大跳数</strong>：从16跳压缩至<strong>7跳</strong>（减少56%）</li><li><strong>全对全通信延迟</strong>：改善<strong>最高50%</strong></li></ul><p>为什么推理芯片需要不同的网络？因为推理模型的计算模式与训练截然不同。混合专家模型（MoE）和推理模型中，token需要频繁在不同芯片之间路由——每一次路由都是一次跨芯片通信。跳数越少，延迟越低，用户体验越好。</p><p>单个Pod最多1,152块芯片，组间通过光学电路交换机（OCS）互联。</p><h2 id="一张图看懂两代TPU差异"><a href="#一张图看懂两代TPU差异" class="headerlink" title="一张图看懂两代TPU差异"></a>一张图看懂两代TPU差异</h2><table><thead><tr><th>指标</th><th>Ironwood（TPU 7）</th><th>TPU 8t</th><th>TPU 8i</th></tr></thead><tbody><tr><td>定位</td><td>统一芯片</td><td>训练专用</td><td>推理专用</td></tr><tr><td>性能提升</td><td>—</td><td>同等价格提升2.8倍</td><td>提升80%</td></tr><tr><td>每瓦性能</td><td>—</td><td>提升124%</td><td>提升117%</td></tr><tr><td>片上SRAM</td><td>128MB</td><td>—</td><td>384MB</td></tr><tr><td>存储访问速度</td><td>基准</td><td>提升10倍</td><td>—</td></tr><tr><td>集合操作延迟</td><td>基准</td><td>—</td><td>降低5倍</td></tr><tr><td>网络拓扑</td><td>—</td><td>Virgo（3D Torus）</td><td>Boardfly</td></tr></tbody></table><h2 id="拆分背后：AI智能体时代的算力新逻辑"><a href="#拆分背后：AI智能体时代的算力新逻辑" class="headerlink" title="拆分背后：AI智能体时代的算力新逻辑"></a>拆分背后：AI智能体时代的算力新逻辑</h2><p>谷歌CEO桑达尔·皮查伊在大会上透露了一个关键数据：<strong>谷歌75%的新增代码已由AI生成</strong>（经工程师审阅批准），较去年秋天的50%显著上升。</p><p>这不仅仅是一个数字，它揭示了AI正在从”辅助工具”变成”生产主力”。而当AI从”偶尔调用”变成”持续运行”，算力需求的结构就发生了根本变化：</p><blockquote><p><strong>训练是一次性的投入，推理是持续的消耗。</strong></p></blockquote><p>皮查伊指出，第八代TPU的架构旨在”以具有成本效益的方式，提供同时运行数百万个智能体所需的大规模吞吐量和低延迟”。</p><p>这也解释了为什么谷歌要把训练和推理拆开：</p><ol><li><p><strong>推理需求将远超训练</strong>。一旦AI智能体大规模部署，推理算力的消耗将是训练的数倍甚至数十倍。专用推理芯片可以在成本和性能上实现更优解。</p></li><li><p><strong>统一芯片必然浪费</strong>。训练和推理对硬件的需求差异太大——训练需要极致的计算密度和扩展性，推理需要大容量片上缓存和低延迟互联。一颗芯片同时兼顾两者，必然有所取舍。</p></li><li><p><strong>成本效率至关重要</strong>。当推理成为AI运营的主要成本，专用芯片带来的效率提升将直接转化为商业优势。</p></li></ol><h2 id="对英伟达意味着什么？"><a href="#对英伟达意味着什么？" class="headerlink" title="对英伟达意味着什么？"></a>对英伟达意味着什么？</h2><p>谷歌的TPU策略对英伟达构成了三层挑战：</p><p><strong>第一层：云端AI芯片竞争加剧。</strong> TPU仅供谷歌云客户使用，在谷歌云生态内，TPU可能比英伟达GPU更具性价比。对于大规模训练+高并发推理的企业客户，TPU 8t+8i的组合拳提供了从训练到部署的一站式方案。</p><p><strong>第二层：软件生态壁垒正在瓦解。</strong> 谷歌宣布原生PyTorch对TPU的支持已进入预览阶段——用户可以直接迁移现有PyTorch模型，无需修改代码。这意味着英伟达CUDA生态的护城河正在被逐步填平。</p><p><strong>第三层：自研芯片浪潮加速。</strong> 谷歌、亚马逊（Trainium&#x2F;Inferentia）、微软（Maia）——云计算巨头纷纷自研AI芯片，减少对英伟达的依赖。当这些芯片只在各自云平台上提供，英伟达的GPU就不再是唯一选择。</p><p>不过，英伟达也有其独特优势：通用性、成熟的软件生态、以及在企业级市场的广泛部署。短期内，英伟达仍然是AI芯片市场的绝对霸主。但长期来看，专用化趋势不可逆转。</p><h2 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h2><p>从通用到专用，从一颗芯片到两颗芯片，谷歌第八代TPU的拆分不只是产品策略的调整，更是AI芯片行业进入**”专精时代”**的信号。</p><p>当AI从实验室走向千行百业，当智能体从概念变成日常工具，我们对算力的需求不再是”够用就行”，而是”精准匹配”。训练就该用训练的芯片，推理就该用推理的芯片——这个逻辑，和汽车分出轿车与卡车一样自然。</p><p>未来，我们可能会看到更多”一分为二”甚至”一分为N”的芯片设计。因为AI的世界，正在变得越来越细分，也越来越专精。</p><p><em>这不是芯片的分裂，而是芯片的进化。</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;芯片世界的一次”分家”&quot;&gt;&lt;a href=&quot;#芯片世界的一次”分家”&quot; class=&quot;headerlink&quot; title=&quot;芯片世界的一次”分家”&quot;&gt;&lt;/a&gt;芯片世界的一次”分家”&lt;/h2&gt;&lt;p&gt;4月22日，拉斯维加斯，Google Cloud Next 2026</summary>
      
    
    
    
    <category term="科技前沿" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80%E5%89%8D%E6%B2%BF/"/>
    
    
    <category term="人工智能" scheme="https://blog.lhliang.com/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="AI芯片" scheme="https://blog.lhliang.com/tags/AI%E8%8A%AF%E7%89%87/"/>
    
    <category term="谷歌" scheme="https://blog.lhliang.com/tags/%E8%B0%B7%E6%AD%8C/"/>
    
    <category term="TPU" scheme="https://blog.lhliang.com/tags/TPU/"/>
    
  </entry>
  
  <entry>
    <title>6分钟充满、1500公里续航！宁德时代五大电池王炸发布</title>
    <link href="https://blog.lhliang.com/p/8f2a5c31.html"/>
    <id>https://blog.lhliang.com/p/8f2a5c31.html</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-26T11:25:10.415Z</updated>
    
    <content type="html"><![CDATA[<h1 id="6分钟充满、1500公里续航！宁德时代五大电池王炸发布"><a href="#6分钟充满、1500公里续航！宁德时代五大电池王炸发布" class="headerlink" title="6分钟充满、1500公里续航！宁德时代五大电池王炸发布"></a>6分钟充满、1500公里续航！宁德时代五大电池王炸发布</h1><p>4月21日晚，宁德时代在北京举办2026”极域之约”超级科技日发布会，一口气发布五款电池重磅产品。这场被称为”公司成立以来技术密度最高”的发布会，直接将电动车续航竞争推向新高度。</p><h2 id="五大王炸产品：每一款都是行业天花板"><a href="#五大王炸产品：每一款都是行业天花板" class="headerlink" title="五大王炸产品：每一款都是行业天花板"></a>五大王炸产品：每一款都是行业天花板</h2><h3 id="1-第三代神行超充电池：充电比加油还快"><a href="#1-第三代神行超充电池：充电比加油还快" class="headerlink" title="1. 第三代神行超充电池：充电比加油还快"></a>1. 第三代神行超充电池：充电比加油还快</h3><p>新能源车主的”充电焦虑”将被彻底终结。</p><p>第三代神行超充电池采用材料基因层级重构技术，实现等效10C、峰值15C的超充能力：</p><ul><li><strong>10%-80%充电仅需3分44秒</strong></li><li><strong>10%-98%完整充电只需6分27秒</strong></li><li>-30℃极寒环境下，20%-98%充电约需9分钟</li><li>内阻降至全球最低0.25毫欧</li><li>超充1000次后容量保持率仍超90%</li></ul><p>这意味着，电动车充电时间正式进入”个位数分钟”时代，比传统燃油车加油还快。</p><h3 id="2-麒麟凝聚态电池：航空级技术首次下放乘用车"><a href="#2-麒麟凝聚态电池：航空级技术首次下放乘用车" class="headerlink" title="2. 麒麟凝聚态电池：航空级技术首次下放乘用车"></a>2. 麒麟凝聚态电池：航空级技术首次下放乘用车</h3><p>这不是普通的电池——这是从飞机上搬下来的技术。</p><p>麒麟凝聚态电池是宁德时代首次将航空级凝聚态技术应用于乘用车领域，电芯能量密度达到<strong>350Wh&#x2F;kg</strong>，创下了量产电池能量密度最高纪录。</p><p>核心参数炸裂：</p><ul><li><strong>电芯能量密度：350Wh&#x2F;kg</strong>（行业最高）</li><li><strong>体积能量密度：760Wh&#x2F;L</strong></li><li><strong>整体技术能量密度：500Wh&#x2F;kg</strong></li><li>行政级轿车续航突破<strong>1500公里</strong></li><li>全尺寸SUV续航突破<strong>1000公里</strong></li><li>电池包重量仅650kg</li><li>已完成4吨级商用飞机首飞验证</li></ul><p>宁德时代首席技术官高焕表示，该技术从源头杜绝漏液、燃烧风险，安全性达到航空级别。</p><h3 id="3-第三代麒麟电池：轻量化与高性能的完美平衡"><a href="#3-第三代麒麟电池：轻量化与高性能的完美平衡" class="headerlink" title="3. 第三代麒麟电池：轻量化与高性能的完美平衡"></a>3. 第三代麒麟电池：轻量化与高性能的完美平衡</h3><p>作为高端三元锂电池的代表，第三代麒麟电池主打轻量化与高放电性能：</p><ul><li><strong>重量能量密度：280Wh&#x2F;kg</strong></li><li><strong>体积能量密度：600Wh&#x2F;L</strong></li><li><strong>续航里程：1000公里+</strong></li><li><strong>放电功率：3兆瓦（3MW）</strong></li><li>125kWh电池包重量仅625kg，比同级铁锂电池轻255kg</li></ul><p>轻量化带来的附加价值同样惊人：制动距离缩短1.44米，零部件寿命提升40%，整车能耗降低6%。</p><p>高焕在发布会上直言：”25万以上车型选择磷酸铁锂就是变相的减配。”这番话直接剑指比亚迪的磷酸铁锂技术路线。</p><h3 id="4-第二代骁遥超级增混电池：增程器使用率降至1"><a href="#4-第二代骁遥超级增混电池：增程器使用率降至1" class="headerlink" title="4. 第二代骁遥超级增混电池：增程器使用率降至1%"></a>4. 第二代骁遥超级增混电池：增程器使用率降至1%</h3><p>混动车型的里程焦虑也将成为历史。</p><p>第二代骁遥超级增混电池专为增程&#x2F;混动车型设计：</p><ul><li><strong>纯电续航：旗舰版600公里，家庭版500公里</strong></li><li>较铁锂提升15%-20%</li><li>标配10C超充</li><li><strong>综合续航超2000公里</strong></li><li>增程器使用率降至1%以下</li><li>亏电（20%）状态下仍可输出1.2兆瓦动力</li><li>2米水深200小时密封防水</li></ul><h3 id="5-钠新电池：资源自主的破局之作"><a href="#5-钠新电池：资源自主的破局之作" class="headerlink" title="5. 钠新电池：资源自主的破局之作"></a>5. 钠新电池：资源自主的破局之作</h3><p>钠离子电池喊了多年，终于要规模化落地了。</p><p>钠新电池采用多元快离子固态技术、复合抗冻电解质等六大技术创新，能量密度较传统钠电提升50%，解决了浆料产气发泡、硬碳与铝箔粘接强度、钠金属沉积一致性三大工程化难题。</p><p>最重要的是：<strong>2026年第四季度正式规模化量产</strong>。</p><p>这意味着什么？钠资源取之不尽，电动车彻底摆脱锂资源”卡脖子”困境。</p><h2 id="市占率47-7-：宁德时代的统治地位"><a href="#市占率47-7-：宁德时代的统治地位" class="headerlink" title="市占率47.7%：宁德时代的统治地位"></a>市占率47.7%：宁德时代的统治地位</h2><p>发布会还公布了一组震撼数据：</p><ul><li>**国内市占率：47.7%**（每两辆电动车就有一辆用宁德时代电池）</li><li><strong>累计装车量：2584万辆</strong></li><li><strong>覆盖150个国家、176个品牌、529款车型</strong></li><li>巧克力换电站已与11家车企、18个乘用车品牌合作25款车型</li></ul><p>全球动力电池龙头的地位，无可撼动。</p><h2 id="电动车续航革命：下一个战场在哪？"><a href="#电动车续航革命：下一个战场在哪？" class="headerlink" title="电动车续航革命：下一个战场在哪？"></a>电动车续航革命：下一个战场在哪？</h2><p>五大王炸同时发布，宁德时代的目标很明确：<strong>彻底终结电动车的续航焦虑</strong>。</p><p>当充电速度比加油还快，当续航里程突破1500公里，当钠离子电池即将打破资源垄断——燃油车最后的优势，也在消失。</p><p>新能源行业正式迈入”多核时代”。下一阶段的竞争，不再是”有没有”，而是”谁更快、谁更强”。</p><p>留给燃油车的时间，真的不多了。</p><hr><p><em>数据来源：宁德时代2026”极域之约”超级科技日发布会</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;6分钟充满、1500公里续航！宁德时代五大电池王炸发布&quot;&gt;&lt;a href=&quot;#6分钟充满、1500公里续航！宁德时代五大电池王炸发布&quot; class=&quot;headerlink&quot; title=&quot;6分钟充满、1500公里续航！宁德时代五大电池王炸发布&quot;&gt;&lt;/a&gt;6分钟充满</summary>
      
    
    
    
    <category term="科技前沿" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80%E5%89%8D%E6%B2%BF/"/>
    
    
    <category term="电池技术" scheme="https://blog.lhliang.com/tags/%E7%94%B5%E6%B1%A0%E6%8A%80%E6%9C%AF/"/>
    
    <category term="新能源" scheme="https://blog.lhliang.com/tags/%E6%96%B0%E8%83%BD%E6%BA%90/"/>
    
    <category term="宁德时代" scheme="https://blog.lhliang.com/tags/%E5%AE%81%E5%BE%B7%E6%97%B6%E4%BB%A3/"/>
    
    <category term="科技创新" scheme="https://blog.lhliang.com/tags/%E7%A7%91%E6%8A%80%E5%88%9B%E6%96%B0/"/>
    
  </entry>
  
  <entry>
    <title>2分钟被劫持！AI安全攻防战正式打响</title>
    <link href="https://blog.lhliang.com/p/c8f3a921.html"/>
    <id>https://blog.lhliang.com/p/c8f3a921.html</id>
    <published>2026-04-21T00:00:00.000Z</published>
    <updated>2026-04-26T11:27:29.538Z</updated>
    
    <content type="html"><![CDATA[<h1 id="2分钟被劫持！AI安全攻防战正式打响"><a href="#2分钟被劫持！AI安全攻防战正式打响" class="headerlink" title="2分钟被劫持！AI安全攻防战正式打响"></a>2分钟被劫持！AI安全攻防战正式打响</h1><p>4月18日，成都天府国际会议中心，第八届C3安全大会正在举行。一只正在执行巡检任务的机器狗成为全场焦点——但原因出乎所有人意料。</p><p><strong>在众目睽睽之下，它被远端黑客成功劫持了。</strong></p><p>不到两分钟，机器狗不再听从操作员指令：静默开启高清摄像头偷拍前排嘉宾面部、猛地撞倒假人模型，最后浑身抽搐、瘫倒在地。</p><p>这不是电影场景。这是一场精心设计的安全演示，揭示了一个正在逼近的现实危机。</p><h2 id="当”硅基员工”开始”叛变”"><a href="#当”硅基员工”开始”叛变”" class="headerlink" title="当”硅基员工”开始”叛变”"></a>当”硅基员工”开始”叛变”</h2><p>2026年，AI智能体正以前所未有的速度涌入企业。从预判故障的工厂到秒级风控的银行，”硅基员工”已开始与人类同事并肩工作。然而，伴随而来的安全风险，却如同潜伏的定时炸弹。</p><p>“当’AI员工’涌入企业，安全内涵被彻底改写。”天润云CEO吴强在会上指出，核心问题变成：<strong>AI员工执行过程的正确性如何保证？交付结果的正确性由谁负责？</strong></p><p>这不仅是技术问题，更是管理难题。</p><h2 id="触目惊心的数据"><a href="#触目惊心的数据" class="headerlink" title="触目惊心的数据"></a>触目惊心的数据</h2><p>亚信安全研究院在会上披露了一系列令人警醒的数字：</p><table><thead><tr><th>指标</th><th>数据</th></tr></thead><tbody><tr><td>自动化攻击平均突破时间</td><td><strong>29分钟</strong></td></tr><tr><td>最快突破时间</td><td><strong>27秒</strong></td></tr><tr><td>企业每日安全告警量</td><td><strong>5000+条</strong></td></tr><tr><td>自动化攻防占比（当前）</td><td><strong>80%</strong></td></tr><tr><td>自动化攻防占比（预测）</td><td>**100%**（半年~2年内）</td></tr></tbody></table><p>亚信安全CEO马红军直言：**”未来的对手不是工程师，而是自我进化的AI攻击集群。”**</p><p>传统的”产品堆砌+人工响应”安全模式已触碰物理极限。安全对抗的主导权正从”人的经验”移交到”AI的规模智能”手中。</p><h2 id="行业联手筑防线"><a href="#行业联手筑防线" class="headerlink" title="行业联手筑防线"></a>行业联手筑防线</h2><p>面对AI安全新挑战，一场联动防御、数据驱动、AI原生的行业行动正在展开：</p><p><strong>1. 鸿蒙安全实验室</strong><br>华为与亚信安全共建，瞄准终端底层操作系统的原生安全。</p><p><strong>2. Physical AI联盟</strong><br>亚信科技、德勤、阿里云、ABB机器人联合发起，将安全战场从虚拟世界延伸至机械臂、机器人、自动驾驶构成的物理世界。</p><p><strong>3. 智能体原生安全产业共同体</strong><br>为AI员工治理建立行业公认的规约和标准，将外部管控推向规约化治理。</p><p><strong>4. “天枢”实验室</strong><br>电子科技大学与亚信安全组建，攻关卫星互联网与空间计算安全，防线从地面升向太空。</p><h2 id="AI-XDR-2026：十大智能体矩阵"><a href="#AI-XDR-2026：十大智能体矩阵" class="headerlink" title="AI XDR 2026：十大智能体矩阵"></a>AI XDR 2026：十大智能体矩阵</h2><p>大会上重磅发布的<strong>AI XDR 2026平台</strong>，以”AI原生”为核心，采用”AI平台+10智能体”架构，覆盖资产管理、风险分析到联动处置全链路，目标是让AI接管安全运营，将人从”救火”中解放出来。</p><h2 id="从”筑墙”到”立法”"><a href="#从”筑墙”到”立法”" class="headerlink" title="从”筑墙”到”立法”"></a>从”筑墙”到”立法”</h2><p>智能体时代的安全，已从过去的”筑墙”演变为”立法”——为数字世界里的每一个硅基公民制定不可逾越的行为法典。</p><p>TCL科技集团数字化转型部部长李福涛分享了分层管控实践：</p><ul><li><strong>仅做分析的AI</strong>：最终决策由人做出</li><li><strong>提供建议的AI</strong>：确认审批由人完成</li><li><strong>自动化执行的AI</strong>：设定明确的权限、数据和行为边界</li><li><strong>关键控制类AI</strong>：进行事前规则管控、事中行为监控、事后全链路审计</li></ul><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>机器狗的”叛变”演示，揭开了AI安全攻防战的冰山一角。</p><p>当AI智能体从工具变成”员工”，从被动响应进化到自主防御，安全不再是事后补丁，而是出发前必须铺好的路基。</p><p><strong>这场刚刚打响的AI安全攻防战，没有旁观者。</strong></p><hr><p><em>参考资料：</em></p><ul><li><em>红星新闻《机器狗众目睽睽下突然”倒戈”：当AI员工”叛变”，谁来保卫数字安全？》</em></li><li><em>第八届C3安全大会亚信安全发布内容</em></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;2分钟被劫持！AI安全攻防战正式打响&quot;&gt;&lt;a href=&quot;#2分钟被劫持！AI安全攻防战正式打响&quot; class=&quot;headerlink&quot; title=&quot;2分钟被劫持！AI安全攻防战正式打响&quot;&gt;&lt;/a&gt;2分钟被劫持！AI安全攻防战正式打响&lt;/h1&gt;&lt;p&gt;4月18日，</summary>
      
    
    
    
    <category term="人工智能" scheme="https://blog.lhliang.com/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    
    <category term="网络安全" scheme="https://blog.lhliang.com/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/"/>
    
    <category term="科技" scheme="https://blog.lhliang.com/tags/%E7%A7%91%E6%8A%80/"/>
    
    <category term="AI安全" scheme="https://blog.lhliang.com/tags/AI%E5%AE%89%E5%85%A8/"/>
    
    <category term="智能体" scheme="https://blog.lhliang.com/tags/%E6%99%BA%E8%83%BD%E4%BD%93/"/>
    
  </entry>
  
  <entry>
    <title>“50分26秒！中国机器人闪电半马夺冠，人类纪录被打破”</title>
    <link href="https://blog.lhliang.com/p/a7f3c921.html"/>
    <id>https://blog.lhliang.com/p/a7f3c921.html</id>
    <published>2026-04-19T23:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.137Z</updated>
    
    <content type="html"><![CDATA[<h2 id="一、事件回顾：机器人跑出人类做不到的成绩"><a href="#一、事件回顾：机器人跑出人类做不到的成绩" class="headerlink" title="一、事件回顾：机器人跑出人类做不到的成绩"></a>一、事件回顾：机器人跑出人类做不到的成绩</h2><p>2026年4月19日，北京亦庄再次沸腾。2026北京亦庄人形机器人半程马拉松鸣枪开跑，超过100支人形机器人队伍参赛。荣耀自研机器人“闪电”以​<strong>50分26秒​</strong>​的成绩夺冠，同时包揽前三名。这一成绩意味着什么？</p><p>人类男子半程马拉松世界纪录是57分20秒（由Kipsego Yego Mutuku在2023年创造），而“闪电”的成绩比人类纪录快了整整7分钟。更令人震惊的是，这距离去年仅有6队参赛、机器人跌跌撞撞完赛的场景，仅过去了不到一年时间。</p><h2 id="二、技术突破：一年时间完成了什么"><a href="#二、技术突破：一年时间完成了什么" class="headerlink" title="二、技术突破：一年时间完成了什么"></a>二、技术突破：一年时间完成了什么</h2><h3 id="从“能跑”到“跑好”的跨越"><a href="#从“能跑”到“跑好”的跨越" class="headerlink" title="从“能跑”到“跑好”的跨越"></a>从“能跑”到“跑好”的跨越</h3><p>去年的人形机器人半马，参赛选手普遍面临三大问题：</p><ul><li>平衡控制不稳定，容易摔倒</li><li>能效比低，续航不足</li><li>自主导航能力有限</li></ul><p>而今年“闪电”的夺冠，背后是多项核心技术的突破：</p><table><thead><tr><th>技术指标</th><th>2025年水平</th><th>2026年“闪电”水平</th></tr></thead><tbody><tr><td>步态稳定性</td><td>75%</td><td>98%+</td></tr><tr><td>能效比</td><td>0.3 Wh&#x2F;km</td><td>0.18 Wh&#x2F;km</td></tr><tr><td>最高奔跑速度</td><td>6 km&#x2F;h</td><td>12 km&#x2F;h</td></tr><tr><td>自主导航精度</td><td>±0.5m</td><td>±0.05m</td></tr></tbody></table><h3 id="核心创新：关节电机与动态平衡算法"><a href="#核心创新：关节电机与动态平衡算法" class="headerlink" title="核心创新：关节电机与动态平衡算法"></a>核心创新：关节电机与动态平衡算法</h3><p>据荣耀技术团队透露，“闪电”采用了全新一代高密度永磁电机，单关节峰值扭矩密度达到​<strong>45Nm&#x2F;kg</strong>​，较上一代产品提升60%。配合自主研发的动态平衡算法，机器人可以在跑步过程中实时调整重心，应对不平整路面和风阻干扰。</p><p>此外，团队还引入了“仿生跟腱”设计，通过弹性储能机构在每一步中回收约35%的动能，显著提升了长距离奔跑的能效表现。</p><h2 id="三、行业格局：人形机器人进入“冲刺期”"><a href="#三、行业格局：人形机器人进入“冲刺期”" class="headerlink" title="三、行业格局：人形机器人进入“冲刺期”"></a>三、行业格局：人形机器人进入“冲刺期”</h2><h3 id="国内竞争态势"><a href="#国内竞争态势" class="headerlink" title="国内竞争态势"></a>国内竞争态势</h3><p>这次半马赛事汇集了目前国内最顶尖的人形机器人团队：</p><ul><li><strong>​荣耀“闪电”​</strong>​：自研电机+动态平衡算法，续航能力突出</li><li><strong>​宇树H1</strong>​：曾创下1.5km&#x2F;h的人类竞速纪录，转向灵活</li><li><strong>​天工Ultra</strong>​：国家地方共建项目，标准化程度高</li><li><strong>​逐际动力​</strong>​：聚焦下肢运动控制，耐力表现出色</li></ul><p>值得注意的是，阿里巴巴达摩院、小鹏汽车等科技巨头也在暗中布局人形机器人领域，预计明年将有更多跨界选手入局。</p><h3 id="全球视野"><a href="#全球视野" class="headerlink" title="全球视野"></a>全球视野</h3><p>放眼全球，波士顿动力的Atlas、特斯拉的Optimus、Figure的Figure 01都在高速迭代。中国人形机器人产业的快速崛起，正在改写全球竞争格局。</p><p>麦肯锡2025年发布的《人形机器人产业白皮书》预测：​<strong>​到2030年，全球人形机器人市场规模将达到3800亿美元，其中亚太地区将占据45%以上的份额。</strong></p><h2 id="四、意义深远：为什么这场比赛值得关注"><a href="#四、意义深远：为什么这场比赛值得关注" class="headerlink" title="四、意义深远：为什么这场比赛值得关注"></a>四、意义深远：为什么这场比赛值得关注</h2><h3 id="标志一：从实验室到真实场景"><a href="#标志一：从实验室到真实场景" class="headerlink" title="标志一：从实验室到真实场景"></a>标志一：从实验室到真实场景</h3><p>人形机器人半马赛事是一个绝佳的“压力测试”场景。相比封闭实验室环境，真实的赛道包含：</p><ul><li>不平整的路面</li><li>真实的风阻</li><li>需要自主导航的转弯</li><li>长时间续航考验</li></ul><p>能够在这场比赛中稳定完赛的机器人，意味着其在工业巡检、家庭服务等真实场景中的应用可行性大大提升。</p><h3 id="标志二：中国制造的技术自信"><a href="#标志二：中国制造的技术自信" class="headerlink" title="标志二：中国制造的技术自信"></a>标志二：中国制造的技术自信</h3><p>“闪电”的夺冠不仅是荣耀的胜利，更是中国机器人产业链的集体亮相。从电机、减速器到传感器、算法，国产供应链的快速成熟正在打破“卡脖子”困境。</p><h3 id="标志三：重新定义“人类极限”"><a href="#标志三：重新定义“人类极限”" class="headerlink" title="标志三：重新定义“人类极限”"></a>标志三：重新定义“人类极限”</h3><p>当机器人的运动能力开始超越人类，我们或许需要重新思考：体育竞技的意义究竟是什么？人类挑战自我的精神不会改变，但“对手”的定义正在扩展。</p><h2 id="五、未来展望：明年会有多快？"><a href="#五、未来展望：明年会有多快？" class="headerlink" title="五、未来展望：明年会有多快？"></a>五、未来展望：明年会有多快？</h2><p>可以预见，2027年的机器人半马将更加精彩：</p><ul><li><strong>​目标成绩​</strong>​：突破45分钟（比当前人类纪录快12分钟）</li><li><strong>​技术方向​</strong>​：<ul><li>更高能量密度的电池或氢燃料电池</li><li>更轻量化的仿生结构</li><li>多机协同的团队战术</li></ul></li></ul><p>更重要的是，当人形机器人的运动能力达到甚至超越人类后，其在救援、巡检、物流等领域的应用将真正打开想象空间。</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>50分26秒，一个让人类难以企及的数字。但这不仅仅是“机器人打败人类”的故事，更是中国科技产业从追赶到引领的缩影。</p><p>去年还在跌跌撞撞，今年已经一骑绝尘。技术的进步从来不是线性的，而是会在某个节点迎来爆发式跃迁。人形机器人，正在经历这样的时刻。</p><p>对于关注科技趋势的我们而言，这场比赛传递的信号很明确：​<strong>​具身智能的时代，比预想中来得更快。</strong></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;一、事件回顾：机器人跑出人类做不到的成绩&quot;&gt;&lt;a href=&quot;#一、事件回顾：机器人跑出人类做不到的成绩&quot; class=&quot;headerlink&quot; title=&quot;一、事件回顾：机器人跑出人类做不到的成绩&quot;&gt;&lt;/a&gt;一、事件回顾：机器人跑出人类做不到的成绩&lt;/h2&gt;&lt;</summary>
      
    
    
    
    <category term="人工智能" scheme="https://blog.lhliang.com/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="科技" scheme="https://blog.lhliang.com/tags/%E7%A7%91%E6%8A%80/"/>
    
    <category term="机器人" scheme="https://blog.lhliang.com/tags/%E6%9C%BA%E5%99%A8%E4%BA%BA/"/>
    
    <category term="人形机器人" scheme="https://blog.lhliang.com/tags/%E4%BA%BA%E5%BD%A2%E6%9C%BA%E5%99%A8%E4%BA%BA/"/>
    
  </entry>
  
  <entry>
    <title>“423页报告揭秘：95%企业AI投资打水漂，中国模型距美国仅2.7%”</title>
    <link href="https://blog.lhliang.com/p/b8e4a2c1.html"/>
    <id>https://blog.lhliang.com/p/b8e4a2c1.html</id>
    <published>2026-04-18T23:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.134Z</updated>
    
    <content type="html"><![CDATA[<p>美国时间4月13日，斯坦福大学以人为本人工智能研究所（Stanford HAI）发布了《2026年AI指数报告》。这份长达423页的重磅报告，用详实数据勾勒出了全球AI发展的真实图景——既有令人振奋的突破，也有令人警醒的现实。</p><span id="more"></span><h2 id="一、中美AI差距：2-7-的微妙平衡"><a href="#一、中美AI差距：2-7-的微妙平衡" class="headerlink" title="一、中美AI差距：2.7%的微妙平衡"></a>一、中美AI差距：2.7%的微妙平衡</h2><p>报告中最引人瞩目的数据，莫过于中美AI模型性能差距已缩小至<strong>2.7个百分点</strong>。</p><p>截至2026年3月，美国顶级AI公司Anthropic的模型仅领先中国最强竞争对手2.7%。这一转折点发生在2025年2月——DeepSeek发布的R1模型曾短暂追平美国模型，震惊全球科技圈。</p><p>从数据维度看，中美各有优势：</p><table><thead><tr><th>指标</th><th>美国</th><th>中国</th></tr></thead><tbody><tr><td>2025年顶级模型数量</td><td>50个</td><td>30个</td></tr><tr><td>私人AI投资</td><td>2859亿美元</td><td>124亿美元</td></tr><tr><td>政府引导基金累计投入</td><td>-</td><td><strong>约1840亿美元</strong></td></tr><tr><td>AI论文引用份额</td><td>-</td><td><strong>全球第一</strong></td></tr><tr><td>专利授权量</td><td>-</td><td><strong>全球第一</strong></td></tr><tr><td>2024年工业机器人安装量</td><td>3.42万台</td><td><strong>29.5万台</strong></td></tr></tbody></table><p>值得注意的是，中国AI投入被严重低估。除了私人投资，政府引导基金累计投入约1840亿美元，加上9120亿美元部署到各行业的资金，实际投入远超表面数字。</p><h2 id="二、残酷现实：95-企业AI投资零回报"><a href="#二、残酷现实：95-企业AI投资零回报" class="headerlink" title="二、残酷现实：95%企业AI投资零回报"></a>二、残酷现实：95%企业AI投资零回报</h2><p>报告中最令人震惊的发现是：<strong>95%的企业在约350-400亿美元的AI投资中获得零回报</strong>。</p><p>这个数据揭示了AI商业化面临的严峻挑战。尽管资本疯狂涌入——2025年全球AI投资达到创纪录的<strong>5810亿美元</strong>，同比增长130%——但实际落地效果远不及预期。</p><h3 id="效率提升的真实数据"><a href="#效率提升的真实数据" class="headerlink" title="效率提升的真实数据"></a>效率提升的真实数据</h3><table><thead><tr><th>应用场景</th><th>效率提升</th></tr></thead><tbody><tr><td>客户支持智能体</td><td>每小时解决问题增加近<strong>15%</strong></td></tr><tr><td>GitHub Copilot用户</td><td>完成拉取请求增加<strong>26%</strong></td></tr><tr><td>AI广告创作团队</td><td>人均产出跃升<strong>50%</strong></td></tr></tbody></table><p>然而，宏观数据却呈现另一番景象：</p><ul><li>2025年美国生产率增长率：<strong>2.7%</strong>（约为前十年平均水平的两倍）</li><li>AI对全要素生产率的实际贡献：<strong>仅0.01个百分点</strong>（接近为零）</li></ul><p>更令人担忧的是“学习惩罚”现象——依赖AI学习的工程师出现专业发展减缓，使用AI辅助的开源开发者速度反而<strong>降低19%</strong>。</p><h2 id="三、就业冲击：初级岗位首当其冲"><a href="#三、就业冲击：初级岗位首当其冲" class="headerlink" title="三、就业冲击：初级岗位首当其冲"></a>三、就业冲击：初级岗位首当其冲</h2><p>AI对就业市场的影响已经开始显现，尤其是入门级岗位。</p><ul><li>2025年9月，美国22-25岁软件开发者的就业人数较2022年峰值<strong>下降近20%</strong></li><li>三分之一的受访公司预计未来一年将<strong>缩减员工规模</strong></li></ul><p>专家与公众对AI就业影响的认知存在巨大鸿沟：<strong>73%的专家</strong>认为AI对工作方式产生积极影响，而<strong>美国公众仅23%</strong>持相同观点。</p><h2 id="四、环境代价：被忽视的隐形成本"><a href="#四、环境代价：被忽视的隐形成本" class="headerlink" title="四、环境代价：被忽视的隐形成本"></a>四、环境代价：被忽视的隐形成本</h2><p>AI发展的环境足迹正在急剧扩大，这一点往往被忽视。</p><h3 id="能源消耗数据"><a href="#能源消耗数据" class="headerlink" title="能源消耗数据"></a>能源消耗数据</h3><ul><li>截至2025年底，AI数据中心总电力容量达<strong>29.6吉瓦</strong>（约等于纽约州峰值用电需求）</li><li>英伟达GPU占全球AI总计算能力的<strong>60%以上</strong></li></ul><h3 id="具体案例"><a href="#具体案例" class="headerlink" title="具体案例"></a>具体案例</h3><ul><li>训练xAI的Grok 4模型产生约<strong>72,816吨二氧化碳当量</strong>——相当于1000辆普通汽车整个生命周期的碳排放</li><li>仅GPT-4o推理的年用水量就超过<strong>1200万人</strong>的饮用水需求</li></ul><p>社会阻力也在增加：过去两年，价值<strong>640亿美元</strong>的美国数据中心项目因地方反对被搁置或延迟。</p><h2 id="五、AI能力边界：能拿IMO金牌，却看不懂时钟"><a href="#五、AI能力边界：能拿IMO金牌，却看不懂时钟" class="headerlink" title="五、AI能力边界：能拿IMO金牌，却看不懂时钟"></a>五、AI能力边界：能拿IMO金牌，却看不懂时钟</h2><p>报告揭示了AI能力的“锯齿边界”——在某些领域超越人类，在另一些领域却表现糟糕。</p><table><thead><tr><th>测试项目</th><th>最佳模型</th><th>准确率</th></tr></thead><tbody><tr><td>人类终极考试</td><td>Claude Opus 4.6</td><td><strong>超过50%</strong>（2025年仅8.8%）</td></tr><tr><td>国际数学奥林匹克（IMO）</td><td>多个模型</td><td>金牌水平</td></tr><tr><td>ClockBench（读取时钟）</td><td>GPT-5.4</td><td><strong>50%</strong></td></tr><tr><td>ClockBench</td><td>Claude Opus 4.6</td><td><strong>仅8.9%</strong></td></tr><tr><td>家务处理（折叠衣物&#x2F;洗碗）</td><td>-</td><td><strong>仅12%成功率</strong></td></tr></tbody></table><p>这种反差令人深思：AI能在博士级科学、竞赛数学上达到或超越人类基准，却在读取模拟时钟、做家务等对人类而言轻而易举的任务上表现糟糕。</p><h2 id="六、AI普及速度：超越PC和互联网"><a href="#六、AI普及速度：超越PC和互联网" class="headerlink" title="六、AI普及速度：超越PC和互联网"></a>六、AI普及速度：超越PC和互联网</h2><p>尽管存在种种问题，AI的普及速度确实前所未有。</p><ul><li>生成式AI在三年内达到<strong>53%的人口采用率</strong></li><li>超过个人电脑或互联网的普及速度</li><li>美国消费者从中获得的年化估算价值达<strong>1720亿美元</strong></li></ul><p><strong>新加坡</strong>以61%的采用率高居榜首，而<strong>美国</strong>仅28.3%，排名第24位。</p><h2 id="七、透明度危机：能力越强，越不透明"><a href="#七、透明度危机：能力越强，越不透明" class="headerlink" title="七、透明度危机：能力越强，越不透明"></a>七、透明度危机：能力越强，越不透明</h2><p>报告敲响了透明度危机的警钟。</p><ul><li>基础模型透明度指数平均得分从2024年的<strong>58分</strong>降至2026年的<strong>40分</strong></li><li>当今最有能力的现代模型，也是<strong>透明度最低</strong>的</li><li>80个模型未公开训练代码，仅4个开源了训练代码</li></ul><p>多数领先AI公司越来越多地将训练代码、数据集大小和参数数量保密，这阻碍了独立研究人员进行安全研究。</p><h2 id="八、未来展望：AI的“成年礼”"><a href="#八、未来展望：AI的“成年礼”" class="headerlink" title="八、未来展望：AI的“成年礼”"></a>八、未来展望：AI的“成年礼”</h2><p>报告指出：AI已过“靠讲故事生存的童年期”，正步入面临<strong>商业回报</strong>、<strong>能源瓶颈</strong>和<strong>全球主权竞争</strong>的成年礼。</p><h3 id="对中国的启示"><a href="#对中国的启示" class="headerlink" title="对中国的启示"></a>对中国的启示</h3><p>2.7%的差距意味着追赶已初步完成，应利用专利授权和工业机器人规模优势，率先在实体经济中收割AI红利。</p><h3 id="对美国的挑战"><a href="#对美国的挑战" class="headerlink" title="对美国的挑战"></a>对美国的挑战</h3><p>如何守住私人投资创新活力，并解决高昂成本与能源问题，将决定其能否继续引领下一个十年。</p><h3 id="对企业的建议"><a href="#对企业的建议" class="headerlink" title="对企业的建议"></a>对企业的建议</h3><ul><li>理性评估AI投资回报率，避免盲目跟风</li><li>关注实际落地场景，而非追逐技术热点</li><li>重视人才培养，避免“学习惩罚”效应</li></ul><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>斯坦福这份423页的报告，用数据为我们呈现了一个真实的AI世界——它既不是乌托邦，也不是末日预言，而是一个充满机遇与挑战的新纪元。</p><p>95%的企业零回报、2.7%的中美差距、53%的普及率……这些数字背后，是技术迭代与商业落地的博弈，是创新热情与理性思考的碰撞。</p><p>对于普通开发者和企业决策者而言，或许最重要的启示是：<strong>AI不是魔法，它需要时间、需要耐心、需要正确的应用场景</strong>。在这场变革中，保持清醒比追逐热点更重要。</p><hr><p><strong>参考来源</strong>：</p><ul><li>斯坦福大学《2026年AI指数报告》</li><li>Stanford HAI 官网: <a href="https://hai.stanford.edu/ai-index/2026-ai-index-report">https://hai.stanford.edu/ai-index/2026-ai-index-report</a></li></ul>]]></content>
    
    
    <summary type="html">&lt;p&gt;美国时间4月13日，斯坦福大学以人为本人工智能研究所（Stanford HAI）发布了《2026年AI指数报告》。这份长达423页的重磅报告，用详实数据勾勒出了全球AI发展的真实图景——既有令人振奋的突破，也有令人警醒的现实。&lt;/p&gt;</summary>
    
    
    
    <category term="科技观察" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80%E8%A7%82%E5%AF%9F/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="人工智能" scheme="https://blog.lhliang.com/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="斯坦福报告" scheme="https://blog.lhliang.com/tags/%E6%96%AF%E5%9D%A6%E7%A6%8F%E6%8A%A5%E5%91%8A/"/>
    
    <category term="科技趋势" scheme="https://blog.lhliang.com/tags/%E7%A7%91%E6%8A%80%E8%B6%8B%E5%8A%BF/"/>
    
  </entry>
  
  <entry>
    <title>“AI时代焦虑：我们到底在怕什么？”</title>
    <link href="https://blog.lhliang.com/p/ai-era-anxiety-2026.html"/>
    <id>https://blog.lhliang.com/p/ai-era-anxiety-2026.html</id>
    <published>2026-04-18T10:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.129Z</updated>
    
    <content type="html"><![CDATA[<h1 id="AI时代焦虑：我们到底在怕什么？"><a href="#AI时代焦虑：我们到底在怕什么？" class="headerlink" title="AI时代焦虑：我们到底在怕什么？"></a>AI时代焦虑：我们到底在怕什么？</h1><p><img src="https://picsum.photos/seed/ai-anxiety-cover/800/450" alt="焦虑"></p><h2 id="引言：一个绕不开的时代情绪"><a href="#引言：一个绕不开的时代情绪" class="headerlink" title="引言：一个绕不开的时代情绪"></a>引言：一个绕不开的时代情绪</h2><p>2026年，ChatGPT-6 发布，通用人工智能（AGI）从论文走向现实，Stanford AI Index 报告指出全球 AI 投资突破 3000 亿美元。与此同时，职场人的焦虑指数也在攀升——脉脉数据显示，2025年职场焦虑投诉量同比增长 40%，其中“AI替代”成为 Top 1 关键词。</p><p>今天，我们不聊技术，聊情绪。<strong>AI时代，大家到底在焦虑什么？我们又能做些什么？</strong></p><hr><h2 id="一、焦虑的众生相：你是哪一种？"><a href="#一、焦虑的众生相：你是哪一种？" class="headerlink" title="一、焦虑的众生相：你是哪一种？"></a>一、焦虑的众生相：你是哪一种？</h2><h3 id="1-打工人的焦虑：“我的岗位还安全吗？”"><a href="#1-打工人的焦虑：“我的岗位还安全吗？”" class="headerlink" title="1. 打工人的焦虑：“我的岗位还安全吗？”"></a>1. 打工人的焦虑：“我的岗位还安全吗？”</h3><p>这是最普遍的情绪。根据麦肯锡 2025 年的报告，全球约 40% 的工作岗位将在未来 5-10 年内受到 AI 的显著冲击。从客服、翻译、基础文案，到初级程序员、分析师、数据录入员——几乎每个职场人都在问同一个问题：<strong>“AI 会不会先取代我的工作？”</strong></p><blockquote><p>朋友 A 是某互联网公司的中级文案，月薪 1.5 万，用了三个月 AI 工具后，感叹：“我现在一天的工作量，AI 两小时就能搞定，质量还比我高。”</p></blockquote><h3 id="2-学生的焦虑：“我选的专业还有前途吗？”"><a href="#2-学生的焦虑：“我选的专业还有前途吗？”" class="headerlink" title="2. 学生的焦虑：“我选的专业还有前途吗？”"></a>2. 学生的焦虑：“我选的专业还有前途吗？”</h3><p>高考刚结束的张同学在知乎上发帖：“AI 发展这么快，我选的会计专业四年后还有用吗？”<br>类似的焦虑蔓延在各类志愿填报群、留学中介和职业规划平台之间。</p><p>根据智联招聘数据，2026 届应届生简历中，“AI 技能” 相关关键词出现频率是 2023 届的<strong>6倍</strong>，但同时，“对 AI 取代传统岗位的担忧”也同比增长了<strong>55%</strong>。</p><h3 id="3-父母的焦虑：“孩子会被机器淘汰吗？”"><a href="#3-父母的焦虑：“孩子会被机器淘汰吗？”" class="headerlink" title="3. 父母的焦虑：“孩子会被机器淘汰吗？”"></a>3. 父母的焦虑：“孩子会被机器淘汰吗？”</h3><p>这一代父母面临的是前所未有的教育困境：怎么培养一个在未来仍具竞争力的孩子？钢琴、绘画这些“素质教育”还有意义吗？编程课、AI 课要不要从小上？</p><p>海淀区某教育论坛的调查显示，超过<strong>68%</strong>的家长表示“不确定该让孩子学什么才能适应 AI 时代”。</p><h3 id="4-创业者的焦虑：“大公司都在-AI-化，我的护城河还在吗？”"><a href="#4-创业者的焦虑：“大公司都在-AI-化，我的护城河还在吗？”" class="headerlink" title="4. 创业者的焦虑：“大公司都在 AI 化，我的护城河还在吗？”"></a>4. 创业者的焦虑：“大公司都在 AI 化，我的护城河还在吗？”</h3><p>小杨在深圳做垂直领域 SaaS 创业，2024 年底融了 A 轮。2025 年他眼睁睁看着几个大厂发布了相似产品，用户增长几乎停滞。他最常说的一句话是：“大模型一开放，我们这种小创业公司还怎么活？”</p><hr><h2 id="二、焦虑的本质：我们怕的不是-AI，是失控"><a href="#二、焦虑的本质：我们怕的不是-AI，是失控" class="headerlink" title="二、焦虑的本质：我们怕的不是 AI，是失控"></a>二、焦虑的本质：我们怕的不是 AI，是失控</h2><p>心理学上有个概念叫<strong>“技术恐惧”（Technophobia）</strong>，但 AI 焦虑远比这更深层——它本质上是一种<strong>对失控感的恐惧</strong>：</p><p>1.<strong>职业失控</strong>——不知道下一个被替代的是不是自己<br>2.<strong>认知失控</strong>——AI 的能力边界在哪里？它还会进化成什么样？<br>3.<strong>社会失控</strong>——未来会变成什么样？穷人会不会更穷？<br>4.<strong>身份失控</strong>——如果机器比我还优秀，我的价值在哪里？</p><p>斯坦福大学 2026 AI Index 报告指出，<strong>焦虑的根源并非 AI 本身，而是信息不对称和社会结构性不平等加剧的预期</strong>。人们怕的从来不是工具，而是工具背后不可控的力量。</p><hr><h2 id="三、焦虑的反面：有人在-AI-时代活得更好了"><a href="#三、焦虑的反面：有人在-AI-时代活得更好了" class="headerlink" title="三、焦虑的反面：有人在 AI 时代活得更好了"></a>三、焦虑的反面：有人在 AI 时代活得更好了</h2><p>焦虑不是全部，也有另一面。</p><p>我认识一个传统媒体编辑，在 AI 冲击下没有抱怨，而是花了两个月时间学会了用 AI 辅助写作、把效率提升了 3 倍，现在一个人做了原来三个人的选题量，收入不降反升。</p><p>还有一帮大学生，成立了“AI + 专业”社群，把 AI 能力嫁接到自己的专业领域——法律学生用 AI 做案例检索，医学生用 AI 辅助读片，建筑学生用 AI 生成方案草图。他们的逻辑很简单：<strong>与其被替代，不如驾驭它。</strong></p><hr><h2 id="四、如何破解-AI-焦虑：四个行动方向"><a href="#四、如何破解-AI-焦虑：四个行动方向" class="headerlink" title="四、如何破解 AI 焦虑：四个行动方向"></a>四、如何破解 AI 焦虑：四个行动方向</h2><h3 id="1-停止抽象焦虑，聚焦具体问题"><a href="#1-停止抽象焦虑，聚焦具体问题" class="headerlink" title="1. 停止抽象焦虑，聚焦具体问题"></a>1. 停止抽象焦虑，聚焦具体问题</h3><p>焦虑最消耗人的地方在于它是<strong>模糊的、弥散的</strong>。与其想“AI 会不会取代我”，不如问自己：</p><ul><li>我的工作中哪 30% 的时间在做重复性内容输出？</li><li>哪些任务现在就可以用 AI 提效？</li><li>我的核心竞争力是什么，AI 难以替代的是什么？</li></ul><p>把焦虑拆解成可执行的行动清单，是缓解焦虑的第一步。</p><h3 id="2-建立“AI-协作能力”而非“AI-恐惧”"><a href="#2-建立“AI-协作能力”而非“AI-恐惧”" class="headerlink" title="2. 建立“AI 协作能力”而非“AI 恐惧”"></a>2. 建立“AI 协作能力”而非“AI 恐惧”</h3><p>会用 AI 和被 AI 替代之间，差距在于<strong>“AI 协作能力”</strong>。这包括：</p><ul><li>知道 AI 的能力边界在哪里（它擅长什么、不擅长什么）</li><li>学会写好 Prompt（高质量提问带来高质量输出）</li><li>能够鉴别 AI 内容的准确性（AI 会编造，会犯错）</li><li>把 AI 作为杠杆，放大自己的专业能力</li></ul><h3 id="3-投资“不易被-AI-替代”的能力"><a href="#3-投资“不易被-AI-替代”的能力" class="headerlink" title="3. 投资“不易被 AI 替代”的能力"></a>3. 投资“不易被 AI 替代”的能力</h3><p>AI 擅长的是<strong>模式识别、信息检索、重复执行、标准化输出</strong>。<br>反之，<strong>复杂决策、深度人际沟通、创新创造、情绪价值提供、跨领域整合</strong>这些能力，AI 在短期内难以企及。</p><p>以下是来自哈佛商业评论的总结，可参考：</p><table><thead><tr><th>AI 相对弱项</th><th>对应培养方向</th></tr></thead><tbody><tr><td>复杂情境判断</td><td>批判性思维、情境决策能力</td></tr><tr><td>深度共情与信任建立</td><td>人际沟通、领导力</td></tr><tr><td>跨领域创新</td><td>通识能力、跨界整合思维</td></tr><tr><td>身体力行的实践</td><td>动手能力、现场应变</td></tr><tr><td>价值观与意义判断</td><td>哲学、伦理、文化素养</td></tr></tbody></table><h3 id="4-关注身体信号，焦虑需要出口"><a href="#4-关注身体信号，焦虑需要出口" class="headerlink" title="4. 关注身体信号，焦虑需要出口"></a>4. 关注身体信号，焦虑需要出口</h3><p>焦虑不只是心理问题，也有身体表现：失眠、颈椎疼痛、消化不良、情绪波动。<br>斯坦福心理健康报告指出，<strong>职场 AI 焦虑人群中，有 62% 伴随睡眠障碍</strong>。</p><p>几个简单但有效的干预方式：</p><ul><li>每天留 30 分钟“数字断联”时间</li><li>保持规律运动（运动是已知的最有效抗焦虑手段之一）</li><li>与真实的人建立连接，不要让算法和 AI 成为你唯一的对话来源</li></ul><hr><h2 id="五、写在最后"><a href="#五、写在最后" class="headerlink" title="五、写在最后"></a>五、写在最后</h2><p>AI 时代的焦虑，不是矫情，不是多余——它是真实的，是对未来不确定性的合理反应。</p><p>但焦虑如果不转化为行动，就会变成内耗。<br>行动的方向不需要多宏大：<strong>今天学会一个新 AI 工具，本周读完一篇专业报告，这个月把工作流程里一个重复环节用 AI 提效</strong>——这些微小但具体的动作，比任何宏大叙事都更能消解焦虑。</p><blockquote><p>这个世界永远在变，但有一件事不变：<strong>适应变化的人，永远比抗拒变化的人走得更远。</strong></p></blockquote><p>与其担心被 AI 替代，不如成为那个驾驭 AI 的人。</p><hr><p><em>如果你也在 AI 时代感到焦虑，欢迎在评论区聊聊：你最担心的是什么？</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;AI时代焦虑：我们到底在怕什么？&quot;&gt;&lt;a href=&quot;#AI时代焦虑：我们到底在怕什么？&quot; class=&quot;headerlink&quot; title=&quot;AI时代焦虑：我们到底在怕什么？&quot;&gt;&lt;/a&gt;AI时代焦虑：我们到底在怕什么？&lt;/h1&gt;&lt;p&gt;&lt;img src=&quot;http</summary>
      
    
    
    
    <category term="生活思考" scheme="https://blog.lhliang.com/categories/%E7%94%9F%E6%B4%BB%E6%80%9D%E8%80%83/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="人工智能" scheme="https://blog.lhliang.com/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="焦虑" scheme="https://blog.lhliang.com/tags/%E7%84%A6%E8%99%91/"/>
    
    <category term="未来趋势" scheme="https://blog.lhliang.com/tags/%E6%9C%AA%E6%9D%A5%E8%B6%8B%E5%8A%BF/"/>
    
  </entry>
  
  <entry>
    <title>“斯坦福报告揭示：中美AI差距仅剩2.7%！中国如何做到的？”</title>
    <link href="https://blog.lhliang.com/p/a7f3b921.html"/>
    <id>https://blog.lhliang.com/p/a7f3b921.html</id>
    <published>2026-04-18T00:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.133Z</updated>
    
    <content type="html"><![CDATA[<h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p>4月13日，斯坦福大学以人为本人工智能研究所（Stanford HAI）发布了《2026年人工智能指数报告》。这份450页的重磅报告揭示了一个令人瞩目的事实：<strong>中美两国在AI模型性能上的差距已几乎消失，始终保持在个位数百分比</strong>。</p><p>这一里程碑式的进展意味着什么？中国AI是如何在短短几年内实现从追赶到并跑的跨越？本文将基于这份权威报告，为你深入解读。</p><h2 id="一、核心发现：差距缩小至2-7"><a href="#一、核心发现：差距缩小至2-7" class="headerlink" title="一、核心发现：差距缩小至2.7%"></a>一、核心发现：差距缩小至2.7%</h2><p>根据报告最新数据（截至2026年3月），美国顶尖模型Claude Opus 4.6的Elo评分为1503，而中国顶尖模型与其差距仅为<strong>2.7%</strong>。</p><p>这并非偶然。2025年2月，中国DeepSeek-R1就曾短暂追平美国最佳模型，标志着中国AI正式进入“并跑”阶段。</p><h3 id="中美AI实力对比"><a href="#中美AI实力对比" class="headerlink" title="中美AI实力对比"></a>中美AI实力对比</h3><table><thead><tr><th align="left">维度</th><th align="left">美国优势</th><th align="left">中国优势</th></tr></thead><tbody><tr><td align="left">基础模型创新</td><td align="left">✅ 全球领先</td><td align="left">快速追赶</td></tr><tr><td align="left">科研产出</td><td align="left">论文引用量高</td><td align="left">论文数量、专利全球第一</td></tr><tr><td align="left">产业应用</td><td align="left">互联网应用发达</td><td align="left">制造业应用世界第一</td></tr><tr><td align="left">算力基础设施</td><td align="left">5427个数据中心</td><td align="left">快速扩张中</td></tr><tr><td align="left">AI人才</td><td align="left">吸引力下降89%</td><td align="left">培养体系完善</td></tr></tbody></table><h2 id="二、阿里领跑：中国科技力量的崛起"><a href="#二、阿里领跑：中国科技力量的崛起" class="headerlink" title="二、阿里领跑：中国科技力量的崛起"></a>二、阿里领跑：中国科技力量的崛起</h2><p>在本次报告中，<strong>阿里巴巴位列2025年全球顶级模型贡献榜第三名</strong>，同时也是入选重要模型最多的中国科技公司。</p><p>这不仅是对阿里AI技术的认可，更是中国科技企业在全球AI竞争格局中地位提升的缩影。从DeepSeek到通义千问，从百度文心到字节豆包，中国AI军团正在全面崛起。</p><h2 id="三、中国AI的独特优势"><a href="#三、中国AI的独特优势" class="headerlink" title="三、中国AI的独特优势"></a>三、中国AI的独特优势</h2><h3 id="1-科研产出全球领先"><a href="#1-科研产出全球领先" class="headerlink" title="1. 科研产出全球领先"></a>1. 科研产出全球领先</h3><p>中国在AI论文发表量、引用次数、专利产出等科研指标上均居全球首位。这种“量”的积累正在转化为“质”的突破。</p><h3 id="2-产业应用深度融合"><a href="#2-产业应用深度融合" class="headerlink" title="2. 产业应用深度融合"></a>2. 产业应用深度融合</h3><p>中国工业机器人部署量占全球54%，在物理AI领域装机量世界第一。从智能制造到智慧物流，中国正在将AI技术深度融入实体经济。</p><h3 id="3-政策引导与长期投资"><a href="#3-政策引导与长期投资" class="headerlink" title="3. 政策引导与长期投资"></a>3. 政策引导与长期投资</h3><p>中国采取政府+企业+科研机构紧密合作的模式，通过长期战略投资推动AI发展。这种模式在资源调配和战略规划上展现出独特优势。</p><h3 id="4-AI教育普及先行"><a href="#4-AI教育普及先行" class="headerlink" title="4. AI教育普及先行"></a>4. AI教育普及先行</h3><p>中国已将AI纳入必修课程，与阿联酋同为全球AI教育普及的先行者，为未来发展储备人才。</p><h2 id="四、全球AI格局新变化"><a href="#四、全球AI格局新变化" class="headerlink" title="四、全球AI格局新变化"></a>四、全球AI格局新变化</h2><h3 id="1-人才流动逆转"><a href="#1-人才流动逆转" class="headerlink" title="1. 人才流动逆转"></a>1. 人才流动逆转</h3><p>自2017年以来，移居美国的AI学者数量下降89%，仅过去一年就锐减80%。美国AI人才吸引力的优势正在快速消退。</p><h3 id="2-AI“偏科”严重"><a href="#2-AI“偏科”严重" class="headerlink" title="2. AI“偏科”严重"></a>2. AI“偏科”严重</h3><p>报告显示，当前AI在数学奥赛、编程等领域已超越人类顶尖水平，但在时钟识别、真实家务等“常识”任务上仍有明显短板。AI科学家称之为“锯齿状智能”。</p><h3 id="3-就业影响显现"><a href="#3-就业影响显现" class="headerlink" title="3. 就业影响显现"></a>3. 就业影响显现</h3><p>美国22-25岁软件开发人员就业率自2024年来下降近20%，初级岗位减少趋势明显。AI对就业市场的冲击已经从预测变为现实。</p><h3 id="4-环保成本惊人"><a href="#4-环保成本惊人" class="headerlink" title="4. 环保成本惊人"></a>4. 环保成本惊人</h3><p>训练大模型的能耗问题日益突出。xAI训练Grok 4排放72,816吨二氧化碳当量，相当于17,000辆汽车年排放量。AI的可持续发展已成为不可回避的话题。</p><h2 id="五、展望：从追赶到引领"><a href="#五、展望：从追赶到引领" class="headerlink" title="五、展望：从追赶到引领"></a>五、展望：从追赶到引领</h2><p>斯坦福报告的数据表明，<strong>中美AI差距几乎消失</strong>这一判断已从预测变为现实。中国通过长期战略投资、产学研协作和大规模产业应用，开创了一条独特的AI发展道路。</p><p>然而，领先从来不是终点。在基础模型创新、算力基础设施、顶尖人才储备等方面，美国仍具优势。真正的竞争，才刚刚开始。</p><hr><p><em>数据来源：斯坦福大学以人为本人工智能研究所《2026年AI指数报告》</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;引言&quot;&gt;&lt;a href=&quot;#引言&quot; class=&quot;headerlink&quot; title=&quot;引言&quot;&gt;&lt;/a&gt;引言&lt;/h2&gt;&lt;p&gt;4月13日，斯坦福大学以人为本人工智能研究所（Stanford HAI）发布了《2026年人工智能指数报告》。这份450页的重磅报告揭示了一</summary>
      
    
    
    
    <category term="科技资讯" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80%E8%B5%84%E8%AE%AF/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="大模型" scheme="https://blog.lhliang.com/tags/%E5%A4%A7%E6%A8%A1%E5%9E%8B/"/>
    
    <category term="斯坦福" scheme="https://blog.lhliang.com/tags/%E6%96%AF%E5%9D%A6%E7%A6%8F/"/>
    
    <category term="中国AI" scheme="https://blog.lhliang.com/tags/%E4%B8%AD%E5%9B%BDAI/"/>
    
  </entry>
  
  <entry>
    <title>“百虾大战”时代来临 - OpenClaw与国内大厂龙虾全家桶深度对比</title>
    <link href="https://blog.lhliang.com/p/7a8e2f1b.html"/>
    <id>https://blog.lhliang.com/p/7a8e2f1b.html</id>
    <published>2026-04-17T19:52:00.000Z</published>
    <updated>2026-04-26T11:22:52.311Z</updated>
    
    <content type="html"><![CDATA[<h2 id="前言：一只龙虾，引爆了2026年的AI-Agent大战"><a href="#前言：一只龙虾，引爆了2026年的AI-Agent大战" class="headerlink" title="前言：一只龙虾，引爆了2026年的AI Agent大战"></a>前言：一只龙虾，引爆了2026年的AI Agent大战</h2><p>2026年3月，OpenClaw（小龙虾）彻底引爆了国内AI圈。</p><p>这只因红色龙虾Logo得名的开源AI Agent，从腾讯大厦千人排队装机到“养虾攻略”刷屏网络，一夜之间成了科技圈顶流。随后，国内大厂跑步入场——腾讯端出WorkBuddy+QClaw+ClawBot三件套，阿里祭出JVS Claw，字节上线ArkClaw，百度推出“龙虾全家桶”，360搞起安全龙虾……短短一个月，市面上涌现了30余款“国产龙虾”，行业戏称“百虾大战”。</p><p>本文试着把这件事理清楚：<strong>开源OpenClaw和国内大厂的商业版龙虾，到底有什么区别？普通办公用户和开发者，该怎么选？</strong></p><span id="more"></span><h2 id="一、OpenClaw：开源Agent的技术标杆"><a href="#一、OpenClaw：开源Agent的技术标杆" class="headerlink" title="一、OpenClaw：开源Agent的技术标杆"></a>一、OpenClaw：开源Agent的技术标杆</h2><h3 id="1-1-它是什么"><a href="#1-1-它是什么" class="headerlink" title="1.1 它是什么"></a>1.1 它是什么</h3><p>OpenClaw由Peter Steinberger（PSPDFKit创始人）开发，定位是<strong>开源的个人AI助手平台</strong>——本地部署、安装即用，通过对话指挥AI执行真实任务。</p><p>核心能力覆盖五类：</p><table><thead><tr><th align="left">能力类型</th><th align="left">具体功能</th></tr></thead><tbody><tr><td align="left"><strong>文件操作</strong></td><td align="left">读写、编辑、整理文件</td></tr><tr><td align="left"><strong>系统控制</strong></td><td align="left">执行Shell命令、管理进程</td></tr><tr><td align="left"><strong>浏览器自动化</strong></td><td align="left">网页操作、截图、填表</td></tr><tr><td align="left"><strong>多平台消息</strong></td><td align="left">飞书、微信、Telegram、Discord</td></tr><tr><td align="left"><strong>定时任务</strong></td><td align="left">7×24小时在线，自动执行重复工作</td></tr></tbody></table><p>本质上是一个<strong>AI Agent</strong>，具备感知→理解→规划→执行→反馈的完整闭环。</p><h3 id="1-2-技术架构"><a href="#1-2-技术架构" class="headerlink" title="1.2 技术架构"></a>1.2 技术架构</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">┌─────────────────────────────────┐</span><br><span class="line">│          网关 Gateway            │  ← 消息路由、协议转换</span><br><span class="line">├─────────────────────────────────┤</span><br><span class="line">│         模型层 Model Layer       │  ← 支持Qwen3、MiniMax、DeepSeek等</span><br><span class="line">├─────────────────────────────────┤</span><br><span class="line">│         工具层 Tools Layer       │  ← 文件/命令/浏览器操作封装</span><br><span class="line">├─────────────────────────────────┤</span><br><span class="line">│       插件系统 Plugin System     │  ← 1700+可插拔Skills模块</span><br><span class="line">└─────────────────────────────────┘</span><br></pre></td></tr></table></figure><h3 id="1-3-一句话定位"><a href="#1-3-一句话定位" class="headerlink" title="1.3 一句话定位"></a>1.3 一句话定位</h3><blockquote><p><strong>OpenClaw &#x3D; 本地运行的AI执行者 + 多IM渠道集成 + 自动化框架</strong></p></blockquote><h2 id="二、国内大厂龙虾全家桶：百花齐放"><a href="#二、国内大厂龙虾全家桶：百花齐放" class="headerlink" title="二、国内大厂龙虾全家桶：百花齐放"></a>二、国内大厂龙虾全家桶：百花齐放</h2><p>2026年3月“百虾大战”爆发后，国内厂商迅速推出了各自的商业化方案。以下是主要玩家：</p><h3 id="2-1-腾讯系：三箭齐发"><a href="#2-1-腾讯系：三箭齐发" class="headerlink" title="2.1 腾讯系：三箭齐发"></a>2.1 腾讯系：三箭齐发</h3><table><thead><tr><th align="left">产品</th><th align="left">定位</th><th align="left">核心特点</th></tr></thead><tbody><tr><td align="left"><strong>WorkBuddy</strong></td><td align="left">桌面AI智能体，零配置开箱即用</td><td align="left">企业微信&#x2F;飞书&#x2F;QQ&#x2F;钉钉五大通道全打通，腾讯内部2000+非技术员工已在用</td></tr><tr><td align="left"><strong>QClaw</strong></td><td align="left">本地AI助手，微信远程遥控电脑</td><td align="left">可用微信消息远程操控家中&#x2F;办公室电脑处理报表、传输文件</td></tr><tr><td align="left"><strong>ClawBot</strong></td><td align="left">企业微信官方插件</td><td align="left">企业管理员3步配置，员工直接对话AI</td></tr><tr><td align="left"><strong>Lighthouse（云端虾）</strong></td><td align="left">云端秒级启动</td><td align="left">解决不会配置本地环境的用户痛点</td></tr></tbody></table><p><strong>腾讯的核心优势：</strong>社交入口最全。微信+QQ+企业微信+飞书+钉钉五端全通，是国内唯一真正打通个人社交和企业办公两大场景的龙虾方案。</p><h3 id="2-2-阿里系：双线作战"><a href="#2-2-阿里系：双线作战" class="headerlink" title="2.2 阿里系：双线作战"></a>2.2 阿里系：双线作战</h3><table><thead><tr><th align="left">产品</th><th align="left">定位</th><th align="left">核心特点</th></tr></thead><tbody><tr><td align="left"><strong>JVS Claw</strong></td><td align="left">全能AI助理平台，成长型Skill体系</td><td align="left">移动端语音输入，多Agents协同群聊，支持飞书深度适配，计划推出JVS Book笔记本和JVS Box迷你主机</td></tr><tr><td align="left"><strong>Qoder</strong></td><td align="left">智能体编程平台</td><td align="left">遗留代码治理、长任务异步委派、多Agent并行协作</td></tr><tr><td align="left"><strong>通义灵码</strong></td><td align="left">AI编程插件（IDE内）</td><td align="left">Java&#x2F;Go框架适配最强，SWE-bench表现优异</td></tr></tbody></table><p><strong>阿里的核心优势：</strong>移动端体验最佳，硬件整合布局最前瞻（JVS Book+JVS Box）。</p><h3 id="2-3-字节系：飞书生态深度绑定"><a href="#2-3-字节系：飞书生态深度绑定" class="headerlink" title="2.3 字节系：飞书生态深度绑定"></a>2.3 字节系：飞书生态深度绑定</h3><table><thead><tr><th align="left">产品</th><th align="left">定位</th><th align="left">核心特点</th></tr></thead><tbody><tr><td align="left"><strong>ArkClaw</strong></td><td align="left">企业级AI Agent</td><td align="left">SaaS开箱即用，火山引擎生态支撑，企业级安全规范</td></tr><tr><td align="left"><strong>ByteClaw</strong></td><td align="left">企业内部AI助手</td><td align="left">深度集成飞书，任务跨设备同步</td></tr></tbody></table><p><strong>字节的核心优势：</strong>飞书原生体验，企业级安全体系成熟。</p><h3 id="2-4-百度系：全场景龙虾全家桶"><a href="#2-4-百度系：全场景龙虾全家桶" class="headerlink" title="2.4 百度系：全场景龙虾全家桶"></a>2.4 百度系：全场景龙虾全家桶</h3><table><thead><tr><th align="left">产品</th><th align="left">定位</th><th align="left">核心特点</th></tr></thead><tbody><tr><td align="left"><strong>DuClaw</strong></td><td align="left">桌面AI助手，零部署</td><td align="left">无需选镜像配API Key，内置百度搜索Skill</td></tr><tr><td align="left"><strong>DuMate</strong></td><td align="left">办公文档助手</td><td align="left">原生支持Word&#x2F;Excel&#x2F;PPT直读写</td></tr><tr><td align="left"><strong>RedClaw</strong></td><td align="left">家用&#x2F;安全场景</td><td align="left">安全隔离，政企场景专用</td></tr></tbody></table><p><strong>百度的核心优势：</strong>全场景覆盖最完整（云端+手机+桌面+安全+家用），零门槛，上手最简单的国产龙虾之一。</p><h3 id="2-5-其他厂商"><a href="#2-5-其他厂商" class="headerlink" title="2.5 其他厂商"></a>2.5 其他厂商</h3><table><thead><tr><th align="left">厂商</th><th align="left">产品</th><th align="left">核心特点</th></tr></thead><tbody><tr><td align="left"><strong>360</strong></td><td align="left">360安全龙虾&#x2F;安全龙虾Box</td><td align="left">唯一以安全为核心卖点，适合政府&#x2F;金融等高安全要求行业</td></tr><tr><td align="left"><strong>智谱AI</strong></td><td align="left">AutoClaw（澳龙）</td><td align="left">真·一键安装，预置50+热门Skills，体验月卡39元&#x2F;3500万Tokens</td></tr><tr><td align="left"><strong>科大讯飞</strong></td><td align="left">AstronClaw</td><td align="left">沙箱隔离技术，10000+ Skills，移动端语音交互强</td></tr><tr><td align="left"><strong>MiniMax</strong></td><td align="left">MaxClaw</td><td align="left">M2.7模型，Voice Maker&#x2F;Music Maker等创意Skills</td></tr><tr><td align="left"><strong>阶跃星辰</strong></td><td align="left">StepClaw</td><td align="left">Step 3.5 Flash模型，OpenClaw调用量全球第一</td></tr></tbody></table><h3 id="2-6-国内龙虾综合实力榜（2026年3月）"><a href="#2-6-国内龙虾综合实力榜（2026年3月）" class="headerlink" title="2.6 国内龙虾综合实力榜（2026年3月）"></a>2.6 国内龙虾综合实力榜（2026年3月）</h3><table><thead><tr><th align="left">梯队</th><th align="left">产品</th><th align="left">适合场景</th></tr></thead><tbody><tr><td align="left">🥇 第一梯队</td><td align="left">腾讯QClaw &#x2F; WorkBuddy</td><td align="left">微信重度用户、中小企业、跨平台协作</td></tr><tr><td align="left">🥇 第一梯队</td><td align="left">阿里JVS Claw</td><td align="left">飞书用户、移动办公、硬件整合需求</td></tr><tr><td align="left">🥇 第一梯队</td><td align="left">百度DuClaw&#x2F;DuMate</td><td align="left">零基础小白、办公文档重度用户</td></tr><tr><td align="left">🥈 第二梯队</td><td align="left">智谱AutoClaw</td><td align="left">个人开发者、快速尝鲜</td></tr><tr><td align="left">🥈 第二梯队</td><td align="left">字节ArkClaw</td><td align="left">中大型企业、安全合规优先</td></tr><tr><td align="left">🥉 第三梯队</td><td align="left">360安全龙虾</td><td align="left">政企&#x2F;金融高安全行业</td></tr><tr><td align="left">🥉 第三梯队</td><td align="left">科大讯飞AstronClaw</td><td align="left">教育&#x2F;医疗&#x2F;语音交互场景</td></tr></tbody></table><h2 id="三、开源OpenClaw-vs-商业化龙虾：核心差异"><a href="#三、开源OpenClaw-vs-商业化龙虾：核心差异" class="headerlink" title="三、开源OpenClaw vs 商业化龙虾：核心差异"></a>三、开源OpenClaw vs 商业化龙虾：核心差异</h2><h3 id="3-1-产品哲学分歧"><a href="#3-1-产品哲学分歧" class="headerlink" title="3.1 产品哲学分歧"></a>3.1 产品哲学分歧</h3><table><thead><tr><th align="left">维度</th><th align="left">开源OpenClaw</th><th align="left">国内商业龙虾</th></tr></thead><tbody><tr><td align="left"><strong>核心理念</strong></td><td align="left">技术极客优先，高度可定制</td><td align="left">零门槛优先，开箱即用</td></tr><tr><td align="left"><strong>部署方式</strong></td><td align="left">本地部署，需手动配置</td><td align="left">云端&#x2F;本地一键安装</td></tr><tr><td align="left"><strong>安全策略</strong></td><td align="left">用户自行配置，门槛高</td><td align="left">厂商内置沙箱+权限管控</td></tr><tr><td align="left"><strong>数据存储</strong></td><td align="left">本地，隐私可控</td><td align="left">云端为主，部分支持私有化</td></tr><tr><td align="left"><strong>IM渠道</strong></td><td align="left">自行对接，需技术能力</td><td align="left">官方集成，3步完成</td></tr><tr><td align="left"><strong>价格</strong></td><td align="left">开源免费（需自备API Key）</td><td align="left">部分免费+订阅制</td></tr></tbody></table><h3 id="3-2-六大维度横向对比"><a href="#3-2-六大维度横向对比" class="headerlink" title="3.2 六大维度横向对比"></a>3.2 六大维度横向对比</h3><table><thead><tr><th align="left">维度</th><th align="left">OpenClaw</th><th align="left">腾讯WorkBuddy&#x2F;QClaw</th><th align="left">阿里JVS Claw</th><th align="left">字节ArkClaw</th><th align="left">百度DuClaw</th></tr></thead><tbody><tr><td align="left"><strong>安装便捷</strong></td><td align="left">⭐⭐ 需要技术基础</td><td align="left">⭐⭐⭐⭐⭐ 20秒安装</td><td align="left">⭐⭐⭐⭐</td><td align="left">⭐⭐⭐⭐⭐</td><td align="left">⭐⭐⭐⭐⭐ 零配置</td></tr><tr><td align="left"><strong>IM集成</strong></td><td align="left">自行对接</td><td align="left">微信+企微+QQ+飞书+钉钉</td><td align="left">飞书为主</td><td align="left">飞书为主</td><td align="left">企业微信&#x2F;钉钉</td></tr><tr><td align="left"><strong>安全合规</strong></td><td align="left">⚠️ 需手动加固</td><td align="left">✅ 多层安全策略</td><td align="left">✅ 沙箱隔离</td><td align="left">✅ 企业级安全</td><td align="left">✅ 零部署安全</td></tr><tr><td align="left"><strong>模型灵活性</strong></td><td align="left">任意大模型API</td><td align="left">腾讯混元+DeepSeek</td><td align="left">通义+DeepSeek</td><td align="left">豆包+DeepSeek</td><td align="left">文心+多模型</td></tr><tr><td align="left"><strong>记忆持久</strong></td><td align="left">✅ 向量存储，长期有效</td><td align="left">✅ 支持</td><td align="left">✅ 多Agent记忆共享</td><td align="left">✅</td><td align="left">✅</td></tr><tr><td align="left"><strong>成本</strong></td><td align="left">免费（需API Key）</td><td align="left">免费额度+订阅</td><td align="left">部分免费+订阅</td><td align="left">企业订阅</td><td align="left">部分免费+订阅</td></tr></tbody></table><h3 id="3-3-本质区别总结"><a href="#3-3-本质区别总结" class="headerlink" title="3.3 本质区别总结"></a>3.3 本质区别总结</h3><p>用一个生活化的比喻：</p><table><thead><tr><th align="left">工具类型</th><th align="left">比喻</th></tr></thead><tbody><tr><td align="left"><strong>DeepSeek&#x2F;ChatGPT</strong></td><td align="left">给你一本菜谱</td></tr><tr><td align="left"><strong>国内商业龙虾</strong></td><td align="left">请了个会照着菜谱做饭的厨师</td></tr><tr><td align="left"><strong>OpenClaw</strong></td><td align="left">直接把厨房钥匙给你，自己看着办</td></tr></tbody></table><h2 id="四、不同用户群体选型指南"><a href="#四、不同用户群体选型指南" class="headerlink" title="四、不同用户群体选型指南"></a>四、不同用户群体选型指南</h2><h3 id="4-1-普通办公用户"><a href="#4-1-普通办公用户" class="headerlink" title="4.1 普通办公用户"></a>4.1 普通办公用户</h3><blockquote><p><strong>关键词：零门槛、安全可控、不想折腾</strong></p></blockquote><h4 id="你的核心痛点是什么？"><a href="#你的核心痛点是什么？" class="headerlink" title="你的核心痛点是什么？"></a>你的核心痛点是什么？</h4><ul><li>每天重复处理Excel报表、数据汇总、文件整理</li><li>周报&#x2F;月报写作占用大量时间</li><li>需要在微信&#x2F;飞书里直接触发AI自动化</li><li>不想学代码、不想配置环境</li></ul><h4 id="选型建议"><a href="#选型建议" class="headerlink" title="选型建议"></a>选型建议</h4><table><thead><tr><th align="left">场景</th><th align="left">推荐方案</th><th align="left">理由</th></tr></thead><tbody><tr><td align="left"><strong>零基础入门</strong></td><td align="left">百度DuClaw</td><td align="left">零配置，内置百度搜索，无需API Key</td></tr><tr><td align="left"><strong>微信重度用户</strong></td><td align="left">腾讯WorkBuddy</td><td align="left">微信&#x2F;企微直接对话，2000+非技术员工验证</td></tr><tr><td align="left"><strong>飞书用户</strong></td><td align="left">阿里JVS Claw</td><td align="left">深度适配飞书，移动端语音输入体验最佳</td></tr><tr><td align="left"><strong>安全敏感（政企&#x2F;金融）</strong></td><td align="left">360安全龙虾</td><td align="left">唯一以安全为核心卖点</td></tr><tr><td align="left"><strong>快速尝鲜低门槛</strong></td><td align="left">智谱AutoClaw</td><td align="left">一键安装，39元体验月卡，50+预置Skills</td></tr></tbody></table><h4 id="普通办公用户避坑指南"><a href="#普通办公用户避坑指南" class="headerlink" title="普通办公用户避坑指南"></a>普通办公用户避坑指南</h4><p>⚠️<strong>不推荐普通用户使用开源OpenClaw</strong>，原因：</p><ul><li>环境配置复杂，Node.js、各种API Key映射劝退90%的人</li><li>安全配置需技术背景，配错等于“给AI开门”</li><li>国内网络环境下，部署成功率低</li><li>有用户安装后遭遇信用卡盗刷</li></ul><h3 id="4-2-开发人员"><a href="#4-2-开发人员" class="headerlink" title="4.2 开发人员"></a>4.2 开发人员</h3><blockquote><p><strong>关键词：效率提升、代码质量、架构能力</strong></p></blockquote><p>开发人员的需求又分两类：<strong>日常编码辅助</strong>和<strong>AI Agent自动化</strong>。</p><h4 id="日常编码辅助"><a href="#日常编码辅助" class="headerlink" title="日常编码辅助"></a>日常编码辅助</h4><table><thead><tr><th align="left">场景</th><th align="left">推荐方案</th><th align="left">核心优势</th></tr></thead><tbody><tr><td align="left"><strong>Java&#x2F;Go&#x2F;云原生开发</strong></td><td align="left">阿里通义灵码</td><td align="left">Spring Cloud&#x2F;Dubbo框架适配最强，单元测试生成能力出众</td></tr><tr><td align="left"><strong>微信小程序&#x2F;公众号</strong></td><td align="left">腾讯CodeBuddy</td><td align="left">小程序API理解准确率98.7%，符合审核规范</td></tr><tr><td align="left"><strong>高合规行业（金融&#x2F;医疗）</strong></td><td align="left">百度文心快码</td><td align="left">SPEC模式规范驱动，代码可回溯可干预</td></tr><tr><td align="left"><strong>前端&#x2F;全栈原型</strong></td><td align="left">字节TRAE</td><td align="left">草图转代码，实时预览，SWE-bench第一</td></tr><tr><td align="left"><strong>AI编程新手入门</strong></td><td align="left">TRAE &#x2F; 通义灵码</td><td align="left">上手简单，文档完善，免费额度充足</td></tr></tbody></table><h4 id="AI-Agent自动化"><a href="#AI-Agent自动化" class="headerlink" title="AI Agent自动化"></a>AI Agent自动化</h4><table><thead><tr><th align="left">场景</th><th align="left">推荐方案</th><th align="left">核心优势</th></tr></thead><tbody><tr><td align="left"><strong>本地Agent深度定制</strong></td><td align="left">OpenClaw</td><td align="left">开源透明，1700+ Skills，个性化能力强</td></tr><tr><td align="left"><strong>企业级Agent快速落地</strong></td><td align="left">腾讯WorkBuddy</td><td align="left">安全可控，五大IM渠道全通，腾讯内部验证</td></tr><tr><td align="left"><strong>遗留代码治理&#x2F;多Agent协作</strong></td><td align="left">阿里Qoder</td><td align="left">多Agent并行协作，长任务异步委派</td></tr><tr><td align="left"><strong>飞书生态企业Agent</strong></td><td align="left">字节ArkClaw</td><td align="left">火山引擎生态，企业级安全</td></tr><tr><td align="left"><strong>快速验证Agent概念</strong></td><td align="left">阿里JVS Claw</td><td align="left">移动端体验好，SaaS版本开箱即用</td></tr></tbody></table><h4 id="开发人员进阶指南"><a href="#开发人员进阶指南" class="headerlink" title="开发人员进阶指南"></a>开发人员进阶指南</h4><table><thead><tr><th align="left">目标</th><th align="left">推荐方案</th><th align="left">说明</th></tr></thead><tbody><tr><td align="left">想玩转开源Agent</td><td align="left">OpenClaw + 阶跃StepClaw（模型）</td><td align="left">Step 3.5 Flash调用量全球第一，模型性能顶尖</td></tr><tr><td align="left">想做企业级Agent产品</td><td align="left">WorkBuddy API + 私有化部署</td><td align="left">腾讯有完整的企业解决方案</td></tr><tr><td align="left">想探索Agent前沿</td><td align="left">OpenClaw + 多厂商对比</td><td align="left">体会各家的技术路线差异</td></tr><tr><td align="left">想快速交付企业Agent</td><td align="left">百度DuClaw企业版</td><td align="left">零部署门槛，配套服务完善</td></tr></tbody></table><h3 id="4-3-选型决策树"><a href="#4-3-选型决策树" class="headerlink" title="4.3 选型决策树"></a>4.3 选型决策树</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line">你是什么类型的用户？</span><br><span class="line">│</span><br><span class="line">├─ 普通办公用户</span><br><span class="line">│   ├─ 零基础、怕折腾</span><br><span class="line">│   │   ├─ 搜索需求多 → 百度DuClaw</span><br><span class="line">│   │   └─ 文档处理多 → 百度DuMate</span><br><span class="line">│   ├─ 微信重度用户</span><br><span class="line">│   │   └─ 腾讯WorkBuddy（零配置，微信直连）</span><br><span class="line">│   ├─ 飞书重度用户</span><br><span class="line">│   │   └─ 阿里JVS Claw（深度适配，体验最佳）</span><br><span class="line">│   └─ 政企/金融高安全</span><br><span class="line">│       └─ 360安全龙虾</span><br><span class="line">│</span><br><span class="line">└─ 开发人员</span><br><span class="line">    ├─ 日常写代码</span><br><span class="line">    │   ├─ Java/Go → 通义灵码</span><br><span class="line">    │   ├─ 微信小程序 → CodeBuddy</span><br><span class="line">    │   ├─ 前端/全栈 → TRAE</span><br><span class="line">    │   └─ 高合规行业 → 文心快码</span><br><span class="line">    │</span><br><span class="line">    └─ AI Agent自动化</span><br><span class="line">        ├─ 想深度定制/玩开源 → OpenClaw</span><br><span class="line">        ├─ 想快速落地企业 → WorkBuddy</span><br><span class="line">        ├─ 想玩多Agent协作 → Qoder</span><br><span class="line">        └─ 想体验最前沿 → 各家都试试</span><br></pre></td></tr></table></figure><h2 id="五、OpenClaw的安全风险：必须正视"><a href="#五、OpenClaw的安全风险：必须正视" class="headerlink" title="五、OpenClaw的安全风险：必须正视"></a>五、OpenClaw的安全风险：必须正视</h2><p>这是一个无法绕开的话题。</p><h3 id="5-1-已暴露的严重风险"><a href="#5-1-已暴露的严重风险" class="headerlink" title="5.1 已暴露的严重风险"></a>5.1 已暴露的严重风险</h3><p>2026年2月，工信部NVDB发布高危风险预警：</p><table><thead><tr><th align="left">风险类型</th><th align="left">数据</th></tr></thead><tbody><tr><td align="left">全球公网暴露实例</td><td align="left">超23万例</td></tr><tr><td align="left">已出现数据泄露</td><td align="left">8.78万例</td></tr><tr><td align="left"><strong>中国暴露实例</strong></td><td align="left"><strong>7.52万例（全球首位）</strong></td></tr></tbody></table><p>典型事故：<br>-<strong>信用卡被盗刷</strong>：用户安装后遭遇未授权消费<br>-<strong>邮件批量删除</strong>：Meta安全总监测试时，AI上下文压缩机制静默删除安全指令，擅自删除数百封核心邮件</p><h3 id="5-2-风险根源"><a href="#5-2-风险根源" class="headerlink" title="5.2 风险根源"></a>5.2 风险根源</h3><p>OpenClaw的设计哲学是“AI拥有高权限以完成复杂任务”，代价是：<br>1.<strong>上下文压缩机制</strong>：可能意外删除安全边界指令<br>2.<strong>插件生态投毒</strong>：约1&#x2F;4插件存在安全问题<br>3.<strong>配置门槛高</strong>：普通用户难以正确加固</p><h3 id="5-3-安全使用建议"><a href="#5-3-安全使用建议" class="headerlink" title="5.3 安全使用建议"></a>5.3 安全使用建议</h3><p>如果确定要用OpenClaw，以下是必要的安全措施：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 1. 限制AI权限，勿给root/admin权限</span></span><br><span class="line"><span class="comment"># 2. 防火墙限制公网访问</span></span><br><span class="line"><span class="comment"># 3. 插件安装前进行安全审计</span></span><br><span class="line"><span class="comment"># 4. 敏感操作添加人工确认步骤</span></span><br><span class="line"><span class="comment"># 5. 定期检查操作日志</span></span><br></pre></td></tr></table></figure><h2 id="六、下一代AI：龙虾大战的终局在哪里？"><a href="#六、下一代AI：龙虾大战的终局在哪里？" class="headerlink" title="六、下一代AI：龙虾大战的终局在哪里？"></a>六、下一代AI：龙虾大战的终局在哪里？</h2><h3 id="6-1-2026：Agent能力元年"><a href="#6-1-2026：Agent能力元年" class="headerlink" title="6.1 2026：Agent能力元年"></a>6.1 2026：Agent能力元年</h3><p>2026年被业界公认为<strong>AI Agent能力元年</strong>，AI系统首次具备三大核心能力：</p><table><thead><tr><th align="left">核心能力</th><th align="left">说明</th></tr></thead><tbody><tr><td align="left"><strong>持续感知</strong></td><td align="left">实时感知环境变化</td></tr><tr><td align="left"><strong>自主决策</strong></td><td align="left">不再依赖人工逐步确认</td></tr><tr><td align="left"><strong>行动闭环</strong></td><td align="left">从规划到执行到反馈全流程自主</td></tr></tbody></table><h3 id="6-2-五个趋势判断"><a href="#6-2-五个趋势判断" class="headerlink" title="6.2 五个趋势判断"></a>6.2 五个趋势判断</h3><p><strong>① 从“补全”到“自治”</strong><br>当前AI工具大多是“增强的IDE插件”，下一代进化为<strong>自治的工作搭档</strong>——你说“把这个遗留系统迁移到微服务”，AI自己拆解、自己执行、自己测试、自己写文档。</p><p><strong>② 多Agent协作成为标配</strong><br>单Agent能力有上限，多Agent并行协作才能处理复杂任务。OpenClaw的1700+ Skills、腾讯的三层多Agent架构都在朝这个方向演进。未来的开发团队里，可能有多个各司其职的AI Agent。</p><p><strong>③ 安全与能力的天平重新校准</strong><br>OpenClaw的安全问题敲响警钟。下一代工具需要在“AI自主权限”和“安全边界”之间找到新平衡——规范驱动开发（如百度的SPEC模式）将成为企业级标配。</p><p><strong>④ 本地化与云端化走向融合</strong><br>OpenClaw的本地Agent路线 + 国内大厂的云端路线，最终会融合：敏感操作本地执行，复杂推理云端计算。</p><p><strong>⑤ 入口争夺战决定生死</strong><br>社交入口（微信&#x2F;飞书）和桌面入口（操作系统&#x2F;浏览器）的争夺，将决定哪家的龙虾笑到最后。</p><h3 id="6-3-我的判断"><a href="#6-3-我的判断" class="headerlink" title="6.3 我的判断"></a>6.3 我的判断</h3><blockquote><p><strong>未来3年内，AI编程工具会经历三次跃迁：</strong><br>-<strong>第一跃迁（已完成）</strong>：从“问答”到“补全”<br>-<strong>第二跃迁（2026-2027）</strong>：从“补全”到“自治” ← 我们正在这个节点<br>-<strong>第三跃迁（2028+）</strong>：从“自治”到“共生”——AI成为团队正式成员</p></blockquote><p>OpenClaw和国内商业龙虾并非非此即彼——<strong>OpenClaw代表Agent化的技术前沿，国内大厂代表工程化和安全的工程化实践</strong>。最佳策略：日常用大厂工具保障稳定，闲时用OpenClaw探索前沿。</p><h2 id="七、总结"><a href="#七、总结" class="headerlink" title="七、总结"></a>七、总结</h2><table><thead><tr><th align="left">维度</th><th align="left">OpenClaw（开源）</th><th align="left">国内商业龙虾</th></tr></thead><tbody><tr><td align="left"><strong>定位</strong></td><td align="left">技术极客、深度定制</td><td align="left">零门槛、开箱即用</td></tr><tr><td align="left"><strong>优势</strong></td><td align="left">本地运行、开源透明、高度可定制</td><td align="left">安全可控、IM集成、免配置</td></tr><tr><td align="left"><strong>短板</strong></td><td align="left">安全风险高、配置复杂</td><td align="left">灵活性受限、非开源</td></tr><tr><td align="left"><strong>普通办公用户</strong></td><td align="left">❌ 不推荐</td><td align="left">✅ 推荐WorkBuddy&#x2F;DuClaw</td></tr><tr><td align="left"><strong>开发者</strong></td><td align="left">✅ 推荐（深度定制）</td><td align="left">✅ 推荐（日常编码）</td></tr></tbody></table><p><strong>选型一句话：</strong><br>-<strong>普通办公用户</strong>→ 百度DuClaw（最简单）&#x2F; 腾讯WorkBuddy（微信党）&#x2F; 阿里JVS Claw（飞书党）<br>-<strong>开发者写代码</strong>→ 通义灵码（Java）&#x2F; TRAE（前端）&#x2F; 文心快码（高合规）<br>-<strong>开发者玩Agent</strong>→ OpenClaw（玩开源）&#x2F; WorkBuddy（企业落地）<br>-<strong>政企&#x2F;金融</strong>→ 360安全龙虾 &#x2F; 字节ArkClaw</p><p>龙虾大战才刚开始，没有永远的赢家。保持尝鲜，保持判断。</p><hr><p><em>你有使用OpenClaw或国内龙虾产品的经验吗？欢迎留言交流。</em></p>]]></content>
    
    
    <summary type="html">&lt;h2 id=&quot;前言：一只龙虾，引爆了2026年的AI-Agent大战&quot;&gt;&lt;a href=&quot;#前言：一只龙虾，引爆了2026年的AI-Agent大战&quot; class=&quot;headerlink&quot; title=&quot;前言：一只龙虾，引爆了2026年的AI Agent大战&quot;&gt;&lt;/a&gt;前言：一只龙虾，引爆了2026年的AI Agent大战&lt;/h2&gt;&lt;p&gt;2026年3月，OpenClaw（小龙虾）彻底引爆了国内AI圈。&lt;/p&gt;
&lt;p&gt;这只因红色龙虾Logo得名的开源AI Agent，从腾讯大厦千人排队装机到“养虾攻略”刷屏网络，一夜之间成了科技圈顶流。随后，国内大厂跑步入场——腾讯端出WorkBuddy+QClaw+ClawBot三件套，阿里祭出JVS Claw，字节上线ArkClaw，百度推出“龙虾全家桶”，360搞起安全龙虾……短短一个月，市面上涌现了30余款“国产龙虾”，行业戏称“百虾大战”。&lt;/p&gt;
&lt;p&gt;本文试着把这件事理清楚：&lt;strong&gt;开源OpenClaw和国内大厂的商业版龙虾，到底有什么区别？普通办公用户和开发者，该怎么选？&lt;/strong&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="AI资讯" scheme="https://blog.lhliang.com/categories/AI%E8%B5%84%E8%AE%AF/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="智能体" scheme="https://blog.lhliang.com/tags/%E6%99%BA%E8%83%BD%E4%BD%93/"/>
    
    <category term="工具" scheme="https://blog.lhliang.com/tags/%E5%B7%A5%E5%85%B7/"/>
    
  </entry>
  
  <entry>
    <title>Citrix退出中国一年后：那些大客户现在怎么样了？</title>
    <link href="https://blog.lhliang.com/p/c8a2b734.html"/>
    <id>https://blog.lhliang.com/p/c8a2b734.html</id>
    <published>2026-04-17T04:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.139Z</updated>
    
    <content type="html"><![CDATA[<p>2023年12月3日，思杰（Citrix）正式停止在中国大陆、香港、澳门地区的一切新商业交易。这不是一次战略收缩，是彻底的撤退。</p><p>在此之前，Citrix在中国的客户名单堪称“豪华”：华为、中国移动、平安银行、建设银行、宁德时代……都是各自领域的头部企业。<strong>而现在，他们不得不重新寻找桌面云的答案。</strong></p><span id="more"></span><h2 id="一、背景：Citrix为什么会退出中国？"><a href="#一、背景：Citrix为什么会退出中国？" class="headerlink" title="一、背景：Citrix为什么会退出中国？"></a>一、背景：Citrix为什么会退出中国？</h2><h3 id="退出始末"><a href="#退出始末" class="headerlink" title="退出始末"></a>退出始末</h3><table><thead><tr><th>时间节点</th><th>事件</th></tr></thead><tbody><tr><td>2023年11月8日</td><td>Cloud Software Group（Citrix母公司）宣布退出中国</td></tr><tr><td>2023年12月3日</td><td>正式生效，停止所有新商业交易（含渠道合作）</td></tr><tr><td>2024年后</td><td>存量系统逐步失去官方技术支持与安全更新</td></tr></tbody></table><h3 id="深层原因：被“卷”出去的不只是Citrix"><a href="#深层原因：被“卷”出去的不只是Citrix" class="headerlink" title="深层原因：被“卷”出去的不只是Citrix"></a>深层原因：被“卷”出去的不只是Citrix</h3><p>Citrix的退出并非单一因素，而是多重压力叠加的结果：</p><table><thead><tr><th>压力因素</th><th>具体表现</th></tr></thead><tbody><tr><td><strong>产品创新停滞</strong></td><td>十几年依赖XenDesktop、XenApp老产品线，无重大突破</td></tr><tr><td><strong>收购战略失败</strong></td><td>收购XenSource后KVM崛起；收购CloudStack后OpenStack兴起，两次押注均落空</td></tr><tr><td><strong>本土化能力薄弱</strong></td><td>外设驱动（打印机、读卡器、U盾等）适配慢，无法满足教育医疗等行业的个性化需求</td></tr><tr><td><strong>国产替代政策</strong></td><td>政府大力推动自主创新，外企软件面临系统性压力</td></tr><tr><td><strong>公有云冲击</strong></td><td>阿里云无影、华为云桌面等公有云VDI产品快速崛起</td></tr></tbody></table><p>对比一下数字：VMware同期营收从13.3亿增至118亿美元，而Citrix仅从13.9亿增至32.2亿美元——差距越拉越大。</p><hr><h2 id="二、客户受冲击图谱：谁最痛？"><a href="#二、客户受冲击图谱：谁最痛？" class="headerlink" title="二、客户受冲击图谱：谁最痛？"></a>二、客户受冲击图谱：谁最痛？</h2><h3 id="受影响客户群"><a href="#受影响客户群" class="headerlink" title="受影响客户群"></a>受影响客户群</h3><p>Citrix进入中国市场时定位为“大客户、高价值企业”，客户集中在以下行业：</p><table><thead><tr><th>行业</th><th>代表客户类型</th><th>受冲击程度</th></tr></thead><tbody><tr><td><strong>金融（银行&#x2F;保险&#x2F;证券）</strong></td><td>平安银行、建设银行、头部券商</td><td>⭐⭐⭐⭐⭐ 最重</td></tr><tr><td><strong>大型制造业</strong></td><td>宁德时代、头部电池制造商</td><td>⭐⭐⭐⭐ 很重</td></tr><tr><td><strong>电信运营商</strong></td><td>中国移动、中国电信、中国联通</td><td>⭐⭐⭐⭐ 很重</td></tr><tr><td><strong>科技&#x2F;互联网</strong></td><td>华为、头部AI企业</td><td>⭐⭐⭐⭐ 很重</td></tr><tr><td><strong>政务&#x2F;教育&#x2F;医疗</strong></td><td>医院、高校、政务云</td><td>⭐⭐⭐ 中等</td></tr><tr><td><strong>外资企业</strong></td><td>在华跨国企业（亚太区决策）</td><td>⭐⭐⭐ 中等</td></tr></tbody></table><h3 id="客户面临的核心问题"><a href="#客户面临的核心问题" class="headerlink" title="客户面临的核心问题"></a>客户面临的核心问题</h3><p><strong>不只是换一套软件，而是重建一套体系。</strong></p><table><thead><tr><th>问题</th><th>具体影响</th></tr></thead><tbody><tr><td><strong>技术支持中断</strong></td><td>无法获得官方安全补丁、系统升级</td></tr><tr><td><strong>许可证续费困境</strong></td><td>无法新增授权，现有授权无法扩展</td></tr><tr><td><strong>数据迁移压力</strong></td><td>多年积累的桌面镜像、应用配置需整体迁移</td></tr><tr><td><strong>AD域管强依赖</strong></td><td>Citrix与微软AD深度绑定，这是最难解的一环</td></tr><tr><td><strong>用户体验保障</strong></td><td>迁移过程必须业务不中断，用户无感知</td></tr></tbody></table><hr><h2 id="三、最容易被忽视的问题：AD域管迁移"><a href="#三、最容易被忽视的问题：AD域管迁移" class="headerlink" title="三、最容易被忽视的问题：AD域管迁移"></a>三、最容易被忽视的问题：AD域管迁移</h2><h3 id="为什么AD域管才是真正的“坑”"><a href="#为什么AD域管才是真正的“坑”" class="headerlink" title="为什么AD域管才是真正的“坑”"></a>为什么AD域管才是真正的“坑”</h3><p>Citrix桌面云与微软Active Directory（AD）是<strong>强绑定关系</strong>——用户认证、权限管理、组策略全部依赖AD。</p><p>这带来一个两难困境：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">选择A：先完成云桌面与现有AD的对接</span><br><span class="line">  → 短期见效快，但未来替换AD时所有云桌面对接要&quot;重新来过&quot;</span><br><span class="line"></span><br><span class="line">选择B：云桌面和AD同步替换</span><br><span class="line">  → 迁移复杂度爆炸，失败风险极高</span><br></pre></td></tr></table></figure><blockquote><p>某金融企业在调研后得出结论：<strong>Citrix替换的难点不在桌面云本身，而在于整个身份认证体系的重构。</strong></p></blockquote><h3 id="国产身份域管：解决这个问题的关键"><a href="#国产身份域管：解决这个问题的关键" class="headerlink" title="国产身份域管：解决这个问题的关键"></a>国产身份域管：解决这个问题的关键</h3><p>国内厂商已推出“国产身份域管”方案，用于替代微软AD：</p><table><thead><tr><th>功能</th><th>能力</th></tr></thead><tbody><tr><td>身份认证</td><td>LDAP身份鉴权，支持多因素认证（MFA）</td></tr><tr><td>单点登录</td><td>SSO无缝对接各类应用</td></tr><tr><td>泛终端准入</td><td>纳管IoT设备，支持国产芯片&#x2F;操作系统</td></tr><tr><td>生态对接</td><td>已完成华为云桌面、深信服桌面云等主流产品对接</td></tr></tbody></table><hr><h2 id="四、国产桌面云厂商全对比"><a href="#四、国产桌面云厂商全对比" class="headerlink" title="四、国产桌面云厂商全对比"></a>四、国产桌面云厂商全对比</h2><p>2026年中国云桌面市场规模突破<strong>120亿元</strong>，国产化率超过<strong>85%</strong>，五大厂商占据75%市场份额。</p><h3 id="厂商横向对比"><a href="#厂商横向对比" class="headerlink" title="厂商横向对比"></a>厂商横向对比</h3><table><thead><tr><th>厂商</th><th>旗舰产品</th><th>架构</th><th>核心优势</th><th>最大亮点</th></tr></thead><tbody><tr><td><strong>锐捷网络</strong></td><td>RG-CT1000-G2</td><td>VDI</td><td>6W低功耗，数据不落地</td><td>年省电500元&#x2F;台，ESG绿色认证</td></tr><tr><td><strong>华为</strong></td><td>Huawei CloudDesktop</td><td>VDI&#x2F;IDV混合</td><td>鲲鹏芯片，全栈信创</td><td>多终端无缝切换，生态最完整</td></tr><tr><td><strong>深信服</strong></td><td>aDesk</td><td>VDI&#x2F;IDV双模</td><td>零信任安全，勒索防护</td><td>金融行业案例最丰富（单客户22000+节点）</td></tr><tr><td><strong>安超云</strong></td><td>ArcherOS</td><td>超融合云桌面</td><td>100%国产化率</td><td>信创场景交付周期缩短50%</td></tr><tr><td><strong>和信创天</strong></td><td>VEMS三V一体</td><td>VDI&#x2F;IDV&#x2F;VOI混合</td><td>医疗行业第一</td><td>PACS影像秒级加载</td></tr></tbody></table><h3 id="行业推荐方案"><a href="#行业推荐方案" class="headerlink" title="行业推荐方案"></a>行业推荐方案</h3><table><thead><tr><th>行业</th><th>推荐方案</th><th>理由</th></tr></thead><tbody><tr><td><strong>金融&#x2F;银行</strong></td><td>锐捷VDI 或 深信服aDesk</td><td>数据不落地，等保2.0合规，案例丰富</td></tr><tr><td><strong>政府&#x2F;政务</strong></td><td>华为CloudDesktop 或 安超云</td><td>全栈信创，鲲鹏生态完善</td></tr><tr><td><strong>医疗</strong></td><td>和信创天</td><td>PACS影像支持行业领先</td></tr><tr><td><strong>大型制造业</strong></td><td>深信服aDesk</td><td>单客户22000+节点验证，3D设计场景强</td></tr><tr><td><strong>能源&#x2F;电力</strong></td><td>锐捷VDI</td><td>高安全、低功耗、运维简单</td></tr><tr><td><strong>信创改造项目</strong></td><td>安超云</td><td>100%国产化率，支持龙芯&#x2F;飞腾</td></tr></tbody></table><hr><h2 id="五、行业案例：他们是怎么迁移的？"><a href="#五、行业案例：他们是怎么迁移的？" class="headerlink" title="五、行业案例：他们是怎么迁移的？"></a>五、行业案例：他们是怎么迁移的？</h2><h3 id="金融行业：最大规模的替换"><a href="#金融行业：最大规模的替换" class="headerlink" title="金融行业：最大规模的替换"></a>金融行业：最大规模的替换</h3><p>某国有大型银行卡中心的替换案例：</p><p>-<strong>背景</strong>：呼叫中心+运维开发场景，全面替换Citrix<br>-<strong>方案</strong>：深信服aDesk<br>-<strong>规模</strong>：<strong>22000+节点</strong>（国内已知最大单客户替换案例）<br>-<strong>效果</strong>：业务零中断，用户低感知迁移</p><blockquote><p>这意味着：金融行业的Citrix替换，已经有了足够大规模的验证。</p></blockquote><h3 id="制造业：3D设计和产线的双重挑战"><a href="#制造业：3D设计和产线的双重挑战" class="headerlink" title="制造业：3D设计和产线的双重挑战"></a>制造业：3D设计和产线的双重挑战</h3><p>某头部电池制造商的替换经验：</p><p>-<strong>场景</strong>：产品研发（3D CAD）、生产线工控、办公三种场景并行<br>-<strong>方案</strong>：深信服aDesk<br>-<strong>规模</strong>：2000+节点<br>-<strong>挑战</strong>：产线工控环境对外设要求极高（开发板J-Link、CAN总线、FPGA等）<br>-<strong>解决</strong>：深信服开放了硬件研发场景专用驱动支持</p><h3 id="能源行业：安全与稳定压倒一切"><a href="#能源行业：安全与稳定压倒一切" class="headerlink" title="能源行业：安全与稳定压倒一切"></a>能源行业：安全与稳定压倒一切</h3><p>某头部发电集团的替换：</p><p>-<strong>场景</strong>：内网办公、评标中心、外网应用发布<br>-<strong>规模</strong>：3000+节点<br>-<strong>特点</strong>：在不停电的前提下完成切换，安全要求极高</p><hr><h2 id="六、迁移路线图：怎么换才不翻车？"><a href="#六、迁移路线图：怎么换才不翻车？" class="headerlink" title="六、迁移路线图：怎么换才不翻车？"></a>六、迁移路线图：怎么换才不翻车？</h2><h3 id="推荐的迁移四步法"><a href="#推荐的迁移四步法" class="headerlink" title="推荐的迁移四步法"></a>推荐的迁移四步法</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line">第一步：全面盘点（2-4周）</span><br><span class="line">  ├── 清点现有桌面数量、应用清单、外设清单</span><br><span class="line">  ├── 梳理与AD域的依赖关系</span><br><span class="line">  ├── 识别高风险应用（核心业务系统、特殊外设）</span><br><span class="line">  └── 评估网络架构与带宽</span><br><span class="line"></span><br><span class="line">第二步：选型与POC验证（4-8周）</span><br><span class="line">  ├── 根据行业特点筛选2-3家厂商入围</span><br><span class="line">  ├── 在小范围进行POC测试（50-100台）</span><br><span class="line">  ├── 重点验证：外设兼容、AD对接、性能体验</span><br><span class="line">  └── 选定主供应商</span><br><span class="line"></span><br><span class="line">第三步：身份域管先行（与第二步并行）</span><br><span class="line">  ├── 部署国产身份域管（如宁盾等）</span><br><span class="line">  ├── 完成与新桌面云平台的对接测试</span><br><span class="line">  ├── 验证SSO单点登录、权限策略</span><br><span class="line">  └── 切记：身份域管要走在桌面云迁移前面</span><br><span class="line"></span><br><span class="line">第四步：分批迁移与并行运行（3-6个月）</span><br><span class="line">  ├── 先行迁移非核心业务部门（办公场景）</span><br><span class="line">  ├── 核心业务系统保留Citrix并行运行</span><br><span class="line">  ├── 逐步扩大新平台承载量</span><br><span class="line">  ├── 确认稳定后关闭Citrix节点</span><br><span class="line">  └── 保留Citrix环境作为回滚兜底</span><br></pre></td></tr></table></figure><h3 id="避坑提示"><a href="#避坑提示" class="headerlink" title="避坑提示"></a>避坑提示</h3><table><thead><tr><th>坑</th><th>建议</th></tr></thead><tbody><tr><td><strong>低估AD域管复杂度</strong></td><td>身份域管迁移是独立项目，建议与桌面云迁移并行推进</td></tr><tr><td><strong>只看价格</strong></td><td>迁移失败成本远高于差价，选择有大规模案例的厂商</td></tr><tr><td><strong>忽视外设兼容</strong></td><td>打印机、U盾、高拍仪等外设必须逐项验证</td></tr><tr><td><strong>一次性全量迁移</strong></td><td>必须分批迁移，保留老环境作为回滚</td></tr><tr><td><strong>忽视用户体验</strong></td><td>迁移后桌面协议体验差异大，必须充分测试</td></tr></tbody></table><hr><h2 id="七、各行业处境与应对汇总"><a href="#七、各行业处境与应对汇总" class="headerlink" title="七、各行业处境与应对汇总"></a>七、各行业处境与应对汇总</h2><table><thead><tr><th>行业</th><th>核心痛点</th><th>推荐路线</th><th>进度</th></tr></thead><tbody><tr><td><strong>金融</strong></td><td>AD域管复杂，核心系统不能断</td><td>深信服&#x2F;锐捷，分批迁移</td><td>⭐⭐⭐⭐ 积极推进</td></tr><tr><td><strong>电信运营商</strong></td><td>规模大，自研能力强</td><td>华为+自研并行</td><td>⭐⭐⭐⭐ 稳步推进</td></tr><tr><td><strong>大型制造业</strong></td><td>产线工控外设复杂</td><td>深信服，专业驱动支持</td><td>⭐⭐⭐ 有案例可循</td></tr><tr><td><strong>政务</strong></td><td>信创政策压力</td><td>华为&#x2F;安超云全栈信创</td><td>⭐⭐⭐⭐ 政策驱动</td></tr><tr><td><strong>医疗</strong></td><td>PACS影像性能要求高</td><td>和信创天，医疗行业定制</td><td>⭐⭐⭐ 稳步推进</td></tr><tr><td><strong>外资企业</strong></td><td>亚太区决策，本地执行</td><td>观望或跟随总部策略</td><td>⭐⭐ 进度最慢</td></tr><tr><td><strong>中小企业</strong></td><td>成本敏感，技术能力弱</td><td>公有云桌面（阿里云无影）</td><td>⭐⭐⭐ 灵活切换</td></tr></tbody></table><hr><h2 id="八、结语"><a href="#八、结语" class="headerlink" title="八、结语"></a>八、结语</h2><p>Citrix的退出，对中国客户来说既是危机也是机遇。</p><p><strong>危机在于：</strong>多年积累的桌面云体系必须重建，AD域管迁移的复杂性超乎想象，迁移过程中的业务连续性是最大挑战。</p><p><strong>机遇在于：</strong>国产桌面云经过几年追赶，2026年已从“能用”走向“好用”。锐捷、华为、深信服等厂商不仅完成了功能对标，甚至在某些场景（低功耗、AI调度、安全防护）上实现了超越。</p><blockquote><p>一个值得注意的信号是：某金融企业已用<strong>三年时间</strong>规划全面国产化，某头部制造商已验证了<strong>22000+节点</strong>的迁移能力。这些案例证明，<strong>Citrix留下的坑，是可以填上的。</strong></p></blockquote><p>关键在于：提前规划、分步实施、身份域管先行。</p><hr><p><em>参考来源：</em></p><ul><li><em>IT精选《思杰退出中国：被华为、锐捷、深信服卷走的》2023年11月</em></li><li><em>搜狐&#x2F;宁盾《Citrix虚拟桌面退出中国后，国产云桌面还须国产AD域管来承接》2024年1月</em></li><li><em>深信服《Citrix离场背景下，一文说透如何寻找桌面云替代升级方案》2024年5月</em></li><li><em>IT168《2026云桌面哪家强？五大国产厂商横评+选购指南》2026年2月</em></li><li><em>中华网《2026年云桌面厂商：国产化替代环境下云桌面推荐指南》2026年4月</em></li></ul>]]></content>
    
    
    <summary type="html">&lt;p&gt;2023年12月3日，思杰（Citrix）正式停止在中国大陆、香港、澳门地区的一切新商业交易。这不是一次战略收缩，是彻底的撤退。&lt;/p&gt;
&lt;p&gt;在此之前，Citrix在中国的客户名单堪称“豪华”：华为、中国移动、平安银行、建设银行、宁德时代……都是各自领域的头部企业。&lt;strong&gt;而现在，他们不得不重新寻找桌面云的答案。&lt;/strong&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="科技" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="虚拟化" scheme="https://blog.lhliang.com/tags/%E8%99%9A%E6%8B%9F%E5%8C%96/"/>
    
    <category term="云桌面" scheme="https://blog.lhliang.com/tags/%E4%BA%91%E6%A1%8C%E9%9D%A2/"/>
    
    <category term="信创" scheme="https://blog.lhliang.com/tags/%E4%BF%A1%E5%88%9B/"/>
    
    <category term="国产化" scheme="https://blog.lhliang.com/tags/%E5%9B%BD%E4%BA%A7%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>VMware在中国走向终局？各行业用户的应对图谱全解析</title>
    <link href="https://blog.lhliang.com/p/a3f8c921.html"/>
    <id>https://blog.lhliang.com/p/a3f8c921.html</id>
    <published>2026-04-17T01:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.128Z</updated>
    
    <content type="html"><![CDATA[<p>博通（Broadcom）2023年以690亿美元完成对VMware的收购，随即改变了国内超<strong>2万家</strong>VMware用户的命运。订阅制强制切换、续保费用涨3～15倍、合作伙伴生态骤然萎缩……这场变革没有旁观者。</p><p>但“一刀切”地说“全部替换”并不准确——<strong>不同行业的VMware用户，处境大相径庭，应对路线也各有侧重。</strong></p><span id="more"></span><h2 id="一、背景：VMware国内存量有多大？"><a href="#一、背景：VMware国内存量有多大？" class="headerlink" title="一、背景：VMware国内存量有多大？"></a>一、背景：VMware国内存量有多大？</h2><p>根据云宏信息的行业研究，国内VMware存量市场规模约<strong>1000亿元</strong>，行业分布如下：</p><table><thead><tr><th>行业</th><th>占比</th><th>核心特点</th></tr></thead><tbody><tr><td><strong>金融行业</strong></td><td>40%</td><td>核心系统深度依赖，合规压力最大</td></tr><tr><td><strong>电信运营商</strong></td><td>15%</td><td>规模庞大，自研能力强</td></tr><tr><td><strong>能源&#x2F;交通&#x2F;政务&#x2F;教育&#x2F;医疗&#x2F;制造</strong></td><td>45%</td><td>分散但体量不小，诉求各异</td></tr></tbody></table><p>可以说，这场变革影响的不只是IT部门，更是各行各业的数字底座。</p><hr><h2 id="二、金融行业：最大块头，压力最重，行动最快"><a href="#二、金融行业：最大块头，压力最重，行动最快" class="headerlink" title="二、金融行业：最大块头，压力最重，行动最快"></a>二、金融行业：最大块头，压力最重，行动最快</h2><h3 id="处境"><a href="#处境" class="headerlink" title="处境"></a>处境</h3><p>金融行业占国内VMware存量的40%，是绝对的第一大用户群体。银行、保险、券商、基金、信托……大量核心生产系统建立在VMware之上。</p><p>博通涨价带来的冲击是直接的：某国有银行IT负责人透露，续保费用从每年数百万增至<strong>数千万，部分场景涨幅超10倍</strong>。</p><p>更严峻的是，金融行业面临双重压力：<br>-<strong>成本暴涨</strong>：续保费用已不可持续<br>-<strong>信创合规</strong>：监管明确要求关键信息基础设施逐步国产化</p><h3 id="应对路线"><a href="#应对路线" class="headerlink" title="应对路线"></a>应对路线</h3><p><strong>已走在前面。</strong>金融行业的国产化替代是所有行业中启动最早、推进最快的。部分银行早在2017年就开始测试国产超融合方案，到2025年已进入全面收尾阶段。</p><p>典型案例：<br>-<strong>某大型国有银行</strong>：在全国30+家分行部署1500+节点SmartX超融合，承载上万台虚拟机，完整替代VMware vSphere + vSAN + NSX<br>-<strong>某头部券商</strong>：全国数据中心部署1400+节点、20000+虚拟机，历时多年从VMware全面迁移至国产平台<br>-<strong>某头部保险机构</strong>：历时3年分阶段替代，核心险种系统已稳定运行<br>-<strong>某期货机构</strong>：将数十台ESXi主机整合为13个节点的国产集群，并新建灾备中心</p><p><strong>主流选型方向：</strong></p><table><thead><tr><th>类型</th><th>推荐方案</th><th>理由</th></tr></thead><tbody><tr><td>大型国有银行&#x2F;保险</td><td>华为FusionSphere、SmartX超融合</td><td>大规模验证充分，金融级稳定性</td></tr><tr><td>中型券商&#x2F;基金&#x2F;信托</td><td>SmartX、ZStack ZSphere、深信服</td><td>迁移工具成熟，停机窗口短</td></tr><tr><td>容灾场景</td><td>SmartX + Everoute（替代NSX）</td><td>网络微分段能力完备</td></tr></tbody></table><blockquote><p><strong>结论</strong>：金融行业的VMware时代已进入尾声，替代路线清晰，执行深度领先其他行业。</p></blockquote><hr><h2 id="三、政府-x2F-政务：政策驱动，信创优先，国产化最坚决"><a href="#三、政府-x2F-政务：政策驱动，信创优先，国产化最坚决" class="headerlink" title="三、政府&#x2F;政务：政策驱动，信创优先，国产化最坚决"></a>三、政府&#x2F;政务：政策驱动，信创优先，国产化最坚决</h2><h3 id="处境-1"><a href="#处境-1" class="headerlink" title="处境"></a>处境</h3><p>政府机构和政务云平台受信创政策约束最直接——“关键信息基础设施国产化”不是选做题，是必答题。相较于成本压力，政策合规才是驱动政务行业加速替换的主要动力。</p><p>2025年前后，政务信息中心迎来VMware合同到期的集中窗口，大量项目进入选型阶段。</p><h3 id="应对路线-1"><a href="#应对路线-1" class="headerlink" title="应对路线"></a>应对路线</h3><p><strong>全面信创替代，优先考虑国产化深度。</strong></p><p>政务行业的选型逻辑不同于商业企业：<strong>不追求最低价，追求最合规</strong>——要求平台对国产芯片（鲲鹏、海光、飞腾）和国产操作系统（麒麟、统信UOS）的适配能力，通常还需通过等级保护测评。</p><p>主流选型方案对比：</p><table><thead><tr><th>方案</th><th>信创适配</th><th>优势</th><th>不足</th></tr></thead><tbody><tr><td><strong>华为FusionCompute</strong></td><td>★★★★★</td><td>全栈鲲鹏生态，政务案例丰富</td><td>绑定华为硬件生态</td></tr><tr><td><strong>ZStack ZSphere</strong></td><td>★★★★★</td><td>四架构全支持，迁移工具最强</td><td>品牌知名度低于华为H3C</td></tr><tr><td><strong>新华三CAS</strong></td><td>★★★★☆</td><td>渠道广，三次刷新SPECvirt纪录</td><td>超大规模场景支撑能力弱于华为</td></tr><tr><td><strong>深信服aSV</strong></td><td>★★★★☆</td><td>超融合一体化，部署快</td><td>超大规模稳定性待验证</td></tr></tbody></table><blockquote><p><strong>结论</strong>：政府机构以“信创合规”为首要目标，整体迁移节奏快，国产化程度最彻底。</p></blockquote><hr><h2 id="四、电信运营商：体量最大，自研为主，走最“重”的路"><a href="#四、电信运营商：体量最大，自研为主，走最“重”的路" class="headerlink" title="四、电信运营商：体量最大，自研为主，走最“重”的路"></a>四、电信运营商：体量最大，自研为主，走最“重”的路</h2><h3 id="处境-2"><a href="#处境-2" class="headerlink" title="处境"></a>处境</h3><p>电信运营商占国内VMware存量15%，但实际规模极为庞大——三大运营商数据中心的VMware环境动辄以万台虚拟机计。</p><p>运营商面临的不只是成本问题，更有<strong>自主可控和供应链安全</strong>的战略考量：一旦外供软件停止服务（参考俄罗斯案例），核心通信网络将面临灾难性风险。</p><h3 id="应对路线-2"><a href="#应对路线-2" class="headerlink" title="应对路线"></a>应对路线</h3><p><strong>自主研发 + 行业定制，走最“重”的路。</strong></p><p>与金融、政务行业不同，电信运营商倾向于自研或深度定制虚拟化底座，而非简单采购现成产品：</p><p>-<strong>中国电信</strong>：推进“息壤”云平台建设，基于OpenStack + KVM的自研架构承接核心网和IT系统<br>-<strong>中国移动</strong>：研发移动云平台，大量内部系统迁移至自主云平台，减少对VMware依赖<br>-<strong>中国联通</strong>：联合华为、中兴推进NFV&#x2F;SDN改造，底层虚拟化逐步去VMware化</p><p><strong>商用替代方案补充：</strong><br>对于支撑系统、办公系统等非核心场景，运营商也会采用华为FusionSphere等商用国产方案快速替代。</p><blockquote><p><strong>结论</strong>：运营商是VMware去化中周期最长、投入最大的行业，但也是战略意志最坚定的群体。</p></blockquote><hr><h2 id="五、能源-x2F-电力行业：安全是底线，替换节奏稳健"><a href="#五、能源-x2F-电力行业：安全是底线，替换节奏稳健" class="headerlink" title="五、能源&#x2F;电力行业：安全是底线，替换节奏稳健"></a>五、能源&#x2F;电力行业：安全是底线，替换节奏稳健</h2><h3 id="处境-3"><a href="#处境-3" class="headerlink" title="处境"></a>处境</h3><p>国家电网、中石化、中石油等能源央企对IT基础设施的稳定性要求极高——电力调度、管道控制等系统不允许因迁移失误造成任何中断。</p><p>能源行业受信创政策影响同样显著，但相较金融行业，<strong>替换节奏更为谨慎</strong>：宁可多付几年续保费，也要保证迁移万无一失。</p><h3 id="应对路线-3"><a href="#应对路线-3" class="headerlink" title="应对路线"></a>应对路线</h3><p><strong>分级替代，核心系统最后动。</strong></p><p>典型策略：<br>1.<strong>办公&#x2F;OA类系统</strong>：优先迁移，风险低，验证国产平台能力<br>2.<strong>ERP&#x2F;业务支撑系统</strong>：第二阶段，完成充分POC验证后迁移<br>3.<strong>生产控制&#x2F;调度系统</strong>：最后迁移，或长期维持VMware双栈运行</p><p>主流选型以<strong>华为FusionSphere</strong>为主，兼顾鲲鹏&#x2F;昇腾全栈信创。国家电网旗下多家省级公司已完成试点迁移，并逐步向全域推广。</p><blockquote><p><strong>结论</strong>：能源行业以“零停机、零事故”为最高优先级，替换在有条不紊中推进。</p></blockquote><hr><h2 id="六、医疗行业：数据敏感，国产化意愿强，但能力参差不齐"><a href="#六、医疗行业：数据敏感，国产化意愿强，但能力参差不齐" class="headerlink" title="六、医疗行业：数据敏感，国产化意愿强，但能力参差不齐"></a>六、医疗行业：数据敏感，国产化意愿强，但能力参差不齐</h2><h3 id="处境-4"><a href="#处境-4" class="headerlink" title="处境"></a>处境</h3><p>医院信息系统（HIS、EMR、影像PACS）对可用性要求极高，且涉及大量患者隐私数据，数据安全合规压力同样不小。</p><p><strong>医疗行业的尴尬在于：替换意愿强，但IT能力普遍较弱。</strong>大型三甲医院有专职IT团队，尚可推进国产化；基层医院和地市级医疗机构则严重依赖集成商，自主能力不足。</p><h3 id="应对路线-4"><a href="#应对路线-4" class="headerlink" title="应对路线"></a>应对路线</h3><p><strong>委托集成商主导，超融合一体化方案受欢迎。</strong></p><p>-<strong>大型三甲医院</strong>：主动推进信创改造，选择华为FusionSphere或SmartX超融合，部分医院已完成HIS系统的全栈国产化<br>-<strong>中小医院&#x2F;医联体</strong>：依托集成商和区域医疗云，批量采用<strong>深信服超融合一体机</strong>（运维简单、交付快）<br>-<strong>国家卫健委主导的医疗云</strong>：大规模部署国产虚拟化平台，辐射基层医疗机构</p><blockquote><p><strong>结论</strong>：医疗行业正在“被集成商推着走”完成国产化，进度不均匀，但大方向已定。</p></blockquote><hr><h2 id="七、制造业：信创约束少，理性算账，分化明显"><a href="#七、制造业：信创约束少，理性算账，分化明显" class="headerlink" title="七、制造业：信创约束少，理性算账，分化明显"></a>七、制造业：信创约束少，理性算账，分化明显</h2><h3 id="处境-5"><a href="#处境-5" class="headerlink" title="处境"></a>处境</h3><p>制造业是VMware国产化替代中最分化的行业：</p><p>-<strong>国有&#x2F;央企制造</strong>（如中航、中车、中船）：同样受信创政策约束，路线与政务&#x2F;能源类似<br>-<strong>外资&#x2F;合资制造</strong>：全球统一IT策略，VMware决策权不在国内，替换推进最慢<br>-<strong>民营制造</strong>：完全以成本为导向，算清账再动手</p><h3 id="应对路线-5"><a href="#应对路线-5" class="headerlink" title="应对路线"></a>应对路线</h3><p><strong>民营制造企业的三种典型选择：</strong></p><table><thead><tr><th>选择</th><th>策略</th><th>适合场景</th></tr></thead><tbody><tr><td><strong>直接续费</strong></td><td>接受涨价，保持稳定</td><td>VMware深度集成、短期内无法迁移</td></tr><tr><td><strong>上公有云</strong></td><td>迁移至阿里云&#x2F;腾讯云&#x2F;华为云</td><td>业务弹性需求强，已有云化基础</td></tr><tr><td><strong>替换国产平台</strong></td><td>选华为&#x2F;深信服&#x2F;新华三等</td><td>成本敏感，愿意接受一次性迁移投入</td></tr></tbody></table><p>外资制造工厂通常选择<strong>维持VMware运行</strong>，等待总部出台全球统一的迁移策略，国内动作最少。</p><blockquote><p><strong>结论</strong>：制造业内部分化最大，民营和外资倾向保守，国资制造紧跟政策步伐。</p></blockquote><hr><h2 id="八、互联网-x2F-民营科技：最灵活，路线最多元"><a href="#八、互联网-x2F-民营科技：最灵活，路线最多元" class="headerlink" title="八、互联网&#x2F;民营科技：最灵活，路线最多元"></a>八、互联网&#x2F;民营科技：最灵活，路线最多元</h2><h3 id="处境-6"><a href="#处境-6" class="headerlink" title="处境"></a>处境</h3><p>互联网大厂和民营科技公司通常较早完成了私有云建设，VMware依赖程度本就低于传统行业。大量互联网公司早已使用<strong>OpenStack + KVM</strong>自建私有云，不在此次博通涨价的重灾区。</p><p>但对于那些仍在使用VMware的中型民营企业，则面临一道纯粹的经济账：<strong>续费成本 vs 迁移成本</strong>。</p><h3 id="应对路线-6"><a href="#应对路线-6" class="headerlink" title="应对路线"></a>应对路线</h3><p><strong>最灵活，选择最多元。</strong></p><table><thead><tr><th>路线</th><th>典型用户</th><th>核心逻辑</th></tr></thead><tbody><tr><td>迁移至公有云</td><td>互联网&#x2F;SaaS企业</td><td>云原生是终态，顺势而为</td></tr><tr><td>自研&#x2F;OpenStack</td><td>大型互联网公司</td><td>已有团队和能力，彻底去VMware</td></tr><tr><td>换Nutanix&#x2F;微软Hyper-V</td><td>跨国业务企业</td><td>兼顾全球IT体系，不强调信创</td></tr><tr><td>换国产超融合</td><td>中型民营科技</td><td>成本最优，快速迁移</td></tr></tbody></table><blockquote><p><strong>结论</strong>：互联网行业是所有行业中VMware去化最“轻松”的——有技术能力、有弹性，不受信创约束，按商业逻辑自主选择。</p></blockquote><hr><h2 id="九、各行业应对路线汇总"><a href="#九、各行业应对路线汇总" class="headerlink" title="九、各行业应对路线汇总"></a>九、各行业应对路线汇总</h2><table><thead><tr><th>行业</th><th>核心驱动力</th><th>主流路线</th><th>进度评估</th></tr></thead><tbody><tr><td><strong>金融</strong></td><td>成本+信创合规</td><td>国产超融合（SmartX&#x2F;华为&#x2F;ZStack）</td><td>★★★★★ 快速推进</td></tr><tr><td><strong>政务</strong></td><td>信创政策刚性约束</td><td>全栈国产化（华为&#x2F;ZStack&#x2F;H3C）</td><td>★★★★☆ 积极推进</td></tr><tr><td><strong>电信</strong></td><td>自主可控战略</td><td>自研平台+商用补充</td><td>★★★★☆ 长期深耕</td></tr><tr><td><strong>能源</strong></td><td>安全稳定+信创</td><td>华为FusionSphere为主</td><td>★★★☆☆ 稳健推进</td></tr><tr><td><strong>医疗</strong></td><td>数据安全+信创</td><td>集成商主导+超融合</td><td>★★★☆☆ 参差不齐</td></tr><tr><td><strong>制造（国资）</strong></td><td>信创政策</td><td>跟随政务路线</td><td>★★★☆☆ 按计划推进</td></tr><tr><td><strong>制造（民营&#x2F;外资）</strong></td><td>成本</td><td>续费&#x2F;公有云&#x2F;保守观望</td><td>★★☆☆☆ 进度最慢</td></tr><tr><td><strong>互联网&#x2F;民营科技</strong></td><td>纯商业逻辑</td><td>公有云&#x2F;自研&#x2F;Nutanix</td><td>★★★★☆ 灵活多元</td></tr></tbody></table><hr><h2 id="十、结语"><a href="#十、结语" class="headerlink" title="十、结语"></a>十、结语</h2><p>VMware在中国的“终局”并不是一个统一的时间节点——不同行业、不同企业，正在以各自的节奏走向各自的终点。</p><p><strong>金融和政务在冲刺；电信在长跑；能源和医疗在慢走；制造在徘徊；互联网早就跑了一半了。</strong></p><p>博通的这一次“霸王条款”，在客观上充当了一根催化剂——把本来需要10年走完的国产化进程，压缩到了5年。对于有准备的企业，这是窗口；对于没准备的，这是压力。</p><blockquote><p>无论哪条路，方向只有一个：自主可控，是基础设施的终点，不是起点。</p></blockquote><hr><p><em>参考来源：</em></p><ul><li><em>SmartX《金融行业VMware升级替代与迁移实践合集》2025年12月</em></li><li><em>云宏信息《VMware国产化替代市场分析》2024年9月</em></li><li><em>万博智云《VMware替代路线与实战解析》2025年8月</em></li><li><em>CITMT《2025国产虚拟化平台VMware替代方案深度评测报告》2026年3月</em></li></ul>]]></content>
    
    
    <summary type="html">&lt;p&gt;博通（Broadcom）2023年以690亿美元完成对VMware的收购，随即改变了国内超&lt;strong&gt;2万家&lt;/strong&gt;VMware用户的命运。订阅制强制切换、续保费用涨3～15倍、合作伙伴生态骤然萎缩……这场变革没有旁观者。&lt;/p&gt;
&lt;p&gt;但“一刀切”地说“全部替换”并不准确——&lt;strong&gt;不同行业的VMware用户，处境大相径庭，应对路线也各有侧重。&lt;/strong&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="科技" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="VMware" scheme="https://blog.lhliang.com/tags/VMware/"/>
    
    <category term="虚拟化" scheme="https://blog.lhliang.com/tags/%E8%99%9A%E6%8B%9F%E5%8C%96/"/>
    
    <category term="信创" scheme="https://blog.lhliang.com/tags/%E4%BF%A1%E5%88%9B/"/>
    
    <category term="国产化" scheme="https://blog.lhliang.com/tags/%E5%9B%BD%E4%BA%A7%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>“18个月烧20亿美元！GPT-6正式发布，AGI还有多远？”</title>
    <link href="https://blog.lhliang.com/p/a3f7c21d.html"/>
    <id>https://blog.lhliang.com/p/a3f7c21d.html</id>
    <published>2026-04-16T23:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.132Z</updated>
    
    <content type="html"><![CDATA[<h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p>2026年4月14日，OpenAI正式发布代号为“Spud（土豆）”的GPT-6。这场耗时18个月、耗资20亿美元、动用10万张H100 GPU的研发投入，不仅是一次模型迭代，更是被业界视为通向<strong>通用人工智能（AGI）</strong>道路上的关键一步。CEO山姆·奥特曼（Sam Altman）罕见地直接说出：这是<strong>AGI的“最后一公里”</strong>。</p><h2 id="一、GPT-6核心参数：堆料到了什么程度？"><a href="#一、GPT-6核心参数：堆料到了什么程度？" class="headerlink" title="一、GPT-6核心参数：堆料到了什么程度？"></a>一、GPT-6核心参数：堆料到了什么程度？</h2><p>根据公开信息，GPT-6的主要技术参数如下：</p><table><thead><tr><th>参数</th><th>数值</th></tr></thead><tbody><tr><td>代号</td><td>Spud（土豆）</td></tr><tr><td>架构</td><td>Symphony（交响乐）</td></tr><tr><td>参数量</td><td>5-6万亿（MoE稀疏专家）</td></tr><tr><td>上下文窗口</td><td>200万Token</td></tr><tr><td>训练算力</td><td>10万张H100 GPU</td></tr><tr><td>研发耗时</td><td>18个月</td></tr><tr><td>研发成本</td><td>约20亿美元</td></tr><tr><td>性能提升</td><td>较GPT-5.4暴涨40%</td></tr></tbody></table><blockquote><p>对比来看，GPT-5的上下文窗口为20万Token，而GPT-6直接提升10倍。这意味着它可以完整处理一整本《战争与和平》这样规模的文本——而且同时处理多本。</p></blockquote><h2 id="二、Symphony架构：为什么叫“交响乐”？"><a href="#二、Symphony架构：为什么叫“交响乐”？" class="headerlink" title="二、Symphony架构：为什么叫“交响乐”？"></a>二、Symphony架构：为什么叫“交响乐”？</h2><p>GPT-6采用了OpenAI内部代号为“Symphony”（交响乐）的全新架构。这一架构的核心设计理念是<strong>多专家协同</strong>——类似于交响乐中不同乐器组（弦乐、木管、铜管、打击乐）的分工合作：</p><p>-<strong>不同专家模块</strong>处理不同类型的任务（代码、推理、创意写作、多模态理解等）<br>-<strong>全局调度层</strong>负责根据任务类型动态分配计算资源</p><ul><li>相比GPT-5的Dense架构，Symphony在保持高质量输出的同时，大幅降低了推理成本</li></ul><p>奥特曼在发布会上表示：“我们不再追求’更大’，而是追求’更聪明’。Symphony架构让模型学会了真正的分工协作。”</p><h2 id="三、实测表现：AGI完成度70-80-？"><a href="#三、实测表现：AGI完成度70-80-？" class="headerlink" title="三、实测表现：AGI完成度70%-80%？"></a>三、实测表现：AGI完成度70%-80%？</h2><p>4月14日发布后，开发者社区迅速进行了大量实测。有开发者将GPT-6与现有最强模型进行了系统性对比测试，结论令人震撼：</p><p>-<strong>复杂代码任务</strong>：GPT-6可以独立完成过去需要3-5名工程师协作才能完成的中等规模系统架构设计<br>-<strong>多模态理解</strong>：可以直接“看懂”一部1小时电影的每一帧，并回答关于剧情、人物动机的深层次问题<br>-<strong>长程推理</strong>：在需要100步以上推理链的数学证明题中，GPT-6的错误率较GPT-5.4降低了约60%</p><p>有开发者估算，<strong>GPT-6的AGI完成度已达到70%-80%</strong>，距离真正的通用人工智能仅剩少数壁垒。</p><h2 id="四、全球AI竞争格局：GPT-6搅动一池春水"><a href="#四、全球AI竞争格局：GPT-6搅动一池春水" class="headerlink" title="四、全球AI竞争格局：GPT-6搅动一池春水"></a>四、全球AI竞争格局：GPT-6搅动一池春水</h2><p>GPT-6的发布迅速搅动了全球AI竞争格局：</p><p>-<strong>Anthropic</strong>：尽管年化收入已突破300亿美元反超OpenAI，但其Claude-4系列在多项基准测试中已被GPT-6超越<br>-<strong>DeepSeek V4</strong>：国产大模型代表，在中文理解领域仍具优势，但全球调用量被GPT-6大幅分流<br>-<strong>谷歌</strong>：Gemma 4全面开源，试图在开发者生态上建立护城河<br>-<strong>百度&#x2F;阿里</strong>：千问登顶全球调用榜，但面临GPT-6的直接冲击</p><h2 id="五、GPU供需：10万张H100背后的算力战争"><a href="#五、GPU供需：10万张H100背后的算力战争" class="headerlink" title="五、GPU供需：10万张H100背后的算力战争"></a>五、GPU供需：10万张H100背后的算力战争</h2><p>GPT-6的训练动用了约10万张H100 GPU，这一数字意味着什么？</p><p>全球H100 GPU的总产能每月约为1-2万张，10万张相当于全球数月的产量。这也直接推高了GPU租赁市场的价格——A100租赁价格在过去3个月内上涨了约35%。</p><p>对于中小企业和独立开发者而言，GPT-6的API成本仍然是一个门槛。奥特曼承诺，<strong>未来6个月内将推出更便宜的蒸馏版本GPT-6-mini</strong>，让更多开发者用得上。</p><h2 id="六、争议与隐忧"><a href="#六、争议与隐忧" class="headerlink" title="六、争议与隐忧"></a>六、争议与隐忧</h2><p>GPT-6的发布也引发了广泛讨论：</p><p>-<strong>安全边界</strong>：奥特曼直接提到AGI“最后一公里”是否意味着安全红线已被跨越？<br>-<strong>就业冲击</strong>：更强大的AI意味着更多白领工作面临自动化风险<br>-<strong>能耗问题</strong>：10万张H100的运行功耗相当于一座小型城市，AI的碳足迹不容忽视<br>-<strong>监管跟进</strong>：欧盟AI法案如何在GPT-6时代落地，仍是悬而未决的问题</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>GPT-6的发布，是2026年AI领域最具标志性事件之一。18个月、20亿美元、10万张H100——这些数字背后，是OpenAI押注AGI的决心，也是全球AI军备竞赛的缩影。</p><p>奥特曼说“最后一公里”，但没有人知道这最后一公里是100米还是10000米。可以确定的是：<strong>AI的能力边界正在以前所未有的速度扩展，而我们正在见证历史。</strong></p><blockquote><p>你认为GPT-6是否真的接近AGI了？欢迎在评论区分享你的看法。</p></blockquote><hr><p><em>参考资料：OpenAI官方发布公告、Stanford HAI 2026 AI指数报告、开发者社区实测数据（2026年4月）</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;引言&quot;&gt;&lt;a href=&quot;#引言&quot; class=&quot;headerlink&quot; title=&quot;引言&quot;&gt;&lt;/a&gt;引言&lt;/h2&gt;&lt;p&gt;2026年4月14日，OpenAI正式发布代号为“Spud（土豆）”的GPT-6。这场耗时18个月、耗资20亿美元、动用10万张H100 G</summary>
      
    
    
    
    <category term="人工智能" scheme="https://blog.lhliang.com/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    
    <category term="大模型" scheme="https://blog.lhliang.com/tags/%E5%A4%A7%E6%A8%A1%E5%9E%8B/"/>
    
    <category term="OpenAI" scheme="https://blog.lhliang.com/tags/OpenAI/"/>
    
    <category term="GPT-6" scheme="https://blog.lhliang.com/tags/GPT-6/"/>
    
    <category term="AGI" scheme="https://blog.lhliang.com/tags/AGI/"/>
    
  </entry>
  
  <entry>
    <title>2026年4月AI圈炸了：GPT-6发布、中国AI崛起、大模型井喷！</title>
    <link href="https://blog.lhliang.com/p/7ac28d3f.html"/>
    <id>https://blog.lhliang.com/p/7ac28d3f.html</id>
    <published>2026-04-16T15:35:00.000Z</published>
    <updated>2026-04-26T11:33:09.255Z</updated>
    
    <content type="html"><![CDATA[<h2 id="一、GPT-6来袭：大模型进入“六代同堂”时代"><a href="#一、GPT-6来袭：大模型进入“六代同堂”时代" class="headerlink" title="一、GPT-6来袭：大模型进入“六代同堂”时代"></a>一、GPT-6来袭：大模型进入“六代同堂”时代</h2><p>据多方消息，OpenAI于本月初正式发布了GPT-6，这一代产品在推理能力和多模态方面实现了质的飞跃。值得注意的是，全球大模型竞争已从“一超多强”演变为“多强争霸”的格局。</p><blockquote><p>“2026年第一季度，全球新增大模型超过50款，平均每天都有重磅消息放出。” —— 业内分析师</p></blockquote><h2 id="二、国产大模型爆发：12款新模型密集发布"><a href="#二、国产大模型爆发：12款新模型密集发布" class="headerlink" title="二、国产大模型爆发：12款新模型密集发布"></a>二、国产大模型爆发：12款新模型密集发布</h2><p>在4月上旬，国内AI厂商密集发布了12款新大模型，涵盖语言、视觉、多模态等多个领域。这波“井喷式”发布展现了国产AI技术的快速追赶能力。</p><p><strong>国产大模型最新进展：</strong></p><table><thead><tr><th>厂商</th><th>发布数量</th><th>主攻方向</th></tr></thead><tbody><tr><td>百度</td><td>3款</td><td>文心系列升级</td></tr><tr><td>阿里</td><td>2款</td><td>通义千问迭代</td></tr><tr><td>字节</td><td>2款</td><td>豆包家族扩展</td></tr><tr><td>其他</td><td>5款</td><td>垂直领域应用</td></tr></tbody></table><h2 id="三、斯坦福AI报告：中国多项指标占据优势"><a href="#三、斯坦福AI报告：中国多项指标占据优势" class="headerlink" title="三、斯坦福AI报告：中国多项指标占据优势"></a>三、斯坦福AI报告：中国多项指标占据优势</h2><p>斯坦福大学HAI研究所发布的《2026年AI指数报告》显示：</p><ul><li>中国在AI论文数量、专利申请等指标上领先全球</li><li>在AI应用落地方面，中国企业渗透率高达95%</li><li>在工业机器人领域，中国安装量连续多年位居第一</li></ul><h2 id="四、人形机器人速度新纪录"><a href="#四、人形机器人速度新纪录" class="headerlink" title="四、人形机器人速度新纪录"></a>四、人形机器人速度新纪录</h2><p>除了软件层面的突破，硬件领域同样传来好消息。某国产人形机器人创下每小时45公里的奔跑速度纪录，标志着具身智能进入新阶段。</p><h2 id="五、监管框架逐步完善"><a href="#五、监管框架逐步完善" class="headerlink" title="五、监管框架逐步完善"></a>五、监管框架逐步完善</h2><p>随着AI技术的快速发展，相应的监管框架也在全球范围内逐步建立。欧盟、中国、美国相继出台AI法规，为行业健康发展保驾护航。</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>2026年4月，AI正在从“能用”向“好用”快速进化。无论是GPT-6的发布、国产大模型的崛起，还是斯坦福报告的权威背书，都预示着AI技术正在深刻改变我们的工作和生活。</p><p>作为普通人，我们能做的就是拥抱变化、持续学习，在这场技术革命中找到自己的位置。</p><hr><p><em>相关阅读：</em></p><ul><li><em>斯坦福大学《2026年AI指数报告》</em></li><li><em>央视网《中国多项AI指标占据优势》</em></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;一、GPT-6来袭：大模型进入“六代同堂”时代&quot;&gt;&lt;a href=&quot;#一、GPT-6来袭：大模型进入“六代同堂”时代&quot; class=&quot;headerlink&quot; title=&quot;一、GPT-6来袭：大模型进入“六代同堂”时代&quot;&gt;&lt;/a&gt;一、GPT-6来袭：大模型进入“六</summary>
      
    
    
    
    <category term="科技" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%8A%80/"/>
    
    
    <category term="AI" scheme="https://blog.lhliang.com/tags/AI/"/>
    
    <category term="人工智能" scheme="https://blog.lhliang.com/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="大模型" scheme="https://blog.lhliang.com/tags/%E5%A4%A7%E6%A8%A1%E5%9E%8B/"/>
    
  </entry>
  
  <entry>
    <title>AI时代对不同岗位的冲击：从“替代”到“重构”</title>
    <link href="https://blog.lhliang.com/p/c20593fa.html"/>
    <id>https://blog.lhliang.com/p/c20593fa.html</id>
    <published>2026-04-16T04:15:00.000Z</published>
    <updated>2026-04-26T11:33:21.938Z</updated>
    
    <content type="html"><![CDATA[<h2 id="引言：不是替代，是重构"><a href="#引言：不是替代，是重构" class="headerlink" title="引言：不是替代，是重构"></a>引言：不是替代，是重构</h2><p>2025年，全球招聘总量同比下降<strong>8%<strong>，这是自疫情以来最显著的一次就业市场收缩。而背后的推手，并非单纯的经济衰退——</strong>人工智能</strong>正以系统和精确的方式，重塑着每一个行业的用工逻辑。</p><p>国际货币基金组织（IMF）的判断掷地有声：全球近<strong>40%</strong>的岗位会受到AI影响。但“影响”从来不等同于“替代”——大部分岗位正在经历的是“被AI增强”，即人类与AI在新的分工中寻找各自的位置。</p><p>本文基于多份权威报告的数据（Bloomberry基于Revealera数据库分析了1.8亿份2023-2025年全球招聘信息、麦肯锡全球研究院报告、新华网等），梳理AI对不同岗位的真实冲击图谱。</p><hr><h2 id="一、受冲击最严重的岗位：创意执行与中层管理"><a href="#一、受冲击最严重的岗位：创意执行与中层管理" class="headerlink" title="一、受冲击最严重的岗位：创意执行与中层管理"></a>一、受冲击最严重的岗位：创意执行与中层管理</h2><h3 id="1-1-创意与内容执行：灭顶之灾"><a href="#1-1-创意与内容执行：灭顶之灾" class="headerlink" title="1.1 创意与内容执行：灭顶之灾"></a>1.1 创意与内容执行：灭顶之灾</h3><p>生成式AI的爆发，让内容生产门槛骤降，最先倒下的是“执行层创意工作者”。</p><table><thead><tr><th>岗位</th><th>招聘变化幅度</th><th>核心原因</th></tr></thead><tbody><tr><td>计算机图形艺术家</td><td><strong>-33%</strong></td><td>Midjourney、Stable Diffusion等AI工具取代基础设计</td></tr><tr><td>撰稿人&#x2F;文案</td><td><strong>-28%</strong></td><td>GPT-4、Claude等LLM生成文案效率远超人类</td></tr><tr><td>摄影师</td><td><strong>-28%</strong></td><td>AI图像生成冲击商业摄影市场</td></tr><tr><td>记者</td><td><strong>-22%</strong></td><td>财经简报、体育赛事快讯已被AI接管</td></tr><tr><td>公关专员</td><td><strong>-21%</strong></td><td>AI驱动的舆情监测与新闻稿生成</td></tr></tbody></table><p>有趣的是，<strong>创意总监</strong>和<strong>产品设计师</strong>等顶层策划岗位反而保持韧性。这说明：AI替代的是“执行”，而非“创意本身”。</p><h3 id="1-2-企业合规与中层管理：最意外的牺牲品"><a href="#1-2-企业合规与中层管理：最意外的牺牲品" class="headerlink" title="1.2 企业合规与中层管理：最意外的牺牲品"></a>1.2 企业合规与中层管理：最意外的牺牲品</h3><p>传统观点认为，AI会先冲击基层岗位。但2025年的数据揭示了一个反直觉的现象：<strong>中层管理者</strong>受冲击程度甚至超过基层。</p><table><thead><tr><th>岗位</th><th>招聘变化幅度</th><th>核心原因</th></tr></thead><tbody><tr><td>首席合规官</td><td><strong>-37%</strong></td><td>AI合规审查工具自动化大部分审计流程</td></tr><tr><td>项目经理</td><td><strong>-32%</strong></td><td>AI调度系统取代大量项目协调工作</td></tr><tr><td>合规专员</td><td><strong>-29%</strong></td><td>自动化合规工具替代人工审查</td></tr><tr><td>可持续发展专员</td><td><strong>-28%</strong></td><td>ESG报告生成AI化</td></tr><tr><td>环境技术员</td><td><strong>-26%</strong></td><td>环境监测自动化</td></tr></tbody></table><p>背后逻辑：AI编程工具让高管能<strong>直接验证想法</strong>，不再需要大量中层作为“传声筒”。这直接导致高管层招聘仅下降<strong>1.7%<strong>，而中层下降</strong>5.7%<strong>，基层下降</strong>9%<strong>——形成了典型的</strong>岗位金字塔反转</strong>。</p><h3 id="1-3-医疗行政：被系统悄悄吞掉"><a href="#1-3-医疗行政：被系统悄悄吞掉" class="headerlink" title="1.3 医疗行政：被系统悄悄吞掉"></a>1.3 医疗行政：被系统悄悄吞掉</h3><table><thead><tr><th>岗位</th><th>招聘变化幅度</th></tr></thead><tbody><tr><td>医疗文员</td><td><strong>-20%</strong></td></tr><tr><td>医疗助理</td><td><strong>-6%</strong></td></tr></tbody></table><p>电子病历AI录入、智能分诊系统的普及，让文书类岗位成为“隐形消失者”。</p><hr><h2 id="二、相对稳定的岗位：情感、决策与实体操作"><a href="#二、相对稳定的岗位：情感、决策与实体操作" class="headerlink" title="二、相对稳定的岗位：情感、决策与实体操作"></a>二、相对稳定的岗位：情感、决策与实体操作</h2><p>并非所有岗位都在崩塌。以下几类展现出惊人的抗冲击能力：</p><h3 id="2-1-科研领域：纯认知任务最脆弱，但动手岗位安全"><a href="#2-1-科研领域：纯认知任务最脆弱，但动手岗位安全" class="headerlink" title="2.1 科研领域：纯认知任务最脆弱，但动手岗位安全"></a>2.1 科研领域：纯认知任务最脆弱，但动手岗位安全</h3><p>《自然》网站调查了40余位学界与业界AI使用者后，给出了冷静的判断：</p><p><strong>最脆弱</strong>（已被AI大量接管）：</p><ul><li>数据分析师、研究编码员——AI数据分析工具已能自动完成大量工作</li><li>科研程序员——实验室不再需要大量招聘写代码的人</li><li>科学翻译——美国翻译协会科学与技术部门会员数在不到<strong>两年半内锐减26%</strong></li></ul><p><strong>相对安全</strong>：</p><ul><li>需要“湿实验”操作的实验室技术员和早期研究人员</li><li>负责判断“哪个研究方向值得深究”的高阶科学家</li></ul><p>弗吉尼亚大学经济学家安东·科里内克的预言或许最能概括：<strong>涉及“纯认知任务”的工作将被AI迅速接管，数学家明年将受波及</strong>。但人机协作的科学家——能设计提示词、防止AI“幻觉”、主导方向判断——将获得前所未有的竞争优势。</p><h3 id="2-2-软件工程：提效而非替代"><a href="#2-2-软件工程：提效而非替代" class="headerlink" title="2.2 软件工程：提效而非替代"></a>2.2 软件工程：提效而非替代</h3><table><thead><tr><th>岗位</th><th>变化趋势</th></tr></thead><tbody><tr><td>前端开发</td><td>略降</td></tr><tr><td>后端开发</td><td>持平或微增</td></tr><tr><td>数据工程</td><td>增长</td></tr><tr><td>机器学习工程师</td><td><strong>+40%（连续两年增幅最大）</strong></td></tr></tbody></table><p>Anthropic的研究报告显示，程序员74.5%的工作可被AI覆盖，但“可覆盖”≠“被替代”。AI目前主要提升<strong>生产效率</strong>，而非取代程序员本身。</p><h3 id="2-3-客户服务：意外的正增长"><a href="#2-3-客户服务：意外的正增长" class="headerlink" title="2.3 客户服务：意外的正增长"></a>2.3 客户服务：意外的正增长</h3><p>客服代表仅下降<strong>4%<strong>（远优于市场平均的-8%）。部分公司试点AI客服后，因客户满意度下降，反而</strong>重新聘回真人</strong>。这揭示了一个重要的规律：在情感信任不可替代的领域，AI的过度介入会反噬体验。</p><hr><h2 id="三、新兴岗位：AI催生的17个新职业"><a href="#三、新兴岗位：AI催生的17个新职业" class="headerlink" title="三、新兴岗位：AI催生的17个新职业"></a>三、新兴岗位：AI催生的17个新职业</h2><p>人力资源和社会保障部2025年5月公示了<strong>17个新职业和42个新工种</strong>，直接由AI产业链重构催生：</p><table><thead><tr><th>新职业</th><th>核心职责</th></tr></thead><tbody><tr><td>生成式人工智能系统测试员</td><td>AI应用质量检测与系统验证</td></tr><tr><td>生成式人工智能动画制作员</td><td>利用AIGC工具进行动画内容创作</td></tr><tr><td>人形机器人数据采集师</td><td>为具身智能提供训练数据标注</td></tr><tr><td>无人机航线规划师</td><td>统筹空域规则、地理信息与AI调度</td></tr><tr><td>大模型提示词工程师</td><td>优化人机交互效率与AI输出质量</td></tr><tr><td>机器人产品经理</td><td>智能制造产品设计与项目管理</td></tr></tbody></table><p>这些新岗位的共同特征是：<strong>人类在AI与物理世界&#x2F;创意世界之间，担任“桥梁”和“裁判”的角色</strong>。</p><hr><h2 id="四、AI时代求职者的核心竞争力"><a href="#四、AI时代求职者的核心竞争力" class="headerlink" title="四、AI时代求职者的核心竞争力"></a>四、AI时代求职者的核心竞争力</h2><p>麦肯锡的结论已经清晰：约<strong>60%-70%</strong>的日常例行工作可实现自动化。未来核心竞争力正从“技术执行力”转向：</p><table><thead><tr><th>旧核心能力</th><th>新核心能力</th></tr></thead><tbody><tr><td>技术执行</td><td>审美判断力与跨领域整合</td></tr><tr><td>流程遵守</td><td>宏观协调与战略判断</td></tr><tr><td>单点深耕</td><td>低代码&#x2F;无代码工具驾驭能力</td></tr><tr><td>信息处理</td><td>原始创新与人机协作决策</td></tr></tbody></table><p><strong>能够驾驭大模型、进行跨领域创新的复合型人才</strong>，将在未来十年持续享受市场溢价。</p><hr><h2 id="五、结语"><a href="#五、结语" class="headerlink" title="五、结语"></a>五、结语</h2><p>AI时代对岗位的冲击，本质上是一场<strong>价值链重构</strong>。它不会让人类集体失业，但会让“可被结构化”的工作快速消亡，让“需要判断力、创造力、情感连接”的工作获得新的价值锚点。</p><p>对于每一个职场人而言，2026年最值得思考的问题或许不是“AI会不会取代我”，而是：<strong>我如何成为那个驾驭AI而非被AI驾驭的人？</strong></p><hr><blockquote><p><strong>数据来源</strong>：本文数据主要来自Bloomberry基于Revealera数据库对1.8亿份2023-2025年全球招聘信息的分析（199IT&#x2F;Sina Finance转载）、麦肯锡全球研究院报告、新华网（科技日报，刘霞）、OpenAxo系统分析报告。</p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;引言：不是替代，是重构&quot;&gt;&lt;a href=&quot;#引言：不是替代，是重构&quot; class=&quot;headerlink&quot; title=&quot;引言：不是替代，是重构&quot;&gt;&lt;/a&gt;引言：不是替代，是重构&lt;/h2&gt;&lt;p&gt;2025年，全球招聘总量同比下降&lt;strong&gt;8%&lt;strong&gt;</summary>
      
    
    
    
    <category term="AI资讯" scheme="https://blog.lhliang.com/categories/AI%E8%B5%84%E8%AE%AF/"/>
    
    
    <category term="人工智能" scheme="https://blog.lhliang.com/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="未来趋势" scheme="https://blog.lhliang.com/tags/%E6%9C%AA%E6%9D%A5%E8%B6%8B%E5%8A%BF/"/>
    
    <category term="就业" scheme="https://blog.lhliang.com/tags/%E5%B0%B1%E4%B8%9A/"/>
    
    <category term="职业冲击" scheme="https://blog.lhliang.com/tags/%E8%81%8C%E4%B8%9A%E5%86%B2%E5%87%BB/"/>
    
  </entry>
  
  <entry>
    <title>VMware产品线和代理商的变化</title>
    <link href="https://blog.lhliang.com/p/1d7bc252.html"/>
    <id>https://blog.lhliang.com/p/1d7bc252.html</id>
    <published>2024-03-26T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.129Z</updated>
    
    <content type="html"><![CDATA[<p>博通（Broadcom）对VMware的收购已经完成，以后的VMware产品都以以下这四种方式和Add-Ons方式售卖。</p><h2 id="一、产品线"><a href="#一、产品线" class="headerlink" title="一、产品线"></a>一、产品线</h2><h3 id="VVF"><a href="#VVF" class="headerlink" title="VVF"></a>VVF</h3><p><img src="/img/upload/vmware-vvf.png?articlesimg" alt="VMware vSphere Foundation (VVF)"></p><h3 id="VCF"><a href="#VCF" class="headerlink" title="VCF"></a>VCF</h3><p><img src="/img/upload/202403272141972.png?articlesimg" alt="VMware Cloud Foundation (VCF)"></p><h3 id="VVS"><a href="#VVS" class="headerlink" title="VVS"></a>VVS</h3><p><img src="/img/upload/202403272141888.png?articlesimg" alt="VMware vSphere Standard（VVS）"></p><h3 id="VVEP"><a href="#VVEP" class="headerlink" title="VVEP"></a>VVEP</h3><p><img src="/img/upload/202403272142498.png?articlesimg" alt="VMware vSphere Essentials Plus（VVEP）"></p><p>针对产品的变化有官方博客说明</p><ul><li><a href="https://news.vmware.com/company/vmware-by-broadcom-business-transformation">VMware End Of Availability of Perpetual Licensing and SaaS Services</a></li><li><a href="https://blogs.vmware.com/cloud-foundation/2024/01/22/vmware-end-of-availability-of-perpetual-licensing-and-saas-services/">VMware by Broadcom Dramatically Simplifies Offer Lineup and Licensing Model</a></li></ul><h2 id="二、代理商"><a href="#二、代理商" class="headerlink" title="二、代理商"></a>二、代理商</h2><p><img src="/img/upload/202403272145561.png?articlesimg" alt="VMware Partner"></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;博通（Broadcom）对VMware的收购已经完成，以后的VMware产品都以以下这四种方式和Add-Ons方式售卖。&lt;/p&gt;
&lt;h2 id=&quot;一、产品线&quot;&gt;&lt;a href=&quot;#一、产品线&quot; class=&quot;headerlink&quot; title=&quot;一、产品线&quot;&gt;&lt;/a&gt;一、产</summary>
      
    
    
    
    <category term="厂商动态" scheme="https://blog.lhliang.com/categories/%E5%8E%82%E5%95%86%E5%8A%A8%E6%80%81/"/>
    
    
    <category term="VMware" scheme="https://blog.lhliang.com/tags/VMware/"/>
    
    <category term="虚拟化" scheme="https://blog.lhliang.com/tags/%E8%99%9A%E6%8B%9F%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>Nmap使用教程</title>
    <link href="https://blog.lhliang.com/p/7f532a0a.html"/>
    <id>https://blog.lhliang.com/p/7f532a0a.html</id>
    <published>2024-03-19T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.135Z</updated>
    
    <content type="html"><![CDATA[<h2 id="一、Nmap介绍"><a href="#一、Nmap介绍" class="headerlink" title="一、Nmap介绍"></a>一、Nmap介绍</h2><p>Nmap（Network Mapper）是一个开放源代码的网络探测和安全审核的工具。它被设计用来发现设备运行的服务以及它们的主机名、操作系统、开放端口和其他相关信息。</p><h2 id="二、注意事项"><a href="#二、注意事项" class="headerlink" title="二、注意事项"></a>二、注意事项</h2><ul><li>合法授权：确保您有权对局域网进行扫描，未经授权的扫描可能违反法律法规，导致法律问题。</li><li>网络政策：遵守所在网络的使用政策，避免因扫描行为影响网络正常运行。</li><li>隐私保护：扫描时尊重他人隐私，获取的信息需用于合法和正当的目的。</li></ul><h2 id="三、下载地址"><a href="#三、下载地址" class="headerlink" title="三、下载地址"></a>三、下载地址</h2><p><a href="https://nmap.org/download.html">https://nmap.org/download.html</a></p><h2 id="四、扫描局域网内所有活跃的主机"><a href="#四、扫描局域网内所有活跃的主机" class="headerlink" title="四、扫描局域网内所有活跃的主机"></a>四、扫描局域网内所有活跃的主机</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nmap -sP 192.168.1.0/24</span><br></pre></td></tr></table></figure><div class="note info flat"><p>这里192.168.1.0&#x2F;24代表局域网的网络地址和子网掩码，您需要根据实际情况替换。</p></div><h2 id="五、扫描特定IP地址的所有端口"><a href="#五、扫描特定IP地址的所有端口" class="headerlink" title="五、扫描特定IP地址的所有端口"></a>五、扫描特定IP地址的所有端口</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nmap &lt;IP地址&gt;</span><br></pre></td></tr></table></figure><div class="note info flat"><p>替换&lt;IP地址&gt;为您想要扫描的主机地址。</p></div><h2 id="六、扫描特定IP地址的特定端口"><a href="#六、扫描特定IP地址的特定端口" class="headerlink" title="六、扫描特定IP地址的特定端口"></a>六、扫描特定IP地址的特定端口</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nmap -p &lt;端口号&gt; &lt;IP地址&gt;</span><br></pre></td></tr></table></figure><div class="note info flat"><p>替换&lt;端口号&gt;和&lt;IP地址&gt;为您想要扫描的端口和主机地址。</p></div><h2 id="七、扫描并显示所有端口的详细信息"><a href="#七、扫描并显示所有端口的详细信息" class="headerlink" title="七、扫描并显示所有端口的详细信息"></a>七、扫描并显示所有端口的详细信息</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nmap -v -p- &lt;IP地址&gt;</span><br></pre></td></tr></table></figure><div class="note info flat"><p><code>-v</code>表示详细输出，<code>-p-</code>表示扫描所有端口。</p></div><h2 id="八、隐藏扫描（SYN扫描）"><a href="#八、隐藏扫描（SYN扫描）" class="headerlink" title="八、隐藏扫描（SYN扫描）"></a>八、隐藏扫描（SYN扫描）</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nmap -sS &lt;IP地址&gt;</span><br></pre></td></tr></table></figure><div class="note info flat"><p><code>-sS</code>表示使用SYN扫描，这种扫描方式不易被目标主机发现。</p></div><h2 id="九、操作系统识别"><a href="#九、操作系统识别" class="headerlink" title="九、操作系统识别"></a>九、操作系统识别</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nmap -O &lt;IP地址&gt;</span><br></pre></td></tr></table></figure><div class="note info flat"><p><code>-O</code>表示尝试识别目标主机的操作系统。</p></div><h2 id="十、扫描局域网内的IP和MAC地址"><a href="#十、扫描局域网内的IP和MAC地址" class="headerlink" title="十、扫描局域网内的IP和MAC地址"></a>十、扫描局域网内的IP和MAC地址</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo nmap -sP -n 192.168.1.0/24</span><br></pre></td></tr></table></figure><div class="note info flat"><p><code>-n</code>表示不进行DNS解析，这样可以更快地获取IP和MAC地址。</p></div><h2 id="十一、再次提醒"><a href="#十一、再次提醒" class="headerlink" title="十一、再次提醒"></a>十一、再次提醒</h2><p>使用Nmap时，请务必遵循上述的合法合规性原则，并在确保自己操作权限清晰的情况下进行。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;一、Nmap介绍&quot;&gt;&lt;a href=&quot;#一、Nmap介绍&quot; class=&quot;headerlink&quot; title=&quot;一、Nmap介绍&quot;&gt;&lt;/a&gt;一、Nmap介绍&lt;/h2&gt;&lt;p&gt;Nmap（Network Mapper）是一个开放源代码的网络探测和安全审核的工具。它被设计</summary>
      
    
    
    
    <category term="经验分享" scheme="https://blog.lhliang.com/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="网络安全" scheme="https://blog.lhliang.com/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/"/>
    
    <category term="扫描器" scheme="https://blog.lhliang.com/tags/%E6%89%AB%E6%8F%8F%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>编码规范</title>
    <link href="https://blog.lhliang.com/p/1adaadca.html"/>
    <id>https://blog.lhliang.com/p/1adaadca.html</id>
    <published>2024-03-18T16:00:00.000Z</published>
    <updated>2026-04-16T08:03:52.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="黄金定律"><a href="#黄金定律" class="headerlink" title="黄金定律"></a>黄金定律</h1><p>永远遵循同一套编码规范，不管有多少人共同参与同一项目，一定要确保每一行代码都像是同一个人编写的。</p><h1 id="HTML"><a href="#HTML" class="headerlink" title="HTML"></a>HTML</h1><h2 id="一、语法"><a href="#一、语法" class="headerlink" title="一、语法"></a>一、语法</h2><ul><li>标签不要大写，即便是 doctype 标签。</li><li>用两个空格来代替制表符（tab） – 这是唯一能保证在所有环境下获得一致展现的方法。</li><li>嵌套元素应当缩进一次（即两个空格）。</li><li>对于属性的定义，永远全部使用双引号，绝不要使用单引号。</li><li>不要在自闭合（self-closing）元素的尾部添加斜线 — HTML5 规范 中明确说明斜线是可忽略的。</li><li>不要省略可选的结束标签（closing tag）（例如，<code>&lt;/li&gt;</code> 或 <code>&lt;/body&gt;</code>）。</li></ul><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">&lt;!doctype <span class="keyword">html</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">html</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">head</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">title</span>&gt;</span>Page title<span class="tag">&lt;/<span class="name">title</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">head</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">body</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">img</span> <span class="attr">src</span>=<span class="string">&quot;images/company-logo.png&quot;</span> <span class="attr">alt</span>=<span class="string">&quot;Company&quot;</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">h1</span> <span class="attr">class</span>=<span class="string">&quot;hello-world&quot;</span>&gt;</span>Hello, world!<span class="tag">&lt;/<span class="name">h1</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">body</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">html</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="二、HTML5-doctype"><a href="#二、HTML5-doctype" class="headerlink" title="二、HTML5 doctype"></a>二、HTML5 doctype</h2><p>为每个 HTML 页面的第一行添加 standards mode（标准模式） 声明，这样能够确保在每个浏览器中拥有一致的展现。</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">&lt;!doctype <span class="keyword">html</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">html</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">head</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">head</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">html</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="三、语言属性"><a href="#三、语言属性" class="headerlink" title="三、语言属性"></a>三、语言属性</h2><p>根据 HTML5 规范：<br>强烈建议为 html 根元素指定 lang 属性，从而为文档设置正确的语言。这将有助于语音合成工具确定其所应该采用的发音，有助于翻译工具确定其翻译时所应遵守的规则等等。</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">html</span> <span class="attr">lang</span>=<span class="string">&quot;en&quot;</span>&gt;</span></span><br><span class="line">  <span class="comment">&lt;!-- ... --&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">html</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="四、IE-兼容模式"><a href="#四、IE-兼容模式" class="headerlink" title="四、IE 兼容模式"></a>四、IE 兼容模式</h2><p>IE 支持通过特定的 <code>&lt;meta&gt;</code> 标签来确定绘制当前页面所应该采用的 IE 版本。除非有强烈的特殊需求，否则最好是设置为 edge mode，从而通知 IE 采用其所支持的最新的绘制模式。</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">meta</span> <span class="attr">http-equiv</span>=<span class="string">&quot;x-ua-compatible&quot;</span> <span class="attr">content</span>=<span class="string">&quot;ie=edge&quot;</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="五、字符编码"><a href="#五、字符编码" class="headerlink" title="五、字符编码"></a>五、字符编码</h2><p>通过明确声明字符编码，能够确保浏览器快速并容易的判断页面内容的渲染方式。这样做的好处是，可以避免在 HTML 中使用字符实体标记（character entity），从而全部与文档编码一致（一般采用 UTF-8 编码）。</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">head</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">meta</span> <span class="attr">charset</span>=<span class="string">&quot;UTF-8&quot;</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">head</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="六、引入-CSS-和-JavaScript-文件"><a href="#六、引入-CSS-和-JavaScript-文件" class="headerlink" title="六、引入 CSS 和 JavaScript 文件"></a>六、引入 CSS 和 JavaScript 文件</h2><p>根据 HTML5 规范，在引入 CSS 和 JavaScript 文件时一般不需要指定 type 属性，因为 <code>text/css</code> 和 <code>text/javascript</code> 分别是它们的默认值。</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">&lt;!-- External CSS --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span> <span class="attr">href</span>=<span class="string">&quot;code-guide.css&quot;</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!-- In-document CSS --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">style</span>&gt;</span><span class="language-css"></span></span><br><span class="line"><span class="language-css">  <span class="comment">/* ... */</span></span></span><br><span class="line"><span class="language-css"></span><span class="tag">&lt;/<span class="name">style</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!-- JavaScript --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;code-guide.js&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="七、实用为王"><a href="#七、实用为王" class="headerlink" title="七、实用为王"></a>七、实用为王</h2><p>尽量遵循 HTML 标准和语义，但是不要以牺牲实用性为代价。任何时候都要尽量使用最少的标签并保持最小的复杂度。</p><h2 id="八、属性顺序"><a href="#八、属性顺序" class="headerlink" title="八、属性顺序"></a>八、属性顺序</h2><p>HTML 属性应当按照以下给出的顺序依次排列，确保代码的易读性。</p><ul><li><code>class</code></li><li><code>id</code>, <code>name</code></li><li><code>data-*</code></li><li><code>src</code>, <code>for</code>, <code>type</code>, <code>href</code>, <code>value</code></li><li><code>title</code>, <code>alt</code></li><li><code>role</code>, <code>aria-*</code></li></ul><p>class 用于标识高度可复用组件，因此应该排在首位。id 用于标识具体组件，应当谨慎使用（例如，页面内的书签），因此排在第二位。</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;...&quot;</span> <span class="attr">id</span>=<span class="string">&quot;...&quot;</span> <span class="attr">data-toggle</span>=<span class="string">&quot;modal&quot;</span> <span class="attr">href</span>=<span class="string">&quot;#&quot;</span>&gt;</span></span><br><span class="line">  Example link</span><br><span class="line"><span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">input</span> <span class="attr">class</span>=<span class="string">&quot;form-control&quot;</span> <span class="attr">type</span>=<span class="string">&quot;text&quot;</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">img</span> <span class="attr">src</span>=<span class="string">&quot;...&quot;</span> <span class="attr">alt</span>=<span class="string">&quot;...&quot;</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="九、布尔（boolean）型属性"><a href="#九、布尔（boolean）型属性" class="headerlink" title="九、布尔（boolean）型属性"></a>九、布尔（boolean）型属性</h2><p>布尔型属性可以在声明时不赋值。XHTML 规范要求为其赋值，但是 HTML5 规范不需要。</p><blockquote><p>元素的布尔型属性如果有值，就是 true，如果没有值，就是 false。</p></blockquote><p>如果一定要为其赋值的话，请参考 <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attributes">WhatWG</a> 规范：</p><blockquote><p>如果属性存在，其值必须是空字符串或 […] 属性的规范名称，并且不要在首尾添加空白符。</p></blockquote><p>简单来说，就是不用赋值。</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">&quot;text&quot;</span> <span class="attr">disabled</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">&quot;checkbox&quot;</span> <span class="attr">value</span>=<span class="string">&quot;1&quot;</span> <span class="attr">checked</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">select</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">value</span>=<span class="string">&quot;1&quot;</span> <span class="attr">selected</span>&gt;</span>1<span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">select</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="十、减少标签的数量"><a href="#十、减少标签的数量" class="headerlink" title="十、减少标签的数量"></a>十、减少标签的数量</h2><p>编写 HTML 代码时，尽量避免多余的父元素。很多时候，这需要迭代和重构来实现。请看下面的案例：</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">&lt;!-- Not so great --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;avatar&quot;</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">img</span> <span class="attr">src</span>=<span class="string">&quot;...&quot;</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!-- Better --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">img</span> <span class="attr">class</span>=<span class="string">&quot;avatar&quot;</span> <span class="attr">src</span>=<span class="string">&quot;...&quot;</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="十一、JavaScript-生成的标签"><a href="#十一、JavaScript-生成的标签" class="headerlink" title="十一、JavaScript 生成的标签"></a>十一、JavaScript 生成的标签</h2><p>通过 JavaScript 生成的标签让内容变得不易查找、编辑，并且降低性能。能避免时尽量避免。</p><h1 id="CSS"><a href="#CSS" class="headerlink" title="CSS"></a>CSS</h1><h2 id="十二、语法"><a href="#十二、语法" class="headerlink" title="十二、语法"></a>十二、语法</h2><ul><li>用两个空格来代替制表符（tab） – 这是唯一能保证在所有环境下获得一致展现的方法。</li><li>为选择器分组时，将单独的选择器单独放在一行。</li><li>为了代码的易读性，在每个声明块的左花括号前添加一个空格。</li><li>声明块的右花括号应当单独成行。</li><li>每条声明语句的 : 后应该插入一个空格。</li><li>为了获得更准确的错误报告，每条声明都应该独占一行。</li><li>所有声明语句都应当以分号结尾。最后一条声明语句后面的分号是可选的，但是，如果省略这个分号，你的代码可能更易出错。</li><li>对于以逗号分隔的属性值，每个逗号后面都应该插入一个空格（例如，box-shadow）。</li><li>不要在 rgb()、rgba()、hsl()、hsla() 或 rect() 值的内部的逗号后面插入空格。这样利于从多个属性值（既加逗号也加空- 格）中区分多个颜色值（只加逗号，不加空格）。</li><li>对于属性值或颜色参数，省略小于 1 的小数前面的 0 （例如，.5 代替 0.5；-.5px 代替 -0.5px）。</li><li>十六进制值应该全部小写，例如，#fff。在扫描文档时，小写字符易于分辨，因为他们的形式更易于区分。</li><li>尽量使用简写形式的十六进制值，例如，用 #fff 代替 #ffffff。</li><li>为选择器中的属性添加双引号，例如，input[type&#x3D;”text”]。只有在某些情况下是可选的，但是，为了代码的一致性，建议都加上双引号。</li><li>避免为 0 值指定单位，例如，用 margin: 0; 代替 margin: 0px;。</li></ul><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* Bad CSS */</span></span><br><span class="line"><span class="selector-class">.selector</span>, <span class="selector-class">.selector-secondary</span>, <span class="selector-class">.selector</span><span class="selector-attr">[type=text]</span> &#123;</span><br><span class="line">  <span class="attribute">padding</span>:<span class="number">15px</span>;</span><br><span class="line">  <span class="attribute">margin</span>:<span class="number">0px</span> <span class="number">0px</span> <span class="number">15px</span>;</span><br><span class="line">  <span class="attribute">background-color</span>:<span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.5</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>:<span class="number">0px</span> <span class="number">1px</span> <span class="number">2px</span> <span class="number">#CCC</span>,inset <span class="number">0</span> <span class="number">1px</span> <span class="number">0</span> <span class="number">#FFFFFF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* Good CSS */</span></span><br><span class="line"><span class="selector-class">.selector</span>,</span><br><span class="line"><span class="selector-class">.selector-secondary</span>,</span><br><span class="line"><span class="selector-class">.selector</span><span class="selector-attr">[type=<span class="string">&quot;text&quot;</span>]</span> &#123;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">15px</span>;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">15px</span>;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">0</span>,<span class="number">0</span>,<span class="number">0</span>,.<span class="number">5</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">1px</span> <span class="number">2px</span> <span class="number">#ccc</span>, inset <span class="number">0</span> <span class="number">1px</span> <span class="number">0</span> <span class="number">#fff</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="十三、声明顺序"><a href="#十三、声明顺序" class="headerlink" title="十三、声明顺序"></a>十三、声明顺序</h2><p>相关的属性声明应当归为一组，并按照下面的顺序排列：</p><ol><li>Positioning</li><li>Box model</li><li>Typographic</li><li>Visual</li><li>Misc</li></ol><p>由于定位（positioning）可以从正常的文档流中移除元素，并且还能覆盖盒模型（box model）相关的样式，因此排在首位。盒模型排在第二位，因为它决定了组件的尺寸和位置。</p><p>其他属性只是影响组件的 内部 或者是不影响前两组属性，因此排在后面。</p><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.declaration-order</span> &#123;</span><br><span class="line">  <span class="comment">/* Positioning */</span></span><br><span class="line">  <span class="attribute">position</span>: absolute;</span><br><span class="line">  <span class="attribute">top</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">right</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">bottom</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">left</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">z-index</span>: <span class="number">100</span>;</span><br><span class="line"></span><br><span class="line">  <span class="comment">/* Box-model */</span></span><br><span class="line">  <span class="attribute">display</span>: block;</span><br><span class="line">  <span class="attribute">float</span>: right;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100px</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">100px</span>;</span><br><span class="line"></span><br><span class="line">  <span class="comment">/* Typography */</span></span><br><span class="line">  <span class="attribute">font</span>: normal <span class="number">13px</span> <span class="string">&quot;Helvetica Neue&quot;</span>, sans-serif;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">1.5</span>;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#333</span>;</span><br><span class="line">  <span class="attribute">text-align</span>: center;</span><br><span class="line"></span><br><span class="line">  <span class="comment">/* Visual */</span></span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#f5f5f5</span>;</span><br><span class="line">  <span class="attribute">border</span>: <span class="number">1px</span> solid <span class="number">#e5e5e5</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">3px</span>;</span><br><span class="line"></span><br><span class="line">  <span class="comment">/* Misc */</span></span><br><span class="line">  <span class="attribute">opacity</span>: <span class="number">1</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="十四、不要使用-import"><a href="#十四、不要使用-import" class="headerlink" title="十四、不要使用 @import"></a>十四、不要使用 @import</h2><p>与 <code>&lt;link&gt;</code> 标签相比，<code>@import</code> 指令要慢很多，不光增加了额外的请求次数，还会导致不可预料的问题。替代办法有以下几种：</p><ol><li>使用多个 <code>&lt;link&gt;</code> 元素</li><li>通过 Sass 或 Less 之类的 CSS 预处理器将多个 CSS 文件编译为一个文件</li><li>通过 Rails、Jekyll 或其他系统中提供过 CSS 文件合并功能</li></ol><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&lt;!-- Use link elements --&gt;</span><br><span class="line">&lt;link rel=&quot;stylesheet&quot; href=&quot;core<span class="selector-class">.css</span>&quot;&gt;</span><br><span class="line"></span><br><span class="line">&lt;!-- Avoid <span class="keyword">@imports</span> --&gt;</span><br><span class="line">&lt;style&gt;</span><br><span class="line">  @import url(<span class="string">&quot;more.css&quot;</span>);</span><br><span class="line">&lt;/style&gt;</span><br></pre></td></tr></table></figure><h2 id="十五、媒体查询（Media-query）的位置"><a href="#十五、媒体查询（Media-query）的位置" class="headerlink" title="十五、媒体查询（Media query）的位置"></a>十五、媒体查询（Media query）的位置</h2><p>将媒体查询放在尽可能相关规则的附近。不要将他们打包放在一个单一样式文件中或者放在文档底部。如果你把他们分开了，将来只会被大家遗忘。下面给出一个典型的实例。</p><figure class="highlight less"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.element</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.element-avatar</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.element-selected</span> &#123; ... &#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">@media</span> (<span class="attribute">min-width</span>: <span class="number">480px</span>) &#123;</span><br><span class="line">  <span class="selector-class">.element</span> &#123; ...&#125;</span><br><span class="line">  <span class="selector-class">.element-avatar</span> &#123; ... &#125;</span><br><span class="line">  <span class="selector-class">.element-selected</span> &#123; ... &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="十六、带前缀的属性"><a href="#十六、带前缀的属性" class="headerlink" title="十六、带前缀的属性"></a>十六、带前缀的属性</h2><p>当使用特定厂商的带有前缀的属性时，通过缩进的方式，让每个属性的值在垂直方向对齐，这样便于多行编辑。</p><p>在 Textmate 中，使用 <strong>Text → Edit Each Line in Selection</strong> (⌃⌘A)。在 Sublime Text 2 中，使用 <strong>Selection → Add Previous Line</strong> (⌃⇧↑) 和 <strong>Selection → Add Next Line</strong> (⌃⇧↓)。</p><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* Prefixed properties */</span></span><br><span class="line"><span class="selector-class">.selector</span> &#123;</span><br><span class="line">  -webkit-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">1px</span> <span class="number">2px</span> <span class="built_in">rgba</span>(<span class="number">0</span>,<span class="number">0</span>,<span class="number">0</span>,.<span class="number">15</span>);</span><br><span class="line">          <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">1px</span> <span class="number">2px</span> <span class="built_in">rgba</span>(<span class="number">0</span>,<span class="number">0</span>,<span class="number">0</span>,.<span class="number">15</span>);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="十七、单行规则声明"><a href="#十七、单行规则声明" class="headerlink" title="十七、单行规则声明"></a>十七、单行规则声明</h2><p>对于只包含一条声明的样式，为了易读性和便于快速编辑，建议将语句放在同一行。对于带有多条声明的样式，还是应当将声明分为多行。</p><p>这样做的关键因素是为了错误检测 – 例如，CSS 校验器指出在 183 行有语法错误。如果是单行单条声明，你就不会忽略这个错误；如果是单行多条声明的话，你就要仔细分析避免漏掉错误了。</p><figure class="highlight less"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* Single declarations on one line */</span></span><br><span class="line"><span class="selector-class">.span1</span> &#123; <span class="attribute">width</span>: <span class="number">60px</span>; &#125;</span><br><span class="line"><span class="selector-class">.span2</span> &#123; <span class="attribute">width</span>: <span class="number">140px</span>; &#125;</span><br><span class="line"><span class="selector-class">.span3</span> &#123; <span class="attribute">width</span>: <span class="number">220px</span>; &#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* Multiple declarations, one per line */</span></span><br><span class="line"><span class="selector-class">.sprite</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: inline-block;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">16px</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">15px</span>;</span><br><span class="line">  <span class="attribute">background-image</span>: url(<span class="string">&quot;../img/sprite.png&quot;</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.icon</span>           &#123; <span class="attribute">background-position</span>: <span class="number">0</span> <span class="number">0</span>; &#125;</span><br><span class="line"><span class="selector-class">.icon-home</span>      &#123; <span class="attribute">background-position</span>: <span class="number">0</span> -<span class="number">20px</span>; &#125;</span><br><span class="line"><span class="selector-class">.icon-account</span>   &#123; <span class="attribute">background-position</span>: <span class="number">0</span> -<span class="number">40px</span>; &#125;</span><br></pre></td></tr></table></figure><h2 id="十八、简写形式的属性声明"><a href="#十八、简写形式的属性声明" class="headerlink" title="十八、简写形式的属性声明"></a>十八、简写形式的属性声明</h2><p>在需要显示地设置所有值的情况下，应当尽量限制使用简写形式的属性声明。常被滥用的简写属性如下：</p><ul><li><code>padding</code></li><li><code>margin</code></li><li><code>font</code></li><li><code>background</code></li><li><code>border</code></li><li><code>border-radius</code></li></ul><p>大部分情况下，我们不需要为简写形式的属性声明指定所有值。例如，HTML 的标题元素只需要设置上、下边距（margin）的值，因此，在必要的时候，只需覆盖这两个值就可以了。<code>0</code> 值表示对浏览器默认值或以前指定的值的覆盖。</p><p>过多地使用属性的简写形式会导致代码出现不必要的覆盖和意外的副作用。</p><figure class="highlight less"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* Bad example */</span></span><br><span class="line"><span class="selector-class">.element</span> &#123;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">10px</span>;</span><br><span class="line">  <span class="attribute">background</span>: red;</span><br><span class="line">  <span class="attribute">background</span>: url(<span class="string">&quot;image.jpg&quot;</span>);</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">3px</span> <span class="number">3px</span> <span class="number">0</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* Good example */</span></span><br><span class="line"><span class="selector-class">.element</span> &#123;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">10px</span>;</span><br><span class="line">  <span class="attribute">background-color</span>: red;</span><br><span class="line">  <span class="attribute">background-image</span>: url(<span class="string">&quot;image.jpg&quot;</span>);</span><br><span class="line">  <span class="attribute">border-top-left-radius</span>: <span class="number">3px</span>;</span><br><span class="line">  <span class="attribute">border-top-right-radius</span>: <span class="number">3px</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="十九、Less-和-Sass-中的嵌套"><a href="#十九、Less-和-Sass-中的嵌套" class="headerlink" title="十九、Less 和 Sass 中的嵌套"></a>十九、Less 和 Sass 中的嵌套</h2><p>避免不必要的嵌套。这是因为虽然你可以使用嵌套，但是并不意味着应该使用嵌套。只有在必须将样式限制在父元素内（也就是后代选择器），并且存在多个需要嵌套的元素时才使用嵌套。</p><figure class="highlight less"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// Without nesting</span></span><br><span class="line"><span class="selector-class">.table</span> &gt; <span class="selector-tag">thead</span> &gt; <span class="selector-tag">tr</span> &gt; <span class="selector-tag">th</span> &#123; … &#125;</span><br><span class="line"><span class="selector-class">.table</span> &gt; <span class="selector-tag">thead</span> &gt; <span class="selector-tag">tr</span> &gt; <span class="selector-tag">td</span> &#123; … &#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">// With nesting</span></span><br><span class="line"><span class="selector-class">.table</span> &gt; <span class="selector-tag">thead</span> &gt; <span class="selector-tag">tr</span> &#123;</span><br><span class="line">  &gt; <span class="selector-tag">th</span> &#123; … &#125;</span><br><span class="line">  &gt; <span class="selector-tag">td</span> &#123; … &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="二十、Less-和-Sass-中的操作符"><a href="#二十、Less-和-Sass-中的操作符" class="headerlink" title="二十、Less 和 Sass 中的操作符"></a>二十、Less 和 Sass 中的操作符</h2><p>为了提高可读性，在圆括号中的数学计算表达式的数值、变量和操作符之间均添加一个空格。</p><figure class="highlight less"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// Bad example</span></span><br><span class="line"><span class="selector-class">.element</span> &#123;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">10px</span> <span class="number">0</span> <span class="variable">@variable</span>*<span class="number">2</span> <span class="number">10px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">// Good example</span></span><br><span class="line"><span class="selector-class">.element</span> &#123;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">10px</span> <span class="number">0</span> (<span class="variable">@variable</span> * <span class="number">2</span>) <span class="number">10px</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="21、注释"><a href="#21、注释" class="headerlink" title="21、注释"></a>21、注释</h2><p>代码是由人编写并维护的。请确保你的代码能够自描述、注释良好并且易于他人理解。好的代码注释能够传达上下文关系和代码目的。不要简单地重申组件或 class 名称。</p><p>对于较长的注释，务必书写完整的句子；对于一般性注解，可以书写简洁的短语。</p><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* Bad example */</span></span><br><span class="line"><span class="comment">/* Modal header */</span></span><br><span class="line"><span class="selector-class">.modal-header</span> &#123;</span><br><span class="line">  ...</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* Good example */</span></span><br><span class="line"><span class="comment">/* Wrapping element for .modal-title and .modal-close */</span></span><br><span class="line"><span class="selector-class">.modal-header</span> &#123;</span><br><span class="line">  ...</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="22、class-命名"><a href="#22、class-命名" class="headerlink" title="22、class 命名"></a>22、class 命名</h2><ul><li>class 名称中只能出现小写字符和破折号（dashe）（不是下划线，也不是驼峰命名法）。破折号应当用于相关 class 的命名（类似于命名空间）（例如，.btn 和 .btn-danger）。</li><li>避免过度任意的简写。.btn 代表 button，但是 .s 不能表达任何意思。</li><li>class 名称应当尽可能短，并且意义明确。</li><li>使用有意义的名称。使用有组织的或目的明确的名称，不要使用表现形式（presentational）的名称。</li><li>基于最近的父 class 或基本（base） class 作为新 class 的前缀。</li><li>使用 .js-* class 来标识行为（与样式相对），并且不要将这些 class 包含到 CSS 文件中。</li><li>在为 Sass 和 Less 变量命名时也可以参考上面列出的各项规范。</li></ul><figure class="highlight less"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* Bad example */</span></span><br><span class="line"><span class="selector-class">.t</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.red</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.header</span> &#123; ... &#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* Good example */</span></span><br><span class="line"><span class="selector-class">.tweet</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.important</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.tweet-header</span> &#123; ... &#125;</span><br></pre></td></tr></table></figure><h2 id="23、选择器"><a href="#23、选择器" class="headerlink" title="23、选择器"></a>23、选择器</h2><ul><li>对于通用元素使用 class ，这样利于渲染性能的优化。</li><li>对于经常出现的组件，避免使用属性选择器（例如，<code>[class^=&quot;...&quot;]</code>）。浏览器的性能会受到这些因素的影响。</li><li>选择器要尽可能短，并且尽量限制组成选择器的元素个数，建议不要超过 3 。</li><li>只有在必要的时候才将 class 限制在最近的父元素内（也就是后代选择器）（例如，不使用带前缀的 class 时 – 前缀类似于命名空间）。</li></ul><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* Bad example */</span></span><br><span class="line"><span class="selector-tag">span</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.page-container</span> <span class="selector-id">#stream</span> <span class="selector-class">.stream-item</span> <span class="selector-class">.tweet</span> <span class="selector-class">.tweet-header</span> <span class="selector-class">.username</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.avatar</span> &#123; ... &#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* Good example */</span></span><br><span class="line"><span class="selector-class">.avatar</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.tweet-header</span> <span class="selector-class">.username</span> &#123; ... &#125;</span><br><span class="line"><span class="selector-class">.tweet</span> <span class="selector-class">.avatar</span> &#123; ... &#125;</span><br></pre></td></tr></table></figure><h2 id="24、代码组织"><a href="#24、代码组织" class="headerlink" title="24、代码组织"></a>24、代码组织</h2><ul><li>以组件为单位组织代码段。</li><li>制定一致的注释规范。</li><li>使用一致的空白符将代码分隔成块，这样利于扫描较大的文档。</li><li>如果使用了多个 CSS 文件，将其按照组件而非页面的形式分拆，因为页面会被重组，而组件只会被移动。</li></ul><figure class="highlight less"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/*</span></span><br><span class="line"><span class="comment"> * Component section heading</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"></span><br><span class="line"><span class="selector-class">.element</span> &#123; ... &#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/*</span></span><br><span class="line"><span class="comment"> * Component section heading</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * Sometimes you need to include optional context for the entire component. Do that up here if it&#x27;s important enough.</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"></span><br><span class="line"><span class="selector-class">.element</span> &#123; ... &#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* Contextual sub-component or modifer */</span></span><br><span class="line"><span class="selector-class">.element-heading</span> &#123; ... &#125;</span><br></pre></td></tr></table></figure><h2 id="25、编辑器配置"><a href="#25、编辑器配置" class="headerlink" title="25、编辑器配置"></a>25、编辑器配置</h2><p>将你的编辑器按照下面的配置进行设置，以避免常见的代码不一致和差异：</p><ul><li>用两个空格代替制表符（soft-tab 即用空格代表 tab 符）。</li><li>保存文件时，删除尾部的空白符。</li><li>设置文件编码为 UTF-8。</li><li>在文件结尾添加一个空白行。</li></ul><p>参照文档并将这些配置信息添加到项目的 .editorconfig 文件中。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;黄金定律&quot;&gt;&lt;a href=&quot;#黄金定律&quot; class=&quot;headerlink&quot; title=&quot;黄金定律&quot;&gt;&lt;/a&gt;黄金定律&lt;/h1&gt;&lt;p&gt;永远遵循同一套编码规范，不管有多少人共同参与同一项目，一定要确保每一行代码都像是同一个人编写的。&lt;/p&gt;
&lt;h1 id=&quot;H</summary>
      
    
    
    
    <category term="经验分享" scheme="https://blog.lhliang.com/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="编码" scheme="https://blog.lhliang.com/tags/%E7%BC%96%E7%A0%81/"/>
    
    <category term="前端开发" scheme="https://blog.lhliang.com/tags/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/"/>
    
  </entry>
  
  <entry>
    <title>主题标签预览</title>
    <link href="https://blog.lhliang.com/p/9d85188f.html"/>
    <id>https://blog.lhliang.com/p/9d85188f.html</id>
    <published>2024-02-29T07:37:19.000Z</published>
    <updated>2026-04-16T08:03:52.000Z</updated>
    
    <content type="html"><![CDATA[<p>持续更新标签中。。。</p><h2 id="一、行内文本样式"><a href="#一、行内文本样式" class="headerlink" title="一、行内文本样式"></a>一、行内文本样式</h2><ol><li>带 <u>下划线</u> 的文本</li><li>带 <emp>着重号</emp> 的文本</li><li>带 <zap1>较短波浪线</zap1> 的文本</li><li>带 <zap2>中等长度波浪线1</zap2> 的文本</li><li>带 <zap3>中等长度波浪线2</zap3> 的文本</li><li>带 <del>删除线</del> 的文本</li><li>键盘样式的文本 <kbd>command</kbd> + <kbd>D</kbd></li><li>密码样式的文本：<psw>这里没有验证码</psw></li><li>带<strong>加粗</strong>的文本</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">1. 带 &#123;% u 下划线 %&#125; 的文本</span><br><span class="line">2. 带 &#123;% emp 着重号 %&#125; 的文本</span><br><span class="line">3. 带 &#123;% zap1 较短波浪线 %&#125; 的文本</span><br><span class="line">4. 带 &#123;% zap2 中等长度波浪线1 %&#125; 的文本</span><br><span class="line">5. 带 &#123;% zap3 中等长度波浪线2 %&#125; 的文本</span><br><span class="line">6. 带 &#123;% del 删除线 %&#125; 的文本</span><br><span class="line">7. 键盘样式的文本 &#123;% kbd <span class="built_in">command</span> %&#125; + &#123;% kbd D %&#125;</span><br><span class="line">8. 密码样式的文本：&#123;% psw 这里没有验证码 %&#125;</span><br><span class="line">9. 带**加粗**的文本</span><br></pre></td></tr></table></figure><h2 id="二、tab分栏样式"><a href="#二、tab分栏样式" class="headerlink" title="二、tab分栏样式"></a>二、tab分栏样式</h2><div class="tabs" id="test1"><ul class="nav-tabs"><li class="tab active"><button type="button" data-href="#test1-1">test1 1</button></li><li class="tab"><button type="button" data-href="#test1-2">test1 2</button></li><li class="tab"><button type="button" data-href="#test1-3">test1 3</button></li></ul><div class="tab-contents"><div class="tab-item-content active" id="test1-1"><p><strong>This is Tab 1.</strong></p><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="lhlfont icon-arrow-up-line"></i></button></div><div class="tab-item-content" id="test1-2"><p><strong>This is Tab 2.</strong></p><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="lhlfont icon-arrow-up-line"></i></button></div><div class="tab-item-content" id="test1-3"><p><strong>This is Tab 3.</strong></p><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="lhlfont icon-arrow-up-line"></i></button></div></div></div><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">&#123;% tabs test1 %&#125;</span><br><span class="line">&lt;!-- tab --&gt;</span><br><span class="line">**This is Tab 1.**</span><br><span class="line">&lt;!-- endtab --&gt;</span><br><span class="line">&lt;!-- tab --&gt;</span><br><span class="line">**This is Tab 2.**</span><br><span class="line">&lt;!-- endtab --&gt;</span><br><span class="line">&lt;!-- tab --&gt;</span><br><span class="line">**This is Tab 3.**</span><br><span class="line">&lt;!-- endtab --&gt;</span><br><span class="line">&#123;% endtabs %&#125;</span><br></pre></td></tr></table></figure><h2 id="三、颜色标签样式"><a href="#三、颜色标签样式" class="headerlink" title="三、颜色标签样式"></a>三、颜色标签样式</h2><p>臣亮言：<mark class="hl-label default">先帝</mark> 创业未半，而<mark class="hl-label blue">中道崩殂</mark> 。今天下三分，<mark class="hl-label pink">益州疲敝</mark> ，此诚<mark class="hl-label red">危急存亡之秋</mark> 也！然侍衞之臣，不懈于内；<mark class="hl-label purple">忠志之士</mark> ，忘身于外者，盖追先帝之殊遇，欲报之于陛下也。诚宜开张圣听，以光先帝遗德，恢弘志士之气；不宜妄自菲薄，引喻失义，以塞忠谏之路也。<br>宫中、府中，俱为一体；陟罚臧否，不宜异同。若有<mark class="hl-label orange">作奸</mark> 、<mark class="hl-label green">犯科</mark> ，及为<mark class="hl-label teal">忠善者</mark> ，宜付有司，<mark class="hl-label cyan">论其刑赏</mark> ，以昭陛下平明之治；<mark class="hl-label yellow">不宜偏私</mark> 异法也。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">臣亮言：&#123;% label 先帝 %&#125;创业未半，而&#123;% label 中道崩殂 blue %&#125;。今天下三分，&#123;% label 益州疲敝 pink %&#125;，此诚&#123;% label 危急存亡之秋 red %&#125;也！然侍衞之臣，不懈于内；&#123;% label 忠志之士 purple %&#125;，忘身于外者，盖追先帝之殊遇，欲报之于陛下也。诚宜开张圣听，以光先帝遗德，恢弘志士之气；不宜妄自菲薄，引喻失义，以塞忠谏之路也。</span><br><span class="line">宫中、府中，俱为一体；陟罚臧否，不宜异同。若有&#123;% label 作奸 orange %&#125;、&#123;% label 犯科 green %&#125;，及为&#123;% label 忠善者 teal %&#125;，宜付有司，&#123;% label 论其刑赏 cyan %&#125;，以昭陛下平明之治；&#123;% label 不宜偏私 yellow % &#125;，使&#123;% label 内外 indigo %&#125;异法也。</span><br></pre></td></tr></table></figure><h2 id="四、折叠框样式"><a href="#四、折叠框样式" class="headerlink" title="四、折叠框样式"></a>四、折叠框样式</h2><details class="folding-tag" ><summary> 查看图片测试 </summary>              <div class='content'>              <p><img src="https://bu.dusays.com/2023/06/01/64788d71c832d.webp"></p>              </div>            </details><details class="folding-tag" cyan open><summary> 查看默认打开的折叠框 </summary>              <div class='content'>              <p>这是一个默认打开的折叠框。</p>              </div>            </details><details class="folding-tag" green><summary> 查看代码测试 </summary>              <div class='content'>              <p>假装这里有代码块（代码块没法嵌套代码块）</p>              </div>            </details><details class="folding-tag" yellow><summary> 查看列表测试 </summary>              <div class='content'>              <ul><li>列表内容1</li><li>列表内容2</li></ul>              </div>            </details><details class="folding-tag" red><summary> 查看嵌套测试 </summary>              <div class='content'>              <details class="folding-tag" ><summary> 查看嵌套测试2 </summary>              <div class='content'>              <details class="folding-tag" ><summary> 查看嵌套测试3 </summary>              <div class='content'>              <p>嵌套完成<span><img src='https://bu.dusays.com/2023/06/01/64788cd5a356b.png' style='height:24px'></span></p>              </div>            </details>              </div>            </details>              </div>            </details><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line">&#123;% folding 查看图片测试 %&#125;</span><br><span class="line">![](https://bu.dusays.com/2023/06/01/64788d71c832d.webp)</span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding cyan open, 查看默认打开的折叠框 %&#125;</span><br><span class="line">这是一个默认打开的折叠框。</span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding green, 查看代码测试 %&#125;</span><br><span class="line">假装这里有代码块（代码块没法嵌套代码块）</span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding yellow, 查看列表测试 %&#125;</span><br><span class="line">- 列表内容1</span><br><span class="line">- 列表内容2</span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding red, 查看嵌套测试 %&#125;</span><br><span class="line">&#123;% folding, 查看嵌套测试2 %&#125;</span><br><span class="line">&#123;% folding 查看嵌套测试3 %&#125;</span><br><span class="line">嵌套完成&lt;span&gt;&lt;img src=<span class="string">&#x27;https://bu.dusays.com/2023/06/01/64788cd5a356b.png&#x27;</span> style=<span class="string">&#x27;height:24px&#x27;</span>&gt;&lt;/span&gt;</span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line">&#123;% endfolding %&#125;</span><br></pre></td></tr></table></figure><h2 id="五、时间轴样式"><a href="#五、时间轴样式" class="headerlink" title="五、时间轴样式"></a>五、时间轴样式</h2><div class="timeline blue"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">&#123;% timeline 2022,blue %&#125;</span><br><span class="line">&lt;!-- timeline 01-02 --&gt;</span><br><span class="line">这是测试页面</span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line">&#123;% endtimeline %&#125;</span><br></pre></td></tr></table></figure><h2 id="六、提示框样式"><a href="#六、提示框样式" class="headerlink" title="六、提示框样式"></a>六、提示框样式</h2><div class="note no-icon flat"><p>默认 提示块标签</p></div><div class="note default no-icon flat"><p>默认 无ICON提示块标签</p></div><div class="note primary no-icon flat"><p>primary 无ICON提示块标签</p></div><div class="note success no-icon flat"><p>success 无ICON提示块标签</p></div><div class="note info no-icon flat"><p>info 无ICON提示块标签</p></div><div class="note warning no-icon flat"><p>warning 无ICON提示块标签</p></div><div class="note danger no-icon flat"><p>danger 无ICON提示块标签</p></div><div class="note default flat"><p>default 提示块标签</p></div><div class="note primary flat"><p>primary 提示块标签</p></div><div class="note success flat"><p>success 提示块标签</p></div><div class="note info flat"><p>info 提示块标签</p></div><div class="note warning flat"><p>warning 提示块标签</p></div><div class="note danger flat"><p>danger 提示块标签</p></div><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note no-icon %&#125;默认 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note default no-icon %&#125;默认 无ICON提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note primary no-icon %&#125;primary 无ICON提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note success no-icon %&#125;success 无ICON提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note info no-icon %&#125;info 无ICON提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note warning no-icon %&#125;warning 无ICON提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note danger no-icon %&#125;danger 无ICON提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note default %&#125;default 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note primary %&#125;primary 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note success %&#125;success 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note info %&#125;info 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note warning %&#125;warning 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note danger %&#125;danger 提示块标签&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;持续更新标签中。。。&lt;/p&gt;
&lt;h2 id=&quot;一、行内文本样式&quot;&gt;&lt;a href=&quot;#一、行内文本样式&quot; class=&quot;headerlink&quot; title=&quot;一、行内文本样式&quot;&gt;&lt;/a&gt;一、行内文本样式&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;带 &lt;u&gt;下划线&lt;/u&gt; 的文本&lt;/li&gt;
</summary>
      
    
    
    
    <category term="主题教程" scheme="https://blog.lhliang.com/categories/%E4%B8%BB%E9%A2%98%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="主题标签" scheme="https://blog.lhliang.com/tags/%E4%B8%BB%E9%A2%98%E6%A0%87%E7%AD%BE/"/>
    
    <category term="Hexo" scheme="https://blog.lhliang.com/tags/Hexo/"/>
    
  </entry>
  
  <entry>
    <title>PowerShell 管理 Microsoft Defender防病毒软件</title>
    <link href="https://blog.lhliang.com/p/82cf9516.html"/>
    <id>https://blog.lhliang.com/p/82cf9516.html</id>
    <published>2023-07-31T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.133Z</updated>
    
    <content type="html"><![CDATA[<p>Microsoft Defender防病毒扫描完成后，无论是按需扫描还是计划扫描，结果都将被记录，可以查看扫描结果。</p><h2 id="一、PowerShell查看扫描结果"><a href="#一、PowerShell查看扫描结果" class="headerlink" title="一、PowerShell查看扫描结果"></a>一、PowerShell查看扫描结果</h2><p>使用 PowerShell cmdlet 查看扫描结果</p><p>以下 cmdlet 将返回终结点上的每个检测。 如果存在对同一威胁的多个检测，则会根据每次检测的时间单独列出每个检测：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Get-MpThreatDetection</span></span><br><span class="line"></span><br><span class="line">ActionSuccess                  : True</span><br><span class="line">AdditionalActionsBitMask       : <span class="number">0</span></span><br><span class="line">AMProductVersion               : <span class="number">4.18</span>.<span class="number">23050.9</span></span><br><span class="line">CleaningActionID               : <span class="number">2</span></span><br><span class="line">CurrentThreatExecutionStatusID : <span class="number">1</span></span><br><span class="line">DetectionID                    : &#123;<span class="number">16219</span>B17<span class="literal">-0B4C-4F57-9240-E99F1966D48D</span>&#125;</span><br><span class="line">DetectionSourceTypeID          : <span class="number">3</span></span><br><span class="line">DomainUser                     : test\test</span><br><span class="line">InitialDetectionTime           : <span class="number">2023</span>/<span class="number">8</span>/<span class="number">1</span> <span class="number">14</span>:<span class="number">17</span>:<span class="number">46</span></span><br><span class="line">LastThreatStatusChangeTime     : <span class="number">2023</span>/<span class="number">8</span>/<span class="number">1</span> <span class="number">14</span>:<span class="number">18</span>:<span class="number">13</span></span><br><span class="line">ProcessName                    : C:\Windows\explorer.exe</span><br><span class="line">RemediationTime                : <span class="number">2023</span>/<span class="number">8</span>/<span class="number">1</span> <span class="number">14</span>:<span class="number">18</span>:<span class="number">13</span></span><br><span class="line">Resources                      : &#123;file:_C:\xxx.exe&#125;</span><br><span class="line">ThreatID                       : <span class="number">265744</span></span><br><span class="line">ThreatStatusErrorCode          : <span class="number">0</span></span><br><span class="line">ThreatStatusID                 : <span class="number">3</span></span><br><span class="line">PSComputerName                 :</span><br></pre></td></tr></table></figure><ul><li>可以指定 -ThreatID 以将输出限制为仅显示特定威胁的检测。</li><li>恢复隔离区的文件也需要指定 -ThreatID</li></ul><h2 id="二、还原隔离的文件"><a href="#二、还原隔离的文件" class="headerlink" title="二、还原隔离的文件"></a>二、还原隔离的文件</h2><p><strong>列出所有威胁</strong></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Get-MpThreat</span></span><br><span class="line"></span><br><span class="line">CategoryID       : <span class="number">23</span></span><br><span class="line">DidThreatExecute : False</span><br><span class="line">IsActive         : False</span><br><span class="line">Resources        :</span><br><span class="line">RollupStatus     : <span class="number">1</span></span><br><span class="line">SchemaVersion    : <span class="number">1.0</span>.<span class="number">0.0</span></span><br><span class="line">SeverityID       : <span class="number">4</span></span><br><span class="line">ThreatID         : <span class="number">265744</span></span><br><span class="line">ThreatName       : Program:Win32/Wacapew.C!ml</span><br><span class="line">TypeID           : <span class="number">0</span></span><br><span class="line">PSComputerName   :</span><br></pre></td></tr></table></figure><p><strong>恢复隔离区文件到原始位置</strong></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">&amp; <span class="string">&#x27;C:\Program Files\Windows Defender\MpCmdRun.exe&#x27;</span> <span class="literal">-Restore</span> <span class="literal">-Name</span> Trojan:Win32/Wacatac.H!ml <span class="literal">-All</span></span><br><span class="line"></span><br><span class="line">Restoring the following quarantined items:</span><br><span class="line"></span><br><span class="line">ThreatName = Trojan:Win32/Wacatac.H!ml</span><br><span class="line">   file:C:\xxx\xxx.exe quarantined at <span class="number">2023</span>/<span class="number">8</span>/<span class="number">1</span> <span class="number">6</span>:<span class="number">08</span>:<span class="number">22</span> (UTC) was restored</span><br></pre></td></tr></table></figure><h2 id="三、管理防火墙排除项"><a href="#三、管理防火墙排除项" class="headerlink" title="三、管理防火墙排除项"></a>三、管理防火墙排除项</h2><p><strong>查看排除项列表</strong></p><p>使用 PowerShell 检索排除列表</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">$WDAVprefs</span> = <span class="built_in">Get-MpPreference</span></span><br><span class="line"><span class="variable">$WDAVprefs</span>.ExclusionExtension</span><br><span class="line"><span class="variable">$WDAVprefs</span>.ExclusionPath</span><br><span class="line"></span><br><span class="line">C:\BaiduNetdiskDownload</span><br><span class="line">C:\Users\test\Downloads</span><br></pre></td></tr></table></figure><p><strong>添加排除项</strong></p><p>使用 PowerShell 添加排除项</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Add-MpPreference</span> <span class="literal">-ExclusionPath</span> c:\排除目录</span><br></pre></td></tr></table></figure><p><strong>删除排除项</strong></p><p>使用 PowerShell 移除排除项</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Remove-MpPreference</span> <span class="literal">-ExclusionPath</span> c:\排除目录</span><br></pre></td></tr></table></figure><h2 id="四、使用-PowerShell-运行扫描"><a href="#四、使用-PowerShell-运行扫描" class="headerlink" title="四、使用 PowerShell 运行扫描"></a>四、使用 PowerShell 运行扫描</h2><p><strong>使用专用命令行工具 mpcmdrun.exe 执行防病毒扫描</strong></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">&amp; <span class="string">&#x27;C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.23050.9-0\MpCmdRun.exe&#x27;</span> <span class="literal">-scan</span> <span class="literal">-scantype</span> <span class="number">1</span></span><br><span class="line"></span><br><span class="line">Scan starting...</span><br><span class="line">Scan finished.</span><br></pre></td></tr></table></figure><p>ScanType 的值为：</p><ul><li>0 默认，根据配置</li><li>1 快速扫描</li><li>2 完全扫描</li><li>3 文件和目录自定义扫描。</li></ul><p><a href="https://learn.microsoft.com/zh-cn/microsoft-365/security/defender-endpoint/command-line-arguments-microsoft-defender-antivirus?view=o365-worldwide">扫描工具参数参考</a></p><p><strong>脱机扫描</strong></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Start-MpScan</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;Microsoft Defender防病毒扫描完成后，无论是按需扫描还是计划扫描，结果都将被记录，可以查看扫描结果。&lt;/p&gt;
&lt;h2 id=&quot;一、PowerShell查看扫描结果&quot;&gt;&lt;a href=&quot;#一、PowerShell查看扫描结果&quot; class=&quot;headerlin</summary>
      
    
    
    
    <category term="经验分享" scheme="https://blog.lhliang.com/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="PowerShell" scheme="https://blog.lhliang.com/tags/PowerShell/"/>
    
    <category term="杀毒软件" scheme="https://blog.lhliang.com/tags/%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/"/>
    
  </entry>
  
  <entry>
    <title>Citrix CVAD 架构和通讯连接</title>
    <link href="https://blog.lhliang.com/p/ccab92c4.html"/>
    <id>https://blog.lhliang.com/p/ccab92c4.html</id>
    <published>2023-07-29T16:00:00.000Z</published>
    <updated>2026-05-17T14:35:12.761Z</updated>
    
    <content type="html"><![CDATA[<p>根据官方文档和项目实施经验总结得出，不足之处还望指正。</p><h2 id="一、Citrix-CVAD-架构"><a href="#一、Citrix-CVAD-架构" class="headerlink" title="一、Citrix CVAD 架构"></a>一、Citrix CVAD 架构</h2><p>Citrix Virtual Apps and Desktops 是虚拟化解决方案。利用这些方案，IT 可以在提供随时随地访问任何设备的同时，控制虚拟机、应用程序、许可和安全性。</p><p>Citrix Virtual Apps and Desktops 允许执行以下操作：</p><ul><li>最终用户独立于设备的操作系统和界面运行应用程序和桌面。</li><li>管理员管理网络并控制来自选定设备或所有设备的访问。</li><li>管理员从单个数据中心管理整个网络。</li></ul><p>Citrix Virtual Apps and Desktops 共享统一的体系结构 FlexCast Management Architecture (FMA)。FMA 的主要功能是可以通过单个站点和集成预配运行多个版本的 Citrix Virtual Apps 或 Citrix Virtual Desktops。</p><h3 id="主要组件"><a href="#主要组件" class="headerlink" title="主要组件"></a>主要组件</h3><p>下图显示了典型部署（称为“站点”）中的主要组件。</p><p><img src="https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/media/components-new-op.png" alt="典型部署"></p><p><strong>Delivery Controller</strong></p><p>Delivery Controller 是站点的中心管理组件。每个站点有一个或多个 Delivery Controller。至少安装在数据中心内的一个服务器上。为实现站点可靠性和可用性，将 Controller 安装在多个服务器上。如果您的部署中包括虚拟机管理程序或其他服务，Controller 服务将与其进行通信，以：</p><ul><li>分发应用程序和桌面</li><li>对用户进行身份验证和管理用户访问</li><li>代理用户与其桌面和应用程序之间的连接。</li><li>优化用户连接</li><li>平衡这些连接的负载</li></ul><p>Controller 的 Broker Service 跟踪登录的用户和登录位置、用户拥有的会话资源以及用户是否需要重新连接到现有应用程序。Broker Service 运行 PowerShell cmdlet 并通过 TCP 端口 80 与 VDA 上的 Broker Agent 通信。它不可以使用 TCP 端口 443。</p><p>Monitor Service 收集历史数据并将其放置在监视数据库中。此服务使用 TCP 端口 80 或 443。</p><p>来自 Controller 服务的数据存储在站点数据库中。</p><p>Controller 管理桌面的状态，根据需要和管理配置启动和停止桌面。</p><p><strong>数据库</strong></p><p>每个站点至少需要一个 Microsoft SQL Server 数据库，用于存储配置和会话信息。此数据库存储组成 Controller 的服务所收集并管理的数据。在数据中心内安装此数据库，并确保此数据库与 Controller 建立持续型连接。</p><p>站点还使用一个配置日志记录数据库和一个监视数据库。默认情况下，这些数据库与站点数据库安装在相同的位置，但您可以对此进行更改。</p><p><strong>Virtual Delivery Agent (VDA)</strong></p><p>VDA 安装在站点中要供用户使用的各个物理计算机或虚拟机上。这些计算机提供应用程序或桌面。VDA 使计算机能够向 Controller 注册，Controller 进而允许向用户提供它所托管的计算机和资源。VDA 建立并管理计算机与用户设备之间的连接。VDA 还验证 Citrix 许可证是否对用户或会话可用，并应用为会话配置的策略。</p><p>VDA 通过 VDA 中的 Broker Agent 将会话信息传递给 Controller 中的 Broker Service。托管多个插件并收集实时数据的 Broker 代理。它通过 TCP 端口 80 与 Controller 通信。</p><p>“VDA”一词通常用于指代理和安装了该代理的计算机。</p><p>VDA 可用于单会话和多会话 Windows 操作系统。适用于多会话 Windows 操作系统的 VDA 允许多个用户同时连接到服务器。适用于单会话 Windows 操作系统的 VDA 每次仅允许一个用户连接到桌面。</p><p><strong>Citrix StoreFront</strong></p><p>StoreFront 负责对用户进行身份验证，并管理用户访问的桌面和应用程序的存储。它可以托管企业应用商店，使用户可以自助访问您为其提供的桌面和应用程序。StoreFront 还跟踪用户的应用程序订阅、快捷方式名称以及其他数据。这有助于确保用户在多个设备之间具有一致的体验。</p><p><strong>Citrix Workspace 应用程序</strong></p><p>Citrix Workspace 应用程序安装在用户设备和其他端点（例如虚拟桌面）上，使用户能够快速、安全地自助访问文档、应用程序和桌面。通过 Citrix Workspace 应用程序，可以按需访问 Windows、Web 和软件即服务 (SaaS) 应用程序。对于无法安装设备特定的 Citrix Workspace 应用程序软件的设备，适用于 HTML5 的 Citrix Workspace 应用程序通过与 HTML5 兼容的 Web 浏览器提供了一个连接。</p><p><strong>Studio</strong></p><p>可以使用下面两个管理控制台管理您的 Citrix Virtual Apps and Desktops 部署：Web Studio（基于 Web）和 Citrix Studio（基于 Windows）。本产品文档仅涉及 Web Studio。有关 Citrix Studio 的信息，请参阅 Citrix Virtual Apps and Desktops 7 2212 或更早版本。</p><p><strong>Web Studio</strong></p><p>Web Studio 是一个基于 Web 的管理控制台，允许您配置和管理本地 Citrix Virtual Apps and Desktops 部署。它专为改善用户体验而设计，通常比 Citrix Studio（基于 Windows 的管理控制台）响应速度更快。</p><p><strong>Citrix Studio</strong></p><p>Citrix Studio 是在其中配置和管理 Citrix Virtual Apps and Desktops 部署的管理控制台。Citrix Studio 无需在单独的管理控制台中管理应用程序和桌面的交付。Citrix Studio 提供的向导将指导您完成设置环境、创建托管应用程序和桌面的工作负载以及将应用程序和桌面分配给用户的操作。还可以使用 Studio 为站点分配和跟踪 Citrix 许可证。</p><p>Citrix Studio 从 Controller 中的 Broker Service 获取所显示的信息，它通过 TCP 端口 80 通信。</p><p><strong>Citrix Director</strong></p><p>Director 是一款基于 Web 的工具，IT 支持团队和技术支持团队可以利用该工具监控环境和对问题进行故障排除，以避免这些问题危及系统，并可以为最终用户执行支持任务。可以使用一个 Director 部署连接到和监视多个 Citrix Virtual Apps 或 Citrix Virtual Desktops 站点。</p><p>Director 显示：</p><ul><li>来自 Controller 中的 Broker Service 的实时会话数据，其中包括 Broker Service 从 VDA 中的 Broker Agent 获取的数据。</li><li>来自 Controller 中的 Monitor Service 的历史站点数据。</li></ul><p>Director 使用 Citrix Gateway 设备捕获的 ICA 性能和启发数据来基于数据生成分析信息，然后将其呈现给管理员。</p><p>还可以使用 Windows 远程协助通过 Director 查看用户会话并与之交互。</p><p><strong>Citrix 许可证服务器</strong></p><p>许可证服务器管理您的 Citrix 产品许可证。它与 Controller 通信以管理每个用户会话的许可，与 Studio 通信以分配许可证文件。站点必须至少具有一个许可证服务器以存储和管理您的许可证文件。</p><p><strong>虚拟机管理程序或其他服务</strong></p><p>虚拟机管理程序或其他服务托管站点中的虚拟机。这些虚拟机可以是用于托管应用程序和桌面的 VM，也可以是用于托管 Citrix Virtual Apps and Desktops 组件的 VM。虚拟机管理程序安装在完全专用于运行虚拟机管理程序和托管虚拟机的主机计算机上。</p><p>Citrix Virtual Apps and Desktops 支持各种虚拟机管理程序和其他服务。</p><p>虽然许多部署都需要虚拟机管理程序，但您不需要虚拟机管理程序即可提供 Remote PC Access。使用 Provisioning Services (PVS) 预配 VM 时，也不需要虚拟机管理程序。</p><h3 id="其他组件"><a href="#其他组件" class="headerlink" title="其他组件"></a>其他组件</h3><p>以下组件也可以包含在 Citrix Virtual Apps and Desktops 部署中。</p><p><strong>Citrix Provisioning</strong></p><p>Citrix Provisioning（以前称为 Provisioning Services）是在某些版本中提供的一个可选组件。它是 MCS 的备选方式，用于预配虚拟机。MCS 创建主映像的副本，PVS 通过流技术将主映像推送到用户设备。PVS 执行此操作时无需使用虚拟机管理程序，因此，您可以使用它来托管物理机。PVS 与 Controller 通信以向用户提供资源。</p><p><strong>Citrix Gateway</strong></p><p>用户从公司防火墙外部连接时，Citrix Virtual Apps and Desktops 可以使用 Citrix Gateway（以前称为 Access Gateway 和 NetScaler Gateway）技术保护这些与 TLS 的连接的安全性。Citrix Gateway 或 VPX 虚拟设备是在隔离区域 (DMZ) 中部署的 SSL VPN 设备。它通过公司防火墙提供单个安全访问点。</p><p><strong>典型部署的工作原理</strong></p><p>站点由具有专用角色的计算机组成，用于实现可扩展性、高可用性和故障转移，并提供采用安全设计的解决方案。站点包括安装 VDA 的服务器和桌面计算机，以及用于管理访问权限的 Delivery Controller。</p><p><img src="https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/media/deployment-overview.png" alt="典型部署的工作原理图"></p><p>VDA 使用户能够连接到桌面和应用程序。它安装在数据中心内的虚拟机上以实现大多数交付方法，但是也可以安装在物理 PC 上以用于 Remote PC Access。</p><p>Controller 由独立的 Windows 服务组成，用于管理资源、应用程序和桌面，并优化和平衡用户连接。每个站点有一个或多个 Controller。由于会话受延迟、带宽和网络可靠性的影响，因此如有可能，请将所有 Controller 放置在同一个 LAN 中。</p><p>用户绝对不能直接访问 Controller。VDA 充当用户和 Controller 之间的媒介。当用户使用 StoreFront 登录时，其凭据将传递到 Controller 上的 Broker Service。然后，Broker Service 将根据为其设置的策略获取配置文件和可用的资源。</p><h3 id="用户连接的处理方式"><a href="#用户连接的处理方式" class="headerlink" title="用户连接的处理方式"></a>用户连接的处理方式</h3><p>要启动会话，用户将通过用户设备上安装的 Citrix Workspace 应用程序或 StoreFront Web 站点进行连接。</p><p>用户选择所需的物理桌面、虚拟桌面或虚拟应用程序。</p><p>用户的凭据按照此路径进行传递以访问 Controller，Controller 通过与 Broker Service 通信确定所需的资源。Citrix 建议管理员在 StoreFront 上放置一个 SSL 证书以加密来自 Citrix Workspace 应用程序的凭据。</p><p><img src="https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/media/user-connections.png" alt="用户连接的处理方式图"></p><p>Broker Service 决定允许用户访问的桌面和应用程序。</p><p>验证凭据后，有关可用应用程序或桌面的信息将通过 StoreFront-Citrix Workspace 应用程序路径发送回用户。用户选择此列表中的应用程序或桌面时，该信息按照相反路径返回到 Controller。Controller 随后决定托管特定应用程序或桌面的 VDA。</p><p>Controller 将用户的凭据通过消息发送给 VDA，然后将关于用户和连接的所有数据发送给 VDA。VDA 接受连接，并将该信息按相同路径发送回 Citrix Workspace 应用程序。在 StoreFront 上收集一组必需参数。这些参数随后被发送到 Citrix Workspace 应用程序，作为 Citrix-Workspace 应用程序-StoreFront 协议对话的一部分，或者转换为 Independent Computing Architecture (ICA) 文件并下载。只要站点经过正确设置，凭据在整个流程均保留加密状态。</p><p>ICA 文件被复制到用户设备上，并在设备与 VDA 上运行的 ICA 堆栈之间建立直接连接。此连接绕过管理基础结构（Citrix Workspace 应用程序、StoreFront 和 Controller）。</p><p>Citrix Workspace 应用程序与 VDA 之间的连接使用 Citrix Gateway 协议 (CGP)。如果连接丢失，通过会话可靠性功能，用户可以重新连接到 VDA，而无需通过管理基础结构重新启动。可以在 Citrix 策略中启用或禁用会话可靠性。</p><p>客户端连接到 VDA 后，VDA 将通知 Controller 用户已登录。然后，Controller 将此信息发送到站点数据库，并开始在监视数据库中记录数据。</p><h3 id="数据访问的工作方式"><a href="#数据访问的工作方式" class="headerlink" title="数据访问的工作方式"></a>数据访问的工作方式</h3><p>每个 Citrix Virtual Apps and Desktops 会话都将生成 IT 能够通过 Studio 或 Director 访问的数据。通过使用 Studio，管理员可以访问 Broker Agent 中的实时数据，以便管理站点。Director 访问监视数据库中存储的相同数据以及历史数据。</p><p><img src="https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/media/data-access.png" alt="数据访问的工作方式图"></p><p>在 Controller 内部，Broker Service 报告计算机上的每个会话的会话数据，以提供实时数据。监视服务还跟踪实时数据并将其作为历史数据存储在监视数据库中。</p><p>Studio 只与 Broker Service 通信。它只访问实时数据。Director 可以与 Broker Service 通信（通过 Broker Agent 中的插件）以访问站点数据库。</p><h3 id="交付桌面和应用程序"><a href="#交付桌面和应用程序" class="headerlink" title="交付桌面和应用程序"></a>交付桌面和应用程序</h3><p>为计算机目录设置将交付应用程序和桌面的计算机。然后，创建交付组，交付组指定将提供的应用程序和桌面（使用目录中的计算机）以及哪些用户可以访问它们。（可选）之后可以创建应用程序组来管理应用程序的集合。</p><p><strong>计算机目录</strong></p><p>计算机目录是作为单个实体进行管理的虚拟机或物理机集合。这些计算机及其中的应用程序或虚拟桌面是要提供给用户的资源。目录中的所有计算机安装相同的操作系统和相同的 VDA，并且，这些计算机上具有相同的应用程序或虚拟桌面。</p><p>通常，您创建一个主映像，然后使用此主映像在目录中创建完全相同的 VM。对于 VM，您可以为该目录中的计算机指定预配方法：Citrix 工具（Citrix Provisioning 或 MCS）或其他工具。也可以使用您自己的现有映像。在这种情况下，必须单独或统一使用第三方电子软件分发 (ESD) 工具管理目标设备。</p><p>有效的计算机类型包括：</p><ul><li>多会话操作系统：具有多会话操作系统的虚拟机或物理计算机。用于交付 Citrix Virtual Apps 发布的应用程序（也称为基于服务器的托管应用程序）和 Citrix Virtual Apps 发布的桌面（也称为服务器托管的桌面）。这些计算机允许多个用户同时与其建立连接。</li><li>单会话操作系统： 配备单会话操作系统的虚拟机或物理机。用于交付 VDI 桌面 （运行可以有选择地个性化的单会话操作系统的桌面）、VM 托管应用程序（来自单会话操作系统的应用程序）以及托管的物理桌面。一次仅允许一个用户连接到其中的一台计算机。</li><li>Remote PC Access： 支持远程用户从任何运行 Citrix Workspace 应用程序的设备访问其物理办公 PC。办公 PC 通过 Citrix Virtual Desktops 部署进行管理，同时要求在允许列表中指定用户设备。</li></ul><p><strong>交付组</strong></p><p>交付组指定哪些用户可以访问哪些计算机上的哪些应用程序、桌面或两者。交付组包含计算机目录中的计算机和具有站点访问权限的 Active Directory 用户。可以按照用户所属的 Active Directory 组将其分配到您的交付组，因为 Active Directory 组和交付组是对要求相似的用户进行分组的方式。</p><p>每个交付组都可以包含多个目录中的计算机，每个目录可以向多个交付组提供计算机。但是，一台计算机一次只能属于一个交付组。</p><p>可以定义交付组中的用户可以访问的资源。例如，要向不同的用户提供不同的应用程序，可以在一个目录的主映像上安装所有应用程序，并在该目录中创建足够多的计算机以在多个交付组之间分发。然后，可以配置每个交付组，以交付计算机上安装的不同应用程序子集。</p><p><strong>应用程序组</strong></p><p>与使用多个交付组相比，应用程序组提供应用程序管理和资源控制优势：通过使用标记限制功能，可以使用现有计算机来完成多个发布任务，从而节省与部署和管理更多计算机有关的成本。标记限制可以视为对交付组中的计算机进行划分（或分区）。对交付组中的一部分计算机进行隔离和故障排除时，应用程序组也很有用。</p><h2 id="二、Citrix-CVAD-通讯连接图"><a href="#二、Citrix-CVAD-通讯连接图" class="headerlink" title="二、Citrix CVAD 通讯连接图"></a>二、Citrix CVAD 通讯连接图</h2><p><img src="https://docs.citrix.com/en-us/tech-zone/learn/media/diagrams-posters_virtual-apps-and-desktops_poster.png" alt="CVAD通讯连接图"></p><p>防火墙之间的详细端口号也可以参考我另一篇文章</p><p><a href="https://blog.lhliang.com/p/c1bb61b0.html">Citrix ADC 和 CVAD 防火墙规则</a></p><p>源图<br><a href="https://citrix.sharefile.com/d-sc866e3d7bba34d11b454af88b0e0c512">https://citrix.sharefile.com/d-sc866e3d7bba34d11b454af88b0e0c512</a></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;根据官方文档和项目实施经验总结得出，不足之处还望指正。&lt;/p&gt;
&lt;h2 id=&quot;一、Citrix-CVAD-架构&quot;&gt;&lt;a href=&quot;#一、Citrix-CVAD-架构&quot; class=&quot;headerlink&quot; title=&quot;一、Citrix CVAD 架构&quot;&gt;&lt;/a&gt;一、C</summary>
      
    
    
    
    <category term="经验分享" scheme="https://blog.lhliang.com/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="虚拟应用和桌面" scheme="https://blog.lhliang.com/tags/%E8%99%9A%E6%8B%9F%E5%BA%94%E7%94%A8%E5%92%8C%E6%A1%8C%E9%9D%A2/"/>
    
    <category term="Citrix" scheme="https://blog.lhliang.com/tags/Citrix/"/>
    
  </entry>
  
  <entry>
    <title>Citrix ADC 和 CVAD 防火墙规则</title>
    <link href="https://blog.lhliang.com/p/c1bb61b0.html"/>
    <id>https://blog.lhliang.com/p/c1bb61b0.html</id>
    <published>2023-07-29T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.131Z</updated>
    
    <content type="html"><![CDATA[<p>防火墙规则根据官方文档和项目实施经验总结得出，不足之处还望指正。</p><h2 id="一、Citrix-ADC-相关防火墙规则"><a href="#一、Citrix-ADC-相关防火墙规则" class="headerlink" title="一、Citrix ADC 相关防火墙规则"></a>一、Citrix ADC 相关防火墙规则</h2><table><thead><tr><th>源</th><th>目的</th><th>协议和端口</th><th>描述</th></tr></thead><tbody><tr><td>管理计算机</td><td>NSIP&#x2F;SNIP</td><td>TCP 22 80 443 3010 3008</td><td>对 NetScaler 配置 GUI 的 SSH 和 HTTP&#x2F;SSL 访问。TCP 3008&#x2F;3010 是 Java，如果流量已加密，则使用 3008。在 10.5 build 57 及更高版本中不需要 Java</td></tr><tr><td>NSIP&#x2F;SNIP</td><td>DNS服务器</td><td>TCP 53 UDP:53 PING</td><td>PING 用于监测 DNS 状态</td></tr><tr><td>NSIP&#x2F;SNIP</td><td>NTP服务器</td><td>UDP 123</td><td>时间同步</td></tr><tr><td>NSIP</td><td>LDAP服务器（域控制器）</td><td>TCP 389 636（安全LDAP）</td><td>安全 LDAP 允许密码更改过期</td></tr><tr><td>NSIP</td><td>LDAP服务器（域控制器）</td><td>TCP 389 636（安全LDAP）</td><td>监测 LDAP 状态</td></tr><tr><td>NSIP</td><td>RADIUS服务器</td><td>UDP 1812</td><td>RADIUS 用于双因素身份验证</td></tr><tr><td>SNIP</td><td>RADIUS服务器</td><td>UDP 1812</td><td>监测 RADIUS 服务状态</td></tr><tr><td>NSIP</td><td>StoreFront</td><td>TCP 80 443</td><td>监测 StoreFront 服务状态</td></tr><tr><td>StoreFront</td><td>NetScaler Gateway VIP</td><td>TCP 443</td><td>从 StoreFront 服务器到 NetScaler 网关的身份验证回调</td></tr><tr><td>SNIP</td><td>DDC</td><td>TCP 80 443</td><td>Secure Ticket Authorities（STA）</td></tr><tr><td>SNIP</td><td>所有虚拟桌面主机网络</td><td>TCP 1494 2598 UDP 1494 2598 16500-16509</td><td>HDX ICA 会话以及UDP 音频</td></tr><tr><td>所有互联和内部用户</td><td>NetScaler Gateway VIP</td><td>TCP 80 443 UDP 443</td><td>来自浏览器和 Citrix 客户端的连接 用于 UDP 音频的 DTLS</td></tr><tr><td>NSIP</td><td>mfa.cloud.com\trust.citrixworkspacesapi.net</td><td>TCP 443</td><td>本机 OTP 推送（需要 DNS）</td></tr></tbody></table><ul><li>默认情况下，身份验证流量使用 NSIP。</li><li>DNS 服务器使用 ping 进行监测。</li></ul><h2 id="二、Citrix-CVAD-相关防火墙规则"><a href="#二、Citrix-CVAD-相关防火墙规则" class="headerlink" title="二、Citrix CVAD 相关防火墙规则"></a>二、Citrix CVAD 相关防火墙规则</h2><table><thead><tr><th>源</th><th>目的</th><th>协议和端口</th><th>描述</th></tr></thead><tbody><tr><td>管理计算机</td><td>DDC</td><td>TCP 80 443 3389</td><td>PowerShell RDP 管理 DDC</td></tr><tr><td>DDC</td><td>SQL Server</td><td>TCP 1433 UDP 1433</td><td>连接 SQL 数据库</td></tr><tr><td>DDC</td><td>vCenter</td><td>TCP 443</td><td>连接 vCenter 托管资源</td></tr><tr><td>DDC</td><td>SCVMM（Hyper-V）</td><td>TCP 8100</td><td>连接 SCVMM 托管资源</td></tr><tr><td>DDC</td><td>XenServer</td><td>TCP 80 443</td><td>连接 XenServer 托管资源</td></tr><tr><td>DDC</td><td>Citrix Licensing</td><td>TCP 27000 7279 8023-8083</td><td>连接 Licensing 服务器</td></tr><tr><td>DDC</td><td>所有 VDA</td><td>TCP 80</td><td>Brokering</td></tr><tr><td>所有 VDA</td><td>DDC</td><td>TCP 80</td><td>桌面注册</td></tr><tr><td>所有 VDA</td><td>域控制器</td><td>TCP 3268</td><td>桌面注册</td></tr><tr><td>所有 VDA 和应用服务器</td><td>Remote Desktop Licensing Server</td><td>RPC 和 SMB</td><td>远程桌面许可</td></tr><tr><td>StoreFront</td><td>DDC</td><td>TCP 80 443</td><td>XML Secure Ticket Authority（STA）</td></tr><tr><td>StoreFront</td><td>StoreFront</td><td>TCP 808</td><td>多节点复制</td></tr><tr><td>StoreFront</td><td>域控制器</td><td>TCP 88 135 445 389&#x2F;636 49151-65535</td><td>RPC 组策略 认证</td></tr><tr><td>所有客户端（内网）</td><td>StoreFront（或负载地址）</td><td>TCP 80 443</td><td>内网访问 StoreFront</td></tr><tr><td>所有客户端（内网）</td><td>所有 VDA</td><td>TCP 1494 2598 UDP 1494 2598 16500-16509</td><td>HDX ICA UDP音频</td></tr><tr><td>所有客户端</td><td>Citrix Gateway VIP</td><td>TCP 80 443</td><td>互联网或内网访问 Citrix Gateway</td></tr><tr><td>管理计算机</td><td>Director</td><td>TCP 80 443</td><td>运维 Web 页面</td></tr><tr><td>Director</td><td>DDC</td><td>TCP 80 443</td><td>连接 DDC</td></tr><tr><td>管理计算机</td><td>所有 VDA</td><td>TCP 135 3389</td><td>远程协助</td></tr></tbody></table><ul><li>DDC（Delivery Controllers）</li><li>VDA（Virtual Delivery Agent）</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;防火墙规则根据官方文档和项目实施经验总结得出，不足之处还望指正。&lt;/p&gt;
&lt;h2 id=&quot;一、Citrix-ADC-相关防火墙规则&quot;&gt;&lt;a href=&quot;#一、Citrix-ADC-相关防火墙规则&quot; class=&quot;headerlink&quot; title=&quot;一、Citrix ADC</summary>
      
    
    
    
    <category term="经验分享" scheme="https://blog.lhliang.com/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="虚拟应用和桌面" scheme="https://blog.lhliang.com/tags/%E8%99%9A%E6%8B%9F%E5%BA%94%E7%94%A8%E5%92%8C%E6%A1%8C%E9%9D%A2/"/>
    
    <category term="防火墙规则" scheme="https://blog.lhliang.com/tags/%E9%98%B2%E7%81%AB%E5%A2%99%E8%A7%84%E5%88%99/"/>
    
    <category term="应用交付" scheme="https://blog.lhliang.com/tags/%E5%BA%94%E7%94%A8%E4%BA%A4%E4%BB%98/"/>
    
  </entry>
  
  <entry>
    <title>设置 XenServer 开机自启动虚拟机</title>
    <link href="https://blog.lhliang.com/p/6645695d.html"/>
    <id>https://blog.lhliang.com/p/6645695d.html</id>
    <published>2023-06-14T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.133Z</updated>
    
    <content type="html"><![CDATA[<p>在XenServer的单机环境中经常需要开关机的维护，关机开机后虚拟机并不会像VMware vSphere一样自动启动，并且原来的XenServer版本是有图形化设置的地方的，新版本的XenServer已经在图形界面中取消了自动启动虚拟机的设置，所以只能通过命令行接口来配置。</p><h2 id="一、命令行登录XenServer"><a href="#一、命令行登录XenServer" class="headerlink" title="一、命令行登录XenServer"></a>一、命令行登录XenServer</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh root@XenServerIP</span><br></pre></td></tr></table></figure><h2 id="二、查看虚拟机和Pool的UUID"><a href="#二、查看虚拟机和Pool的UUID" class="headerlink" title="二、查看虚拟机和Pool的UUID"></a>二、查看虚拟机和Pool的UUID</h2><p>记录需要自启动虚拟机的UUID</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">xe vm-list | more</span><br><span class="line">xe pool-list</span><br></pre></td></tr></table></figure><h2 id="三、配置虚拟机开机自启动"><a href="#三、配置虚拟机开机自启动" class="headerlink" title="三、配置虚拟机开机自启动"></a>三、配置虚拟机开机自启动</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">xe pool-param-set uuid=&lt;pool_UUID&gt; other-config:auto_poweron=<span class="literal">true</span></span><br><span class="line">xe vm-param-set uuid=&lt;VM_UUID&gt; other-config:auto_poweron=<span class="literal">true</span></span><br></pre></td></tr></table></figure><h2 id="四、查看自启动参数"><a href="#四、查看自启动参数" class="headerlink" title="四、查看自启动参数"></a>四、查看自启动参数</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">xe pool-param-list uuid=&lt;VM_UUID&gt; ｜ grep auto_poweron</span><br><span class="line">xe vm-param-list uuid=&lt;VM_UUID&gt; ｜ grep auto_poweron</span><br></pre></td></tr></table></figure><p>配置完成后可以测试一下，断开XenServer服务器电源，再加电，随后会自动启动虚拟机。</p><h2 id="五、移除自启动虚拟机"><a href="#五、移除自启动虚拟机" class="headerlink" title="五、移除自启动虚拟机"></a>五、移除自启动虚拟机</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">xe vm-param-remove uuid=&lt;VM_UUID&gt; other-config:auto_poweron=<span class="literal">true</span></span><br><span class="line">xe pool-param-remove uuid=&lt;pool_UUID&gt; other-config:auto_poweron=<span class="literal">true</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;在XenServer的单机环境中经常需要开关机的维护，关机开机后虚拟机并不会像VMware vSphere一样自动启动，并且原来的XenServer版本是有图形化设置的地方的，新版本的XenServer已经在图形界面中取消了自动启动虚拟机的设置，所以只能通过命令行接口来配置</summary>
      
    
    
    
    <category term="经验分享" scheme="https://blog.lhliang.com/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="XenServer" scheme="https://blog.lhliang.com/tags/XenServer/"/>
    
    <category term="虚拟应用和桌面" scheme="https://blog.lhliang.com/tags/%E8%99%9A%E6%8B%9F%E5%BA%94%E7%94%A8%E5%92%8C%E6%A1%8C%E9%9D%A2/"/>
    
  </entry>
  
  <entry>
    <title>MacOS 支持的文件系统以及优缺点对比</title>
    <link href="https://blog.lhliang.com/p/3505e186.html"/>
    <id>https://blog.lhliang.com/p/3505e186.html</id>
    <published>2023-05-23T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.131Z</updated>
    
    <content type="html"><![CDATA[<p>macOS 支持多种文件系统，以下是其中一些常见的文件系统及其优缺点和区别：</p><h2 id="一、HFS-（Mac-OS-扩展格式）"><a href="#一、HFS-（Mac-OS-扩展格式）" class="headerlink" title="一、HFS+（Mac OS 扩展格式）"></a>一、HFS+（Mac OS 扩展格式）</h2><ul><li>优点：良好的兼容性，适用于旧版本的 macOS；支持文件加密和元数据日志；</li><li>缺点：不适用于大容量存储；不支持磁盘分区大小超过 2 TB；不支持文件和文件名的 Unicode 标准。</li></ul><h2 id="二、APFS（Apple-文件系统）"><a href="#二、APFS（Apple-文件系统）" class="headerlink" title="二、APFS（Apple 文件系统）"></a>二、APFS（Apple 文件系统）</h2><ul><li>优点：支持快照、副本和克隆功能，提供更好的性能和更高的可靠性；支持文件和文件名的 Unicode 标准；更好地适应固态硬盘（SSD）；</li><li>缺点：不支持旧版本的 macOS；在某些情况下可能与旧版软件不兼容。</li></ul><h2 id="三、ExFAT"><a href="#三、ExFAT" class="headerlink" title="三、ExFAT"></a>三、ExFAT</h2><ul><li>优点：跨平台兼容性强，可在 Windows、macOS 和 Linux 上读写；无文件大小限制；支持闪存存储设备；</li><li>缺点：不支持文件和文件名的 Unicode 标准；不支持文件加密和元数据日志；不适用于系统和应用程序安装。</li></ul><h2 id="四、NTFS"><a href="#四、NTFS" class="headerlink" title="四、NTFS"></a>四、NTFS</h2><ul><li>优点：良好的兼容性，适用于 Windows 系统；支持文件加密和访问控制；</li><li>缺点：只能在 macOS 上进行读取，需要额外的软件才能进行写入操作；不适用于系统和应用程序安装。</li></ul><p>这些文件系统具有不同的特点和适用范围，选择文件系统取决于你的需求和预期的使用环境。对于普通用户而言，APFS 是 macOS 的默认文件系统，提供了最佳的性能和功能支持。如果需要与 Windows 或其他操作系统交换数据，ExFAT 是一个不错的选择。若要与 Windows 系统进行更深入的交互，可能需要考虑使用 NTFS 文件系统。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;macOS 支持多种文件系统，以下是其中一些常见的文件系统及其优缺点和区别：&lt;/p&gt;
&lt;h2 id=&quot;一、HFS-（Mac-OS-扩展格式）&quot;&gt;&lt;a href=&quot;#一、HFS-（Mac-OS-扩展格式）&quot; class=&quot;headerlink&quot; title=&quot;一、HFS+（M</summary>
      
    
    
    
    <category term="科普文章" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%99%AE%E6%96%87%E7%AB%A0/"/>
    
    
    <category term="MacOS" scheme="https://blog.lhliang.com/tags/MacOS/"/>
    
    <category term="文件系统" scheme="https://blog.lhliang.com/tags/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/"/>
    
  </entry>
  
  <entry>
    <title>Linux 常见的文件系统以及优缺点对比</title>
    <link href="https://blog.lhliang.com/p/98f4319d.html"/>
    <id>https://blog.lhliang.com/p/98f4319d.html</id>
    <published>2023-05-23T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.130Z</updated>
    
    <content type="html"><![CDATA[<p>Linux 支持多种文件系统，以下是一些常见的 Linux 文件系统及其优缺点和区别：</p><h2 id="一、ext4（第四扩展文件系统）"><a href="#一、ext4（第四扩展文件系统）" class="headerlink" title="一、ext4（第四扩展文件系统）"></a>一、ext4（第四扩展文件系统）</h2><ul><li>优点：广泛使用的文件系统，稳定性高；支持大容量存储和大文件；快速索引和检索；支持日志功能，能够快速恢复文件系统状态；</li><li>缺点：不支持文件和文件名的 Unicode 标准；不适用于移动设备。</li></ul><h2 id="二、XFS（XFS-文件系统）"><a href="#二、XFS（XFS-文件系统）" class="headerlink" title="二、XFS（XFS 文件系统）"></a>二、XFS（XFS 文件系统）</h2><ul><li>优点：高性能文件系统，适用于大容量存储；支持快速索引和检索；可扩展性强；支持快照和日志功能；</li><li>缺点：不支持文件和文件名的 Unicode 标准；不适用于小容量存储设备。</li></ul><h2 id="三、btrfs（Btrfs-文件系统）"><a href="#三、btrfs（Btrfs-文件系统）" class="headerlink" title="三、btrfs（Btrfs 文件系统）"></a>三、btrfs（Btrfs 文件系统）</h2><ul><li>优点：先进的文件系统，支持快照、数据压缩和校验等功能；可扩展性强；支持在线文件系统扩容和修复；</li><li>缺点：仍处于实验性阶段，可能不如 ext4 或 XFS 稳定；某些功能可能不完全支持或存在问题。</li></ul><h2 id="四、F2FS（闪存友好文件系统）"><a href="#四、F2FS（闪存友好文件系统）" class="headerlink" title="四、F2FS（闪存友好文件系统）"></a>四、F2FS（闪存友好文件系统）</h2><ul><li>优点：专为闪存存储设备设计，支持快速读写；减少写入操作对闪存的磨损；支持 TRIM 和压缩等优化功能；</li><li>缺点：不适用于传统磁盘驱动器；不支持大容量存储；兼容性较差。</li></ul><h2 id="五、ZFS（Zettabyte-文件系统）"><a href="#五、ZFS（Zettabyte-文件系统）" class="headerlink" title="五、ZFS（Zettabyte 文件系统）"></a>五、ZFS（Zettabyte 文件系统）</h2><ul><li>优点：先进的文件系统，支持快照、数据校验和软件 RAID 等功能；可靠性高；支持在线存储池扩容和修复；</li><li>缺点：需要额外的内存和处理能力；在某些 Linux 发行版中的集成和支持可能有限。</li></ul><p>这些文件系统具有不同的特点和用途，选择文件系统取决于你的需求和预期的使用环境。对于大多数常规情况，ext4 是最常见和可靠的选择。如果需要处理大容量存储和高性能需求，XFS 或 btrfs 可能是更好的选择。F2FS 适用于闪存设备，而 ZFS 则适用于对数据完整性和可靠性要求较高的场景。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;Linux 支持多种文件系统，以下是一些常见的 Linux 文件系统及其优缺点和区别：&lt;/p&gt;
&lt;h2 id=&quot;一、ext4（第四扩展文件系统）&quot;&gt;&lt;a href=&quot;#一、ext4（第四扩展文件系统）&quot; class=&quot;headerlink&quot; title=&quot;一、ext4（第四</summary>
      
    
    
    
    <category term="科普文章" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%99%AE%E6%96%87%E7%AB%A0/"/>
    
    
    <category term="文件系统" scheme="https://blog.lhliang.com/tags/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="Linux" scheme="https://blog.lhliang.com/tags/Linux/"/>
    
  </entry>
  
  <entry>
    <title>Windows 操作系统中的文件系统区别和优缺点</title>
    <link href="https://blog.lhliang.com/p/651ab16f.html"/>
    <id>https://blog.lhliang.com/p/651ab16f.html</id>
    <published>2023-05-22T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.136Z</updated>
    
    <content type="html"><![CDATA[<p>在Windows操作系统中，常见的文件系统包括FAT、FAT16、FAT32、exFAT、NTFS和ReFS。它们之间具有以下区别和优缺点：</p><h2 id="一、FAT（文件分配表）"><a href="#一、FAT（文件分配表）" class="headerlink" title="一、FAT（文件分配表）"></a>一、FAT（文件分配表）</h2><ul><li>优点：FAT是最早的Windows文件系统，具有广泛的兼容性，可以在不同的操作系统和设备上读取和写入数据。它的简单结构使其在某些特定场景下具有一定优势。</li><li>缺点：FAT文件系统具有较大的文件和分区大小限制，不支持文件权限和加密，不具备强大的容错和恢复功能。</li></ul><h2 id="二、FAT16"><a href="#二、FAT16" class="headerlink" title="二、FAT16"></a>二、FAT16</h2><ul><li>优点：FAT16相对于FAT具有更大的文件和分区大小限制，支持更大的存储容量。</li><li>缺点：FAT16仍然具有较小的文件和分区大小限制，不支持文件权限和加密，不适用于大容量存储。</li></ul><h2 id="三、FAT32"><a href="#三、FAT32" class="headerlink" title="三、FAT32"></a>三、FAT32</h2><ul><li>优点：FAT32是FAT文件系统的升级版，支持更大的文件和分区大小，适用于较大容量的存储设备。</li><li>缺点：FAT32仍然有一定的文件和分区大小限制，不支持文件权限和加密，对于大容量文件存储不是最佳选择。</li></ul><h2 id="四、exFAT"><a href="#四、exFAT" class="headerlink" title="四、exFAT"></a>四、exFAT</h2><ul><li>优点：exFAT是针对闪存设备设计的文件系统，支持更大的文件和分区大小，具有更好的兼容性，可以在Windows和Mac等操作系统上使用。</li><li>缺点：exFAT相对于FAT32在功能和可靠性方面没有明显的优势，仍然不支持文件权限和加密。</li></ul><h2 id="五、NTFS（新技术文件系统）"><a href="#五、NTFS（新技术文件系统）" class="headerlink" title="五、NTFS（新技术文件系统）"></a>五、NTFS（新技术文件系统）</h2><ul><li>优点：NTFS是Windows默认的文件系统，具有较大的文件和分区大小限制，支持文件权限、加密、压缩和访问控制等高级功能。它具有较好的容错性和恢复能力。</li><li>缺点：NTFS相对于FAT文件系统在一些老旧设备和非Windows系统上的兼容性较差。</li></ul><h2 id="六、ReFS（可扩展文件系统）"><a href="#六、ReFS（可扩展文件系统）" class="headerlink" title="六、ReFS（可扩展文件系统）"></a>六、ReFS（可扩展文件系统）</h2><ul><li>优点：ReFS是Windows Server 2012引入的新文件系统，具有高度的可靠性、完整性保护和自动修复功能。它支持大容量存储和高级数据管理。</li><li>缺点：ReFS主要面向企业级环境，不是Windows桌面操作系统的默认文件系统，对于普通用户来说使用场景有限。</li></ul><blockquote><p>在选择文件系统时，需要考虑存储设备的容量、文件大小需求、跨平台兼容性、数据安全性、高级功能需求等因素，并选择适合的文件系统。<br>一般而言，NTFS是Windows桌面系统上较常用的文件系统，而exFAT适用于可移动存储设备，如闪存盘和外部硬盘。</p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;在Windows操作系统中，常见的文件系统包括FAT、FAT16、FAT32、exFAT、NTFS和ReFS。它们之间具有以下区别和优缺点：&lt;/p&gt;
&lt;h2 id=&quot;一、FAT（文件分配表）&quot;&gt;&lt;a href=&quot;#一、FAT（文件分配表）&quot; class=&quot;headerlin</summary>
      
    
    
    
    <category term="科普文章" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%99%AE%E6%96%87%E7%AB%A0/"/>
    
    
    <category term="文件系统" scheme="https://blog.lhliang.com/tags/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="Windows" scheme="https://blog.lhliang.com/tags/Windows/"/>
    
  </entry>
  
  <entry>
    <title>Btrfs 和 ZFS 的区别以及优缺点</title>
    <link href="https://blog.lhliang.com/p/2721261f.html"/>
    <id>https://blog.lhliang.com/p/2721261f.html</id>
    <published>2023-05-22T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.129Z</updated>
    
    <content type="html"><![CDATA[<p>Btrfs和ZFS的对比介绍</p><h2 id="一、Btrfs（B-tree文件系统）"><a href="#一、Btrfs（B-tree文件系统）" class="headerlink" title="一、Btrfs（B-tree文件系统）"></a>一、Btrfs（B-tree文件系统）</h2><p>优点：</p><ol><li>灵活性：Btrfs设计用于适应各种用途，包括单个计算机和大型存储系统。它支持快照、写时复制、在线扩展等功能。</li><li>自愈性：Btrfs具有自动修复功能，可以检测和修复数据损坏或文件系统错误。</li><li>管理工具：Btrfs附带了一组管理工具，使用户可以方便地管理文件系统、快照和子卷。</li><li>压缩和去重：Btrfs支持实时数据压缩和去重，可以节省存储空间。</li></ol><p>缺点：</p><ol><li>稳定性：尽管Btrfs在很多方面已经非常稳定，但仍然被认为是相对较新的文件系统，可能会有一些稳定性方面的问题。</li><li>功能完整性：某些高级功能，如RAID-Z、数据加密等，可能在Btrfs中缺乏或不完善。</li></ol><h2 id="二、ZFS（Zettabyte文件系统）"><a href="#二、ZFS（Zettabyte文件系统）" class="headerlink" title="二、ZFS（Zettabyte文件系统）"></a>二、ZFS（Zettabyte文件系统）</h2><p>优点：</p><ol><li>数据完整性：ZFS以数据完整性为重点，采用了强大的校验和机制，以检测和修复数据损坏。</li><li>快照和克隆：ZFS具有出色的快照和克隆功能，可以轻松创建、回滚和管理文件系统的快照。</li><li>可扩展性：ZFS支持非常大的存储容量，可以轻松地添加新的存储设备并扩展存储池的容量。</li><li>高级功能：ZFS提供了许多高级功能，如RAID-Z数据保护、数据压缩、数据加密等。</li></ol><p>缺点：</p><ol><li>内存要求：ZFS对系统内存要求较高，特别是在处理大容量存储时，需要足够的内存才能实现最佳性能。</li><li>配置复杂性：ZFS的配置和管理相对复杂，对于不熟悉的用户来说可能需要一些学习和配置时间。</li><li>兼容性：尽管ZFS在大多数主流操作系统上都有支持，但在某些非主流操作系统或特定硬件平台上可能缺乏支持。</li></ol><p>总体而言，Btrfs注重灵活性和易用性，适用于各种规模的存储环境。ZFS则更加注重数据完整性和高级功能，适合需要大容量、高可靠性和高性能的存储环境。选择哪种文件系统应基于具体的需求、操作系统支持以及用户对配置和管理的熟悉程度。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;Btrfs和ZFS的对比介绍&lt;/p&gt;
&lt;h2 id=&quot;一、Btrfs（B-tree文件系统）&quot;&gt;&lt;a href=&quot;#一、Btrfs（B-tree文件系统）&quot; class=&quot;headerlink&quot; title=&quot;一、Btrfs（B-tree文件系统）&quot;&gt;&lt;/a&gt;一、Btrfs</summary>
      
    
    
    
    <category term="科普文章" scheme="https://blog.lhliang.com/categories/%E7%A7%91%E6%99%AE%E6%96%87%E7%AB%A0/"/>
    
    
    <category term="文件系统" scheme="https://blog.lhliang.com/tags/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/"/>
    
  </entry>
  
  <entry>
    <title>vSphere with Tanzu 概念以及常用命令</title>
    <link href="https://blog.lhliang.com/p/969a7478.html"/>
    <id>https://blog.lhliang.com/p/969a7478.html</id>
    <published>2023-05-14T00:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.137Z</updated>
    
    <content type="html"><![CDATA[<p>通过使用 vSphere with Tanzu，可以将 vSphere 集群转换为在专用资源池中运行 Kubernetes 工作负载的平台。在 vSphere 集群上启用 vSphere with Tanzu 后，会在 Hypervisor 层中直接创建一个 Kubernetes 控制平面。之后，可以通过部署 vSphere Pod 运行 Kubernetes 容器，也可以通过 VMware Tanzu™ Kubernetes Grid™ 服务创建上游 Kubernetes 集群，并在这些集群中运行应用程序。</p><h2 id="一、什么是-vSphere-with-Tanzu？"><a href="#一、什么是-vSphere-with-Tanzu？" class="headerlink" title="一、什么是 vSphere with Tanzu？"></a>一、什么是 vSphere with Tanzu？</h2><p>使用 vSphere with Tanzu 将 vSphere 转换为在 Hypervisor 层上以本机方式运行 Kubernetes 工作负载的平台。在 vSphere 集群上启用 vSphere with Tanzu 后，可直接在 ESXi 主机上运行 Kubernetes 工作负载，并可在专用资源池中创建上游 Kubernetes 集群。</p><h2 id="二、什么是-vSphere-Pod？"><a href="#二、什么是-vSphere-Pod？" class="headerlink" title="二、什么是 vSphere Pod？"></a>二、什么是 vSphere Pod？</h2><p>vSphere with Tanzu 引入了一个名为 vSphere Pod 的新构造，它等效于 Kubernetes Pod。vSphere Pod 是一个占用空间较小的虚拟机，可运行一个或多个 Linux 容器。每个 vSphere Pod 根据其容纳的工作负载精确地调整大小，并拥有与该工作负载对应的确切资源预留。它会分配待运行工作负载所需的确切存储、内存和 CPU 资源量。仅配置了 NSX-T Data Center 作为网络连接堆栈的 主管集群 支持 vSphere Pod。</p><h2 id="三、什么是-Tanzu-Kubernetes-集群？"><a href="#三、什么是-Tanzu-Kubernetes-集群？" class="headerlink" title="三、什么是 Tanzu Kubernetes 集群？"></a>三、什么是 Tanzu Kubernetes 集群？</h2><p>Tanzu Kubernetes 集群是由 VMware 构建、签名和支持的开源 Kubernetes 容器编排平台的完整分发版。可以通过使用 Tanzu Kubernetes Grid 服务 在 主管集群 上置备和运行 Tanzu Kubernetes 集群。主管集群 是启用了 vSphere with Tanzu 的 vSphere 集群。</p><h2 id="四、何时使用-vSphere-Pod-和-Tanzu-Kubernetes-集群"><a href="#四、何时使用-vSphere-Pod-和-Tanzu-Kubernetes-集群" class="headerlink" title="四、何时使用 vSphere Pod 和 Tanzu Kubernetes 集群"></a>四、何时使用 vSphere Pod 和 Tanzu Kubernetes 集群</h2><p>使用 vSphere Pod 还是 Tanzu Kubernetes Grid 服务置备的 Tanzu Kubernetes 集群，取决于与在主管集群上部署和管理 Kubernetes 工作负载相关的目标。</p><h2 id="五、Tanzu-Kubernetes-集群操作命令"><a href="#五、Tanzu-Kubernetes-集群操作命令" class="headerlink" title="五、Tanzu Kubernetes 集群操作命令"></a>五、Tanzu Kubernetes 集群操作命令</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 连接到 vSphere with Tanzu 集群</span></span><br><span class="line">kubectl vsphere login --server=10.200.0.2 --vsphere-username administrator@vsphere.local --insecure-skip-tls-verify</span><br><span class="line"></span><br><span class="line"><span class="comment"># 验证目标是否为预期环境</span></span><br><span class="line">kubectl config get-contexts</span><br><span class="line"></span><br><span class="line"><span class="comment"># 如果目标不是预期环境，切换到目标命名空间</span></span><br><span class="line">kubectl config use-context tkgs-ns</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出可用的虚拟机类绑定</span></span><br><span class="line">kubectl get virtualmachineclassbindings</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出可用的虚拟机镜像</span></span><br><span class="line">kubectl get virtualmachineimage</span><br><span class="line">kubectl get vmimage</span><br><span class="line">kubectl describe virtualmachineimage</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查询存储类</span></span><br><span class="line">kubectl get storageclasses</span><br><span class="line">kubectl describe storageclasses</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出当前命名空间中的集群</span></span><br><span class="line">kubectl get tanzukubernetescluster</span><br><span class="line">kubectl get tkc</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出可用的 Tanzu Kubernetes 版本</span></span><br><span class="line">kubectl get tanzukubernetesreleases</span><br><span class="line">kubectl get tkr</span><br><span class="line"></span><br><span class="line"><span class="comment"># 描述指定的集群，显示表述的状况、状态和事件</span></span><br><span class="line">kubectl describe tanzukubernetescluster CLUSTER-NAME</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出支持当前命名空间中的集群的集群 API 资源，包括集群 API 项目中的资源以及 Tanzu Kubernetes Grid 服务所用集群 API 提供程序中的资源</span></span><br><span class="line">kubectl get cluster-api</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看集群 API 集群资源</span></span><br><span class="line">kubectl describe clusters.cluster.x-k8s.io CLUSTER-NAME</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出支持当前命名空间中的集群节点的虚拟机服务资源</span></span><br><span class="line">kubectl get virtualmachineservice</span><br><span class="line">kubectl get vmservice</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出当前命名空间中的负载均衡器资源，包括用于集群的负载均衡器资源</span></span><br><span class="line">kubectl get loadbalancer</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出当前命名空间中的持久卷声明资源，包括用于集群的资源</span></span><br><span class="line">kubectl get persistentvolumeclaim</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出当前命名空间中的 CNS 节点虚拟机附加资源</span></span><br><span class="line">kubectl get cnsnodevmattachment</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出当前命名空间中的配置映射，包括用于创建集群节点的映射</span></span><br><span class="line">kubectl get configmap</span><br><span class="line"></span><br><span class="line"><span class="comment"># 列出当前命名空间中的密钥，包括用于创建和管理集群节点的密钥</span></span><br><span class="line">kubectl get secret</span><br></pre></td></tr></table></figure><h2 id="六、Tanzu-Kubernetes-集群网络连接命令"><a href="#六、Tanzu-Kubernetes-集群网络连接命令" class="headerlink" title="六、Tanzu Kubernetes 集群网络连接命令"></a>六、Tanzu Kubernetes 集群网络连接命令</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 查看默认 CNI，即 antrea（除非已更改）除非在集群 YAML 中明确替代，否则使用默认 CNI 创建集群。</span></span><br><span class="line">kubectl get tkgserviceconfigurations</span><br><span class="line">NAME                        DEFAULT CNI</span><br><span class="line">tkg-service-configuration   antrea</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看集群节点的虚拟网络。用于验证是否已分配源网络地址转换 (SNAT) IP 地址。</span></span><br><span class="line">kubectl get virtualnetwork</span><br><span class="line">NAME                   SNAT             READY   AGE</span><br><span class="line">tkgs-cluster-12-vnet   10.191.152.133   True    4h3m</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看集群节点的虚拟网络接口。用于验证每个集群节点的虚拟机是否已分配 IP 地址。</span></span><br><span class="line">kubectl get virtualmachines -o wide</span><br><span class="line">NAME                               POWERSTATE   CLASS               IMAGE                                     PRIMARY-IP    AGE</span><br><span class="line">tkgs-cluster-12-control-plane-...  poweredOn    guaranteed-medium   ob-...-v1.21.6---vmware.1-tkg.1.b3d708a   10.244.0.66   4h6m</span><br><span class="line">tkgs-cluster-12-worker-...         poweredOn    guaranteed-medium   ob-...-v1.21.6---vmware.1-tkg.1.b3d708a   10.244.0.68   4h3m</span><br><span class="line">tkgs-cluster-12-worker-...         poweredOn    guaranteed-medium   ob-...-v1.21.6---vmware.1-tkg.1.b3d708a   10.244.0.67   4h3m</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看每个集群节点的虚拟机服务。用于验证状态是否已更新，是否包括负载均衡器虚拟 IP (VIP) 地址。</span></span><br><span class="line">kubectl get virtualmachineservices</span><br><span class="line">NAME                                    TYPE           AGE</span><br><span class="line">tkgs-cluster-12-control-plane-service   LoadBalancer   3h53m</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看为集群 API 访问创建的 Kubernetes 服务负载均衡器。用于验证是否已分配外部 IP。使用 curl 验证能否使用负载均衡器服务的外部 IP 地址和端口来访问 API。</span></span><br><span class="line">kubectl get services -n NAMESPACE</span><br><span class="line">curl -k https://EXTERNAL-IP:PORT/healthz</span><br><span class="line"></span><br><span class="line"><span class="comment"># 集群的控制平面节点（端点）。用于验证是否每个端点均已创建并包含在端点池中。</span></span><br><span class="line">kubectl get endpoints</span><br><span class="line">NAME                                    ENDPOINTS          AGE</span><br><span class="line">tkgs-cluster-12-control-plane-service   10.244.0.66:6443   3h44m</span><br></pre></td></tr></table></figure><h2 id="七、使用-TKGS-v1alpha2-API-置备-TKGS"><a href="#七、使用-TKGS-v1alpha2-API-置备-TKGS" class="headerlink" title="七、使用 TKGS v1alpha2 API 置备 TKGS"></a>七、使用 TKGS v1alpha2 API 置备 TKGS</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">apiVersion:</span> <span class="string">run.tanzu.vmware.com/v1alpha2</span></span><br><span class="line"><span class="attr">kind:</span> <span class="string">TanzuKubernetesCluster</span></span><br><span class="line"><span class="attr">metadata:</span></span><br><span class="line">  <span class="attr">name:</span> <span class="string">tkg-cluster-1</span></span><br><span class="line">  <span class="attr">namespace:</span> <span class="string">tanzu-kubernetes-grid</span></span><br><span class="line"><span class="attr">spec:</span></span><br><span class="line">  <span class="attr">topology:</span></span><br><span class="line">    <span class="attr">controlPlane:</span></span><br><span class="line">      <span class="attr">replicas:</span> <span class="number">3</span></span><br><span class="line">      <span class="attr">vmClass:</span> <span class="string">best-effort-large</span></span><br><span class="line">      <span class="attr">storageClass:</span> <span class="string">goldsp</span></span><br><span class="line">      <span class="attr">tkr:</span>  </span><br><span class="line">        <span class="attr">reference:</span></span><br><span class="line">          <span class="attr">name:</span> <span class="string">v1.22.9---vmware.1-tkg.1.cc71bc8</span></span><br><span class="line">    <span class="attr">nodePools:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">worker-nodepool-a1</span></span><br><span class="line">      <span class="attr">replicas:</span> <span class="number">3</span></span><br><span class="line">      <span class="attr">vmClass:</span> <span class="string">best-effort-large</span></span><br><span class="line">      <span class="attr">storageClass:</span> <span class="string">goldsp</span></span><br><span class="line">      <span class="attr">tkr:</span>  </span><br><span class="line">        <span class="attr">reference:</span></span><br><span class="line">          <span class="attr">name:</span> <span class="string">v1.22.9---vmware.1-tkg.1.cc71bc8</span></span><br><span class="line">  <span class="attr">settings:</span></span><br><span class="line">    <span class="attr">storage:</span></span><br><span class="line">      <span class="attr">defaultClass:</span> <span class="string">goldsp</span></span><br><span class="line">    <span class="attr">network:</span></span><br><span class="line">      <span class="attr">cni:</span></span><br><span class="line">        <span class="attr">name:</span> <span class="string">antrea</span></span><br><span class="line">      <span class="attr">services:</span></span><br><span class="line">        <span class="attr">cidrBlocks:</span> [<span class="string">&quot;10.95.0.0/23&quot;</span>]</span><br><span class="line">      <span class="attr">pods:</span></span><br><span class="line">        <span class="attr">cidrBlocks:</span> [<span class="string">&quot;10.243.0.0/20&quot;</span>]</span><br><span class="line">      <span class="attr">serviceDomain:</span> <span class="string">tkg.io</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;通过使用 vSphere with Tanzu，可以将 vSphere 集群转换为在专用资源池中运行 Kubernetes 工作负载的平台。在 vSphere 集群上启用 vSphere with Tanzu 后，会在 Hypervisor 层中直接创建一个 Kuberne</summary>
      
    
    
    
    <category term="容器技术" scheme="https://blog.lhliang.com/categories/%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF/"/>
    
    
    <category term="VMware" scheme="https://blog.lhliang.com/tags/VMware/"/>
    
    <category term="Tanzu" scheme="https://blog.lhliang.com/tags/Tanzu/"/>
    
    <category term="TKGS" scheme="https://blog.lhliang.com/tags/TKGS/"/>
    
  </entry>
  
  <entry>
    <title>Hexo 博客随机友链，加速加载</title>
    <link href="https://blog.lhliang.com/p/9f6cbcb.html"/>
    <id>https://blog.lhliang.com/p/9f6cbcb.html</id>
    <published>2023-05-12T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.131Z</updated>
    
    <content type="html"><![CDATA[<p>最近使用Butterfly主题的博友都在对博客随机友链功能做优化。</p><h2 id="一、随机友链优化案例"><a href="#一、随机友链优化案例" class="headerlink" title="一、随机友链优化案例"></a>一、随机友链优化案例</h2><p><a href="https://blog.zhheo.com/">张洪Heo</a> 使用的是js读取本地json文件，通过编辑json文件即可实现增删改友链。</p><p>部分代码如下，详细可以看作者源码</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">addFriendLinksInFooter</span>: <span class="keyword">function</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="title function_">fetch</span>(<span class="string">&quot;/zhheo/friendlink.json&quot;</span>).<span class="title function_">then</span>((<span class="function"><span class="params">e</span>=&gt;</span>e.<span class="title function_">json</span>())).<span class="title function_">then</span>((<span class="function"><span class="params">e</span>=&gt;</span>&#123;</span><br><span class="line">        <span class="keyword">var</span> t = []</span><br><span class="line">          , o = -<span class="number">1</span>;</span><br><span class="line">        <span class="keyword">for</span> (<span class="keyword">const</span> n <span class="keyword">of</span> e) &#123;</span><br><span class="line">            <span class="keyword">const</span> e = n.<span class="property">link_list</span>;</span><br><span class="line">            <span class="keyword">for</span> (<span class="keyword">let</span> n = <span class="number">0</span>; n &lt; <span class="title class_">Math</span>.<span class="title function_">min</span>(e.<span class="property">length</span>, <span class="number">1</span>); n++) &#123;</span><br><span class="line">                <span class="keyword">let</span> n = <span class="title class_">Math</span>.<span class="title function_">floor</span>(<span class="title class_">Math</span>.<span class="title function_">random</span>() * e.<span class="property">length</span>);</span><br><span class="line">                <span class="keyword">for</span> (; n === o &amp;&amp; e.<span class="property">length</span> &gt; <span class="number">1</span>; )</span><br><span class="line">                    n = <span class="title class_">Math</span>.<span class="title function_">floor</span>(<span class="title class_">Math</span>.<span class="title function_">random</span>() * e.<span class="property">length</span>);</span><br><span class="line">                o = n,</span><br><span class="line">                t.<span class="title function_">push</span>(&#123;</span><br><span class="line">                    <span class="attr">name</span>: e[n].<span class="property">name</span>,</span><br><span class="line">                    <span class="attr">link</span>: e[n].<span class="property">link</span></span><br><span class="line">                &#125;),</span><br><span class="line">                e.<span class="title function_">splice</span>(n, <span class="number">1</span>)</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        t.<span class="title function_">pop</span>();</span><br><span class="line">        <span class="keyword">var</span> n = <span class="string">&quot;&quot;</span>;</span><br><span class="line">        <span class="keyword">for</span> (<span class="keyword">let</span> e = <span class="number">0</span>; e &lt; t.<span class="property">length</span>; ++e) &#123;</span><br><span class="line">            <span class="keyword">var</span> a = t[e];</span><br><span class="line">            n += <span class="string">`&lt;a class=&#x27;footer-item&#x27; href=&#x27;<span class="subst">$&#123;a.link&#125;</span>&#x27;  target=&quot;_blank&quot; rel=&quot;noopener nofollow&quot;&gt;<span class="subst">$&#123;a.name&#125;</span>&lt;/a&gt;`</span></span><br><span class="line">        &#125;</span><br><span class="line">        n += <span class="string">&quot;&lt;a class=&#x27;footer-item&#x27; href=&#x27;/link/&#x27;&gt;更多&lt;/a&gt;&quot;</span>,</span><br><span class="line">        <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;friend-links-in-footer&quot;</span>).<span class="property">innerHTML</span> = n</span><br><span class="line">    &#125;</span><br><span class="line">    ))</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p><a href="https://blog.jayhrn.com/posts/711b9d78.html">jayhrn</a> 使用的是Hexo过滤器，读取的博客友链页面的所有链接。</p><p>部分代码如下，详细可以看<a href="https://blog.jayhrn.com/posts/711b9d78.html">作者原文</a></p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">hexo.<span class="property">extend</span>.<span class="property">filter</span>.<span class="title function_">register</span>(<span class="string">&#x27;after_render:html&#x27;</span>, <span class="keyword">function</span> (<span class="params">data</span>) &#123;</span><br><span class="line">    <span class="keyword">const</span> flinks = []</span><br><span class="line">    hexo.<span class="property">locals</span>.<span class="title function_">get</span>(<span class="string">&#x27;data&#x27;</span>).<span class="property">link</span>.<span class="title function_">map</span>(<span class="keyword">function</span> (<span class="params">list</span>) &#123;</span><br><span class="line">        list.<span class="property">link_list</span>.<span class="title function_">map</span>(<span class="keyword">function</span> (<span class="params">flink</span>) &#123;</span><br><span class="line">            flinks.<span class="title function_">push</span>(flink)</span><br><span class="line">        &#125;)</span><br><span class="line">    &#125;)</span><br><span class="line">    data += <span class="string">`&lt;script&gt;</span></span><br><span class="line"><span class="string">        function getRandomFlink(num) &#123;</span></span><br><span class="line"><span class="string">            let AllFinlks=<span class="subst">$&#123;<span class="built_in">JSON</span>.stringify(flinks)&#125;</span></span></span><br><span class="line"><span class="string">            let randomLinks = [];</span></span><br><span class="line"><span class="string">            while (randomLinks.length &lt; num &amp;&amp; AllFinlks.length &gt; 0) &#123;</span></span><br><span class="line"><span class="string">                let index = Math.floor(Math.random() * AllFinlks.length);</span></span><br><span class="line"><span class="string">                randomLinks.push(AllFinlks.splice(index, 1)[0]);</span></span><br><span class="line"><span class="string">            &#125;</span></span><br><span class="line"><span class="string">            return randomLinks;</span></span><br><span class="line"><span class="string">        &#125;</span></span><br><span class="line"><span class="string">        &lt;/script&gt;`</span></span><br><span class="line">    <span class="keyword">return</span> data</span><br><span class="line">&#125;)</span><br></pre></td></tr></table></figure><h2 id="二、测试优化后的效果"><a href="#二、测试优化后的效果" class="headerlink" title="二、测试优化后的效果"></a>二、测试优化后的效果</h2><p>因为不想维护过多的json文件，所以使用jayhrn的逻辑做了测试，效果不错，速度快并且稳定，不依赖其他json文件。</p><p>随机友链在我的博客里面有三个功能：</p><ol><li>首页右上角点击 提示跳转 指定友链地址；</li><li>全站页脚左下角点击 随机友链 使用新窗口打开友链地址；</li><li>全站页脚随机展示 两个友链 点击后新窗口打开友链地址；</li></ol><h2 id="三、基于jayhrn的逻辑首次修改"><a href="#三、基于jayhrn的逻辑首次修改" class="headerlink" title="三、基于jayhrn的逻辑首次修改"></a>三、基于jayhrn的逻辑首次修改</h2><p>更新<code>themes/butterfly/scripts/helpers/random.js</code>文件</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 随机友链</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line">hexo.<span class="property">extend</span>.<span class="property">filter</span>.<span class="title function_">register</span>(<span class="string">&#x27;after_render:html&#x27;</span>, <span class="keyword">function</span> (<span class="params">data</span>) &#123;</span><br><span class="line">    <span class="keyword">const</span> flinks = []</span><br><span class="line">    hexo.<span class="property">locals</span>.<span class="title function_">get</span>(<span class="string">&#x27;data&#x27;</span>).<span class="property">link</span>.<span class="title function_">map</span>(<span class="keyword">function</span> (<span class="params">list</span>) &#123;</span><br><span class="line">        list.<span class="property">link_list</span>.<span class="title function_">map</span>(<span class="keyword">function</span> (<span class="params">flink</span>) &#123;</span><br><span class="line">            flinks.<span class="title function_">push</span>(flink)</span><br><span class="line">        &#125;)</span><br><span class="line">    &#125;)</span><br><span class="line">    data += <span class="string">`&lt;script&gt;</span></span><br><span class="line"><span class="string">        function toRandomFlink() &#123;</span></span><br><span class="line"><span class="string">            let flinksTo=<span class="subst">$&#123;<span class="built_in">JSON</span>.stringify(flinks)&#125;</span></span></span><br><span class="line"><span class="string">            window.open(flinksTo[Math.floor(Math.random() * flinksTo.length)].link)</span></span><br><span class="line"><span class="string">        &#125;</span></span><br><span class="line"><span class="string">        function RandomFlink() &#123;</span></span><br><span class="line"><span class="string">            let flinksRan=<span class="subst">$&#123;<span class="built_in">JSON</span>.stringify(flinks)&#125;</span></span></span><br><span class="line"><span class="string">            let e = flinksRan[Math.floor(Math.random() * flinksRan.length)]</span></span><br><span class="line"><span class="string">            return e</span></span><br><span class="line"><span class="string">        &#125;</span></span><br><span class="line"><span class="string">        function getRandomFlink(num) &#123;</span></span><br><span class="line"><span class="string">            let flinksGet=<span class="subst">$&#123;<span class="built_in">JSON</span>.stringify(flinks)&#125;</span></span></span><br><span class="line"><span class="string">            let randomLinks = [];</span></span><br><span class="line"><span class="string">            while (randomLinks.length &lt; num &amp;&amp; flinksGet.length &gt; 0) &#123;</span></span><br><span class="line"><span class="string">                let index = Math.floor(Math.random() * flinksGet.length);</span></span><br><span class="line"><span class="string">                randomLinks.push(flinksGet.splice(index, 1)[0]);</span></span><br><span class="line"><span class="string">            &#125;</span></span><br><span class="line"><span class="string">            return randomLinks;</span></span><br><span class="line"><span class="string">        &#125;</span></span><br><span class="line"><span class="string">        &lt;/script&gt;`</span></span><br><span class="line">    <span class="keyword">return</span> data</span><br><span class="line">&#125;)</span><br></pre></td></tr></table></figure><p>修改引用js的函数</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 添加随机友链提示跳转</span></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">travelling</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">let</span> fetchUrl = <span class="title class_">RandomFlink</span>()</span><br><span class="line">    <span class="keyword">if</span>(fetchUrl) &#123;</span><br><span class="line">        <span class="keyword">var</span> name = fetchUrl.<span class="property">name</span>;</span><br><span class="line">        <span class="keyword">var</span> link = fetchUrl.<span class="property">link</span>;</span><br><span class="line">        <span class="keyword">let</span> msg = <span class="string">&quot;点击前往按钮进入随机一个友链，不保证跳转网站的安全性和可用性。本次随机到的是本站友链：「&quot;</span> + name + <span class="string">&quot;」&quot;</span>;</span><br><span class="line">        <span class="variable language_">document</span>.<span class="property">styleSheets</span>[<span class="number">0</span>].<span class="title function_">addRule</span>(<span class="string">&#x27;:root&#x27;</span>, <span class="string">&#x27;--LHL-snackbar-time:&#x27;</span> + <span class="number">8000</span> + <span class="string">&#x27;ms!important&#x27;</span>);</span><br><span class="line">        <span class="title class_">Snackbar</span>.<span class="title function_">show</span>(&#123;</span><br><span class="line">            <span class="attr">text</span>: msg,</span><br><span class="line">            <span class="attr">duration</span>: <span class="number">8000</span>,</span><br><span class="line">            <span class="attr">pos</span>: <span class="string">&#x27;top-center&#x27;</span>,</span><br><span class="line">            <span class="attr">actionText</span>: <span class="string">&#x27;前往&#x27;</span>,</span><br><span class="line">            <span class="attr">onActionClick</span>: <span class="keyword">function</span> (<span class="params">element</span>) &#123;</span><br><span class="line">                $(element).<span class="title function_">css</span>(<span class="string">&#x27;opacity&#x27;</span>, <span class="number">0</span>);</span><br><span class="line">                <span class="variable language_">window</span>.<span class="title function_">open</span>(link, <span class="string">&#x27;_blank&#x27;</span>);</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 添加底部友链</span></span><br><span class="line"><span class="attr">addFriendLinksInFooter</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">let</span> randomFriendLinks=<span class="title function_">getRandomFlink</span>(<span class="number">2</span>)</span><br><span class="line">    <span class="keyword">let</span> htmlText = <span class="string">&#x27;&#x27;</span>;</span><br><span class="line">    <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; randomFriendLinks.<span class="property">length</span>; ++i) &#123;</span><br><span class="line">        <span class="keyword">let</span> item = randomFriendLinks[i]</span><br><span class="line">        htmlText += <span class="string">`&lt;a class=&#x27;footer-item&#x27; href=&#x27;<span class="subst">$&#123;item.link&#125;</span>&#x27; target=&quot;_blank&quot; rel=&quot;noopener nofollow&quot;&gt;<span class="subst">$&#123;item.name&#125;</span>&lt;/a&gt;`</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    htmlText += <span class="string">`&lt;a class=&#x27;footer-item&#x27; href=&#x27;/link&#x27;&gt;更多&lt;/a&gt;`</span></span><br><span class="line">    <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;friend-links-in-footer&quot;</span>).<span class="property">innerHTML</span> = htmlText;</span><br><span class="line">&#125;,</span><br></pre></td></tr></table></figure><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">// 添加随机友链直接跳转</span><br><span class="line"><span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;footer-item&quot;</span> <span class="attr">onclick</span>=<span class="string">&quot;toRandomFlink()&quot;</span> <span class="attr">data-pjax-state</span>=<span class="string">&quot;&quot;</span>&gt;</span>随机友链<span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br></pre></td></tr></table></figure><p>测试结果还是比较满意，但是有个小问题，就是前端页面会生成三组相同的数组，友链越多占用的前端响应时间越多，所以最大化前端性能，第二次修改代码。</p><h2 id="二次修改"><a href="#二次修改" class="headerlink" title="二次修改"></a>二次修改</h2><p>修改为使前端将友链生成一组数组，然后随机友链的三个功能使用时分别浅拷贝即可。</p><p>更新<code>themes/butterfly/scripts/helpers/random.js</code>文件</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 随机友链</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line">hexo.<span class="property">extend</span>.<span class="property">filter</span>.<span class="title function_">register</span>(<span class="string">&#x27;after_render:html&#x27;</span>, <span class="keyword">function</span> (<span class="params">data</span>) &#123;</span><br><span class="line">    <span class="keyword">const</span> flinks = []</span><br><span class="line">    hexo.<span class="property">locals</span>.<span class="title function_">get</span>(<span class="string">&#x27;data&#x27;</span>).<span class="property">link</span>.<span class="title function_">map</span>(<span class="keyword">function</span> (<span class="params">list</span>) &#123;</span><br><span class="line">        list.<span class="property">link_list</span>.<span class="title function_">map</span>(<span class="keyword">function</span> (<span class="params">flink</span>) &#123;</span><br><span class="line">            flinks.<span class="title function_">push</span>(flink)</span><br><span class="line">        &#125;)</span><br><span class="line">    &#125;)</span><br><span class="line">    data += <span class="string">`&lt;script&gt;let flinksAll=<span class="subst">$&#123;<span class="built_in">JSON</span>.stringify(flinks)&#125;</span>;&lt;/script&gt;`</span></span><br><span class="line">    <span class="keyword">return</span> data</span><br><span class="line">&#125;)</span><br></pre></td></tr></table></figure><p>修改引用js的函数</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 添加随机友链提示跳转</span></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">travelling</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">let</span> flinksRandom = <span class="title class_">Array</span>.<span class="title function_">from</span>(flinksAll);</span><br><span class="line">    <span class="keyword">let</span> fetchUrl = flinksRandom[<span class="title class_">Math</span>.<span class="title function_">floor</span>(<span class="title class_">Math</span>.<span class="title function_">random</span>() * flinksRandom.<span class="property">length</span>)]</span><br><span class="line">    <span class="keyword">if</span>(fetchUrl) &#123;</span><br><span class="line">        <span class="keyword">var</span> name = fetchUrl.<span class="property">name</span>;</span><br><span class="line">        <span class="keyword">var</span> link = fetchUrl.<span class="property">link</span>;</span><br><span class="line">        <span class="keyword">let</span> msg = <span class="string">&quot;点击前往按钮进入随机一个友链，不保证跳转网站的安全性和可用性。本次随机到的是本站友链：「&quot;</span> + name + <span class="string">&quot;」&quot;</span>;</span><br><span class="line">        <span class="variable language_">document</span>.<span class="property">styleSheets</span>[<span class="number">0</span>].<span class="title function_">addRule</span>(<span class="string">&#x27;:root&#x27;</span>, <span class="string">&#x27;--LHL-snackbar-time:&#x27;</span> + <span class="number">8000</span> + <span class="string">&#x27;ms!important&#x27;</span>);</span><br><span class="line">        <span class="title class_">Snackbar</span>.<span class="title function_">show</span>(&#123;</span><br><span class="line">            <span class="attr">text</span>: msg,</span><br><span class="line">            <span class="attr">duration</span>: <span class="number">8000</span>,</span><br><span class="line">            <span class="attr">pos</span>: <span class="string">&#x27;top-center&#x27;</span>,</span><br><span class="line">            <span class="attr">actionText</span>: <span class="string">&#x27;前往&#x27;</span>,</span><br><span class="line">            <span class="attr">onActionClick</span>: <span class="keyword">function</span> (<span class="params">element</span>) &#123;</span><br><span class="line">                $(element).<span class="title function_">css</span>(<span class="string">&#x27;opacity&#x27;</span>, <span class="number">0</span>);</span><br><span class="line">                <span class="variable language_">window</span>.<span class="title function_">open</span>(link, <span class="string">&#x27;_blank&#x27;</span>);</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;,</span><br><span class="line"><span class="comment">// 添加底部友链直达</span></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">toRandomFlink</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">let</span> flinksTo = <span class="title class_">Array</span>.<span class="title function_">from</span>(flinksAll);</span><br><span class="line">    <span class="variable language_">window</span>.<span class="title function_">open</span>(flinksTo[<span class="title class_">Math</span>.<span class="title function_">floor</span>(<span class="title class_">Math</span>.<span class="title function_">random</span>() * flinksTo.<span class="property">length</span>)].<span class="property">link</span>)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 添加底部友链</span></span><br><span class="line"><span class="attr">addFriendLinksInFooter</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">let</span> flinksFooter = <span class="title class_">Array</span>.<span class="title function_">from</span>(flinksAll); </span><br><span class="line">    <span class="keyword">let</span> randomFriendLinks = [];</span><br><span class="line">    <span class="keyword">while</span> (randomFriendLinks.<span class="property">length</span> &lt; <span class="number">2</span> &amp;&amp; flinksFooter.<span class="property">length</span> &gt; <span class="number">0</span>) &#123;</span><br><span class="line">        <span class="keyword">let</span> index = <span class="title class_">Math</span>.<span class="title function_">floor</span>(<span class="title class_">Math</span>.<span class="title function_">random</span>() * flinksFooter.<span class="property">length</span>);</span><br><span class="line">        randomFriendLinks.<span class="title function_">push</span>(flinksFooter.<span class="title function_">splice</span>(index, <span class="number">1</span>)[<span class="number">0</span>]);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">let</span> htmlText = <span class="string">&#x27;&#x27;</span>;</span><br><span class="line">    <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; randomFriendLinks.<span class="property">length</span>; ++i) &#123;</span><br><span class="line">        <span class="keyword">let</span> item = randomFriendLinks[i]</span><br><span class="line">        htmlText += <span class="string">`&lt;a class=&#x27;footer-item&#x27; href=&#x27;<span class="subst">$&#123;item.link&#125;</span>&#x27; target=&quot;_blank&quot; rel=&quot;noopener nofollow&quot;&gt;<span class="subst">$&#123;item.name&#125;</span>&lt;/a&gt;`</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    htmlText += <span class="string">`&lt;a class=&#x27;footer-item&#x27; href=&#x27;/link&#x27;&gt;更多&lt;/a&gt;`</span></span><br><span class="line">    <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;friend-links-in-footer&quot;</span>).<span class="property">innerHTML</span> = htmlText;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>至此修改完成，效果也不错，不过js的语法可能比较基础，希望可以抛砖引玉，有更高级写法的大佬欢迎讨论。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;最近使用Butterfly主题的博友都在对博客随机友链功能做优化。&lt;/p&gt;
&lt;h2 id=&quot;一、随机友链优化案例&quot;&gt;&lt;a href=&quot;#一、随机友链优化案例&quot; class=&quot;headerlink&quot; title=&quot;一、随机友链优化案例&quot;&gt;&lt;/a&gt;一、随机友链优化案例&lt;/h2&gt;</summary>
      
    
    
    
    <category term="主题教程" scheme="https://blog.lhliang.com/categories/%E4%B8%BB%E9%A2%98%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="Hexo" scheme="https://blog.lhliang.com/tags/Hexo/"/>
    
    <category term="前端开发" scheme="https://blog.lhliang.com/tags/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/"/>
    
    <category term="Butterfly" scheme="https://blog.lhliang.com/tags/Butterfly/"/>
    
  </entry>
  
  <entry>
    <title>轻松实现网站状态监测面板</title>
    <link href="https://blog.lhliang.com/p/f0a2480b.html"/>
    <id>https://blog.lhliang.com/p/f0a2480b.html</id>
    <published>2023-05-08T16:00:00.000Z</published>
    <updated>2026-04-16T08:03:52.000Z</updated>
    
    <content type="html"><![CDATA[<p>轻松实现一个基于 UptimeRobot API 的在线状态面板</p><h2 id="一、最终效果"><a href="#一、最终效果" class="headerlink" title="一、最终效果"></a>一、最终效果</h2><p><img src="/img/upload/2023-05-09_10-55-00.webp?articlesimg" alt="最终效果"></p><h2 id="二、准备API"><a href="#二、准备API" class="headerlink" title="二、准备API"></a>二、准备API</h2><p>需要先到 UptimeRobot 添加站点监控，并在 My Settings 页面获取 API Key</p><p><img src="/img/upload/2023-05-09_10-56-59.webp?articlesimg" alt="注册登录"></p><p>新建监测站点</p><p><img src="/img/upload/2023-05-09_11-00-21.webp?articlesimg" alt="新建监测"></p><p>免费账户只能监测HEAD，不过也足够用了</p><p><img src="/img/upload/2023-05-09_11-02-17.webp?articlesimg" alt="监测设置"></p><p>可以设置监测告警，及时发现站点故障</p><p><img src="/img/upload/2023-05-09_11-02-52.webp?articlesimg" alt="监测告警"></p><p>可以添加多个监测的站点和服务</p><p><img src="/img/upload/2023-05-09_11-03-16.webp?articlesimg" alt="添加多个"></p><p>查看并记录所有站点的API，后面会用</p><p><img src="/img/upload/2023-05-09_11-04-25.webp?articlesimg" alt="复制API"></p><h2 id="三、前端页面"><a href="#三、前端页面" class="headerlink" title="三、前端页面"></a>三、前端页面</h2><p>这里部署到vercel（采用vercel演示）如果有网站空间或云服务器，可以直接将前端部署到自己的新站点</p><p>Fork 以下项目，然后修改<code>public/config.js</code>,添加自己的API并修改名称等，可以添加多个API</p><p><a href="https://github.com/yb/uptime-status">uptime-status</a></p><p><img src="/img/upload/2023-05-09_12-22-44.webp?articlesimg" alt="增加API和修改名字等"></p><h2 id="四、部署前端到vercel"><a href="#四、部署前端到vercel" class="headerlink" title="四、部署前端到vercel"></a>四、部署前端到vercel</h2><p>选择自己的github项目导入，部署类型选择other</p><p><a href="https://vercel.com/new" title="部署到vercel">vercel部署</a></p><p>部署完成后，添加自己的域名并做好CNAME解析（默认vercel域名不可直接使用），就可以使用了。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;轻松实现一个基于 UptimeRobot API 的在线状态面板&lt;/p&gt;
&lt;h2 id=&quot;一、最终效果&quot;&gt;&lt;a href=&quot;#一、最终效果&quot; class=&quot;headerlink&quot; title=&quot;一、最终效果&quot;&gt;&lt;/a&gt;一、最终效果&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;/img</summary>
      
    
    
    
    <category term="经验分享" scheme="https://blog.lhliang.com/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="前端开发" scheme="https://blog.lhliang.com/tags/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/"/>
    
    <category term="网站状态" scheme="https://blog.lhliang.com/tags/%E7%BD%91%E7%AB%99%E7%8A%B6%E6%80%81/"/>
    
  </entry>
  
  <entry>
    <title>Windows 系统信息显示小工具 BgInfo</title>
    <link href="https://blog.lhliang.com/p/6d78b700.html"/>
    <id>https://blog.lhliang.com/p/6d78b700.html</id>
    <published>2023-04-28T23:05:50.000Z</published>
    <updated>2026-04-26T11:21:52.135Z</updated>
    
    <content type="html"><![CDATA[<p>当系统管理员在维护Windows系统的时候，经常会操作各种操作指令查看IP地址、DNS、计算机名、系统配置等，往往需要消耗一部分时间和精力。</p><p>使用BGInfo小工具可以自动在桌面背景上显示有关 Windows 计算机的相关信息，例如计算机名称、IP 地址、Service Pack 版本等。 可以编辑任何字段以及字体和背景色。</p><blockquote><p>BGInfo小工具是编辑桌面背景并重新展示桌面壁纸，所以并不会消耗系统资源（如有壁纸循环切换软件不建议共用）。</p></blockquote><h2 id="一、下载"><a href="#一、下载" class="headerlink" title="一、下载"></a>一、下载</h2><p>发布时间： 2022 年 9 月 29 日</p><p><a href="https://download.sysinternals.com/files/BGInfo.zip">下载BgInfo v4.32</a></p><h2 id="二、安装"><a href="#二、安装" class="headerlink" title="二、安装"></a>二、安装</h2><p>软件为直接执行程序，下载解压到非临时目录，比如<code>c:\BGInfo\</code></p><p><img src="/img/upload/2023-04-29_08-00-32.jpg?articlesimg" alt="2023-04-29_08-00-32.jpg"></p><p>运行 BGInfo 时，会显示其默认桌面背景的外观和内容。 如果不做任何更改，它将在 10 秒倒计时计时器过期后自动应用这些设置并退出。</p><p><img src="/img/upload/2023-04-29_08-00-57.jpg?articlesimg" alt="2023-04-29_08-00-57.jpg"></p><p>默认应用后的效果如下图所示：</p><p><img src="/img/upload/2023-04-29_08-01-53.jpg?articlesimg" alt="2023-04-29_08-01-53.jpg"></p><h2 id="三、个性调整"><a href="#三、个性调整" class="headerlink" title="三、个性调整"></a>三、个性调整</h2><p>可以运行软件后点击倒计时按钮，然后自定义所有显示内容</p><p><img src="/img/upload/2023-04-29_08-08-49.jpg?articlesimg" alt="2023-04-29_08-08-49.jpg"></p><p>自定义后，需要手动修改回自己的壁纸，然后应用这个最新的配置，效果就会显示出来</p><p><img src="/img/upload/2023-04-29_08-09-25.jpg?articlesimg" alt="2023-04-29_08-09-25.jpg"></p><h2 id="四、自启动"><a href="#四、自启动" class="headerlink" title="四、自启动"></a>四、自启动</h2><p>默认运行只会生效一次，如果需要每次开机后自动执行需要将软件加入到开启自启动文件夹。</p><p>右键软件程序，发送快捷方式到桌面</p><p><img src="/img/upload/2023-04-29_08-27-50.jpg?articlesimg" alt="2023-04-29_08-27-50.jpg"></p><p>然后，将快捷方式拖到’自启动文件夹’里即可</p><p><img src="/img/upload/2023-04-29_08-26-59.jpg?articlesimg" alt="2023-04-29_08-26-59.jpg"></p><p>部分操作系统的自启动路径为：<code>C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup</code></p><h2 id="五、兼容性"><a href="#五、兼容性" class="headerlink" title="五、兼容性"></a>五、兼容性</h2><p>客户端：Windows 8.1及更高。</p><p>服务器：Windows Server 2012及更高版本。</p><h2 id="六、扩展"><a href="#六、扩展" class="headerlink" title="六、扩展"></a>六、扩展</h2><p>更详细的参数设置可以参考<a href="https://learn.microsoft.com/zh-cn/sysinternals/downloads/bginfo">微软文档介绍</a>，如有疑问可以留言讨论。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;当系统管理员在维护Windows系统的时候，经常会操作各种操作指令查看IP地址、DNS、计算机名、系统配置等，往往需要消耗一部分时间和精力。&lt;/p&gt;
&lt;p&gt;使用BGInfo小工具可以自动在桌面背景上显示有关 Windows 计算机的相关信息，例如计算机名称、IP 地址、Se</summary>
      
    
    
    
    <category term="软件分享" scheme="https://blog.lhliang.com/categories/%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="Windows" scheme="https://blog.lhliang.com/tags/Windows/"/>
    
    <category term="Sysinternals" scheme="https://blog.lhliang.com/tags/Sysinternals/"/>
    
  </entry>
  
  <entry>
    <title>Hexo 安装并使用 Butterfly 主题</title>
    <link href="https://blog.lhliang.com/p/404f0b62.html"/>
    <id>https://blog.lhliang.com/p/404f0b62.html</id>
    <published>2023-04-19T16:00:00.000Z</published>
    <updated>2026-04-26T11:21:52.139Z</updated>
    
    <content type="html"><![CDATA[<p>本文章为转载整理链接分享，包含了安装Hexo、安装Butterfly主题、主题设置等</p><h2 id="一、Hexo-安装参考以下官方教程"><a href="#一、Hexo-安装参考以下官方教程" class="headerlink" title="一、Hexo 安装参考以下官方教程"></a>一、Hexo 安装参考以下官方教程</h2><div class="tag-link"><a class="tag-Link" target="_blank" href="https://hexo.io/zh-cn/docs/">        <div class="tag-link-tips">引用站外地址</div>        <div class="tag-link-bottom">            <div class="tag-link-left" style="background-image: url(https://api.iowen.cn/favicon/hexo.io/zh-cn/docs/.png);"></div>            <div class="tag-link-right">                <div class="tag-link-title">Hexo 安装文档</div>                <div class="tag-link-sitename">Hexo</div>            </div>            <i class="lhlfont icon-arrow-right-s-line"></i>        </div>        </a></div><h2 id="二、使用-Butterfly-主题参考以下官方教程"><a href="#二、使用-Butterfly-主题参考以下官方教程" class="headerlink" title="二、使用 Butterfly 主题参考以下官方教程"></a>二、使用 Butterfly 主题参考以下官方教程</h2><div class="tag-link"><a class="tag-Link" target="_blank" href="https://butterfly.js.org/posts/21cfbf15/">        <div class="tag-link-tips">引用站外地址</div>        <div class="tag-link-bottom">            <div class="tag-link-left" style="background-image: url(https://api.iowen.cn/favicon/butterfly.js.org/posts/21cfbf15/.png);"></div>            <div class="tag-link-right">                <div class="tag-link-title">Butterfly 安装文档</div>                <div class="tag-link-sitename">Jerry</div>            </div>            <i class="lhlfont icon-arrow-right-s-line"></i>        </div>        </a></div><p>原文作者已经写的很好了，不用过多介绍。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;本文章为转载整理链接分享，包含了安装Hexo、安装Butterfly主题、主题设置等&lt;/p&gt;
&lt;h2 id=&quot;一、Hexo-安装参考以下官方教程&quot;&gt;&lt;a href=&quot;#一、Hexo-安装参考以下官方教程&quot; class=&quot;headerlink&quot; title=&quot;一、Hexo 安</summary>
      
    
    
    
    <category term="转载分享" scheme="https://blog.lhliang.com/categories/%E8%BD%AC%E8%BD%BD%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="Hexo" scheme="https://blog.lhliang.com/tags/Hexo/"/>
    
    <category term="前端开发" scheme="https://blog.lhliang.com/tags/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/"/>
    
    <category term="Butterfly" scheme="https://blog.lhliang.com/tags/Butterfly/"/>
    
  </entry>
  
  <entry>
    <title>识别 ESXi 的存储性能问题</title>
    <link href="https://blog.lhliang.com/p/593bfb23.html"/>
    <id>https://blog.lhliang.com/p/593bfb23.html</id>
    <published>2022-10-31T10:26:26.000Z</published>
    <updated>2026-04-26T11:21:52.130Z</updated>
    
    <content type="html"><![CDATA[<p>在很多项目或者客户自建的VMware环境中（FC SAN 或 IP SAN）经常碰到虚拟机响应时间过长影响业务应用的运行，在虚拟化平台或者云管中还会发现存储路径延迟的报警。</p><h2 id="概述"><a href="#概述" class="headerlink" title="概述"></a>概述</h2><p>传统集中式存储出现存储性能问题的常见原因有如下几种：</p><ul><li>服务器与存储的SAN链路出现问题；</li><li>存储系统的 I&#x2F;O 性能已经无法支撑现有应用；</li><li>服务器的多路径故障；</li></ul><h2 id="一、识别故障原因"><a href="#一、识别故障原因" class="headerlink" title="一、识别故障原因"></a>一、识别故障原因</h2><p>可以使用交互式 esxtop 实用程序查看 VMware ESX 主机的各种设备的 I&#x2F;O 指标。<br><a href="https://docs.vmware.com/cn/VMware-vSphere/7.0/com.vmware.esxi.install.doc/GUID-F9234F4A-FD6A-477B-B7BA-28EB6B08CE82.html" title="启用 ESXi Shell 和 SSH 访问">启用 ESXi Shell 和 SSH 访问</a>，通过putty等软件远程到ESXi主机。</p><p>要监控每个 HBA 的存储性能，执行以下操作：</p><ol><li>在命令行键入 esxtop 以启动 esxtop。</li><li>按 d 切换到磁盘视图（HBA 模式）。</li><li>要查看完整的设备名称，请按 SHIFT + L 并在“更改名称字段大小”中输入 36。</li><li>按 f 修改显示的字段。</li><li>按 b、c、d、e、h 和 j 切换字段，然后按 Enter。</li><li>按 s，接着按 2 将更新时间间隔改为 2 秒，然后按 Enter。</li></ol><p>要按每个 LUN 监控存储性能，请执行以下操作：</p><ol><li>从命令行键入 esxtop 以启动 esxtop。</li><li>按 u 切换到磁盘视图（LUN 模式）。</li><li>按 f 修改显示的字段。</li><li>按 b、c、f 和 h 切换字段，然后按 Enter。</li><li>按 s，接着按 2 将更新时间间隔改为 2 秒，然后按 Enter。</li></ol><p>要增加 esxtop 中设备字段的宽度以显示完整的 naa id，请执行以下操作：</p><ol><li>在命令行键入 esxtop 以启动 esxtop。</li><li>按 u 切换到磁盘设备显示。</li><li>按 L 更改名称字段大小。</li><li>输入值 36 以显示完整的 naa 标识符。</li></ol><blockquote><p>注意：务必使用大写字母 L。</p></blockquote><p>要按每个虚拟机监控存储性能，请执行以下操作：</p><ol><li>在命令行键入 esxtop 以启动 esxtop。</li><li>键入 v 切换到磁盘视图（虚拟机模式）。</li><li>按 f 修改显示的字段。</li><li>按 b、d、e、h 和 j 切换字段，然后按 Enter。</li><li>按 s，接着按 2 将更新时间间隔改为 2 秒，然后按 Enter。</li></ol><p>各项指标说明：</p><table><thead><tr><th>指标</th><th>描述</th></tr></thead><tbody><tr><td>CMDS&#x2F;s</td><td>这是指每秒命令总数，包括 IOPS（每秒输入&#x2F;输出操作数）和其他 SCSI 命令，如 SCSI reservations、locks、vendor string requests、unit attention 等要发送到或发送自受监控设备或虚拟机的命令。在大多数情况下，除非有大量元数据操作（如 SCSI 预留），否则 CMDS&#x2F;s &#x3D; IOPS。</td></tr><tr><td>DAVG&#x2F;cmd</td><td>这是发送给设备的每个命令的平均响应时间（以毫秒为单位）。</td></tr><tr><td>KAVG&#x2F;cmd</td><td>这是命令在 VMkernel 中花费的时间。</td></tr><tr><td>GAVG&#x2F;cmd</td><td>是指客户机操作系统感知的响应时间。该值使用此公式计算： DAVG + KAVG &#x3D; GAVG</td></tr></tbody></table><p>上述列既适用于读取操作，也适用于写入操作，而 xAVG&#x2F;rd 只适用于读取操作，xAVG&#x2F;wr 只适用于写入操作。将这些列的结合起来是监控性能的最好方式，但是高读取或写入响应时间可能表示该阵列上的读取或写入缓存处于禁用状态。所有阵列的执行方式都不同，但对于持续的时间段<br>DAVG&#x2F;cmd、KAVG&#x2F;cmd 和 GAVG&#x2F;cmd 不应超出<strong>10 毫秒</strong> (ms)。</p><p>如果响应时间增加到超过 5000 毫秒（或 5 秒），则 VMware ESX 将让命令超时并中止操作。这些事件已记入日志；可以在以下日志中查看中止消息和其他 SCSI 错误：</p><ul><li>ESX 3.5 和 4.x – &#x2F;var&#x2F;log&#x2F;vmkernel</li><li>ESXi 3.5 和 4.x – &#x2F;var&#x2F;log&#x2F;messages</li><li>ESXi 5.x 及更高版本 - &#x2F;var&#x2F;log&#x2F;vmkernel.log</li></ul><h2 id="二、存储性能问题分析"><a href="#二、存储性能问题分析" class="headerlink" title="二、存储性能问题分析"></a>二、存储性能问题分析</h2><p>如果同存储设备的所有LUN均出现 DAVG&#x2F;cmd 超出<strong>10 毫秒</strong> (ms)，甚至达到惊人的几十毫秒或者上百上千毫秒，就需要通过以下方式进一步分析根因。</p><ul><li>FC SAN环境：从光纤交换机上查看光衰是否正常，从而确认是否需要更换光纤线或光模块。</li><li>IP SAN环境：确认iSCSi网卡和以太网交换机的线路或光模块是否异常。</li></ul><p>如果单个LUN出现 DAVG&#x2F;cmd 超出<strong>10 毫秒</strong> (ms)，甚至达到惊人的几十毫秒或者上百上千毫秒，在其他LUN的运行正常前提下需要确认是否是存储LUN本身 I&#x2F;O 性能不足导致的该问题。</p><p><a href="https://communities.vmware.com/t5/Storage-Performance/Interpreting-esxtop-Statistics/ta-p/2776936" title="esxtop的详细指标说明">esxtop的详细指标说明</a></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;在很多项目或者客户自建的VMware环境中（FC SAN 或 IP SAN）经常碰到虚拟机响应时间过长影响业务应用的运行，在虚拟化平台或者云管中还会发现存储路径延迟的报警。&lt;/p&gt;
&lt;h2 id=&quot;概述&quot;&gt;&lt;a href=&quot;#概述&quot; class=&quot;headerlink&quot; t</summary>
      
    
    
    
    <category term="经验分享" scheme="https://blog.lhliang.com/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"/>
    
    
    <category term="VMware" scheme="https://blog.lhliang.com/tags/VMware/"/>
    
    <category term="ESXi" scheme="https://blog.lhliang.com/tags/ESXi/"/>
    
    <category term="vSphere" scheme="https://blog.lhliang.com/tags/vSphere/"/>
    
  </entry>
  
  <entry>
    <title>北京六月的天空</title>
    <link href="https://blog.lhliang.com/p/83d35df9.html"/>
    <id>https://blog.lhliang.com/p/83d35df9.html</id>
    <published>2022-06-05T16:00:00.000Z</published>
    <updated>2026-04-16T07:29:22.000Z</updated>
    
    <content type="html"><![CDATA[<p>北京2022年6月6日海淀天气晴</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;北京2022年6月6日海淀天气晴&lt;/p&gt;
</summary>
      
    
    
    
    <category term="生活日常" scheme="https://blog.lhliang.com/categories/%E7%94%9F%E6%B4%BB%E6%97%A5%E5%B8%B8/"/>
    
    
    <category term="sky" scheme="https://blog.lhliang.com/tags/sky/"/>
    
    <category term="vlog" scheme="https://blog.lhliang.com/tags/vlog/"/>
    
  </entry>
  
  <entry>
    <title>Linux 网卡绑定配置大全</title>
    <link href="https://blog.lhliang.com/p/b4fe59ce.html"/>
    <id>https://blog.lhliang.com/p/b4fe59ce.html</id>
    <published>2021-12-01T10:26:26.000Z</published>
    <updated>2026-04-26T11:21:52.134Z</updated>
    
    <content type="html"><![CDATA[<p>网卡绑定使两个或多个网络接口能够充当一个接口，同时增大带宽并提供冗余。</p><blockquote><p>active-backup、balance-tlb 和 balance-alb 模式不需要对交换机进行任何具体的配 置。其他绑定模式需要配置交换机来聚合链接。</p></blockquote><p>最新的操作系统可以通过文本用户界面工具 <code>nmtui</code> 可用于在终端窗口中配置绑定</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nmtui</span><br></pre></td></tr></table></figure><p>由于nmtui可以解决大多数问题，本文提供的是命令行手动配置bond方式，请自行选择配置方式。</p><h2 id="一、绑定模式概述"><a href="#一、绑定模式概述" class="headerlink" title="一、绑定模式概述"></a>一、绑定模式概述</h2><table><thead><tr><th>模式</th><th>交换机要求</th><th>特性概述</th></tr></thead><tbody><tr><td>0 - balance-rr</td><td>需要启用静态的 Etherchannel(未启用 LACP 协商)</td><td>为容错和负载平衡设置循环策略。从第一个可用的接口开始，在每个绑定的从接口上依次接收和发送传输。</td></tr><tr><td>1 - active-backup</td><td>需要指定主端口</td><td>为容错设置主动备份策略。通过第一个可用的绑定从接口接收和发送传输。仅当活动的绑定从属接口出现故障时，才使用另一个绑定从属接口。</td></tr><tr><td>2 - balance-xor</td><td>需要启用静态的 Etherchannel(未启用 LACP 协商)</td><td>为容错和负载平衡设置 XOR（异或）策略。使用此方法，接口将传入请求的 MAC 地址与其中一个从属 NIC 的 MAC 地址相匹配。一旦建立此链路，就会从第一个可用接口开始顺序发送传输。</td></tr><tr><td>3 - broadcast</td><td>需要启用静态的 Etherchannel(未启用 LACP 协商)</td><td>为容错设置广播策略。所有传输都在所有从接口上发送。</td></tr><tr><td>4 - 802.3ad</td><td>需要启用 LACP 协商的 Etherchannel</td><td>设置 IEEE 802.3ad 动态链路聚合策略。创建共享相同速度和双工设置的聚合组。在活动聚合器中的所有从属设备上发送和接收。需要符合 802.3ad 的交换机。</td></tr><tr><td>5 - balance-tlb</td><td>需要指定主端口</td><td>为容错和负载平衡设置传输负载平衡 (TLB) 策略。根据每个从接口上的当前负载分配传出流量。当前从站接收传入流量。如果接收从机发生故障，另一个从机接管故障从机的 MAC 地址。</td></tr><tr><td>6 - balance-alb</td><td>需要指定主端口</td><td>指定主设备的接口名称，例如 eth0。主设备是第一个使用的绑定接口，除非失败，否则不会放弃。当绑定接口中的一个 NIC 速度更快并因此能够处理更大的负载时，此设置特别有用。此设置仅在绑定接口处于主动备份模式时有效。</td></tr></tbody></table><h2 id="二、配置环境介绍"><a href="#二、配置环境介绍" class="headerlink" title="二、配置环境介绍"></a>二、配置环境介绍</h2><p>Linux地址：192.168.0.1<br>Linux网关：192.168.0.254</p><p>网口1：eth0   3c:ab:0e:35:fc:18<br>网口2：eth1   3c:ab:0e:35:fc:19</p><h2 id="三、绑定模式-0-配置脚本"><a href="#三、绑定模式-0-配置脚本" class="headerlink" title="三、绑定模式 0 配置脚本"></a>三、绑定模式 0 配置脚本</h2><h3 id="RHEL5"><a href="#RHEL5" class="headerlink" title="RHEL5"></a>RHEL5</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eth0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="built_in">alias</span> bond0 bonding &gt;&gt;  /etc/modprobe.conf</span><br><span class="line"><span class="function"><span class="title">set_rhel5_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel5_bond_config -b bond0 -m 0 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100&quot;</span></span><br><span class="line"><span class="function"><span class="title">set_rhel5_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    mac_address=`<span class="built_in">cat</span> /sys/class/net/<span class="variable">$eth_name</span>/address`</span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">HWADDR=$mac_address</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel5_ethx_config bond0 eth0</span><br><span class="line">set_rhel5_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL6"><a href="#RHEL6" class="headerlink" title="RHEL6"></a>RHEL6</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eth0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel6_bond_config -b bond0 -m 0 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel6_ethx_config bond0 eth0</span><br><span class="line">set_rhel6_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL7"><a href="#RHEL7" class="headerlink" title="RHEL7"></a>RHEL7</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli con add <span class="built_in">type</span> bond ifname bond0 bond.options <span class="string">&quot;mode=balance-rr,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eth0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eth1 master bond0</span><br><span class="line">nmcli connection up eth0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL8-9"><a href="#RHEL8-9" class="headerlink" title="RHEL8 9"></a>RHEL8 9</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli connection add <span class="built_in">type</span> bond con-name bond0 ifname bond0 bond.options <span class="string">&quot;mode=balance-rr,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eth0 ifname eth0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eth1 ifname eth1 master bond0</span><br><span class="line">nmcli connection up eth0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h2 id="四、绑定模式-1-配置脚本"><a href="#四、绑定模式-1-配置脚本" class="headerlink" title="四、绑定模式 1 配置脚本"></a>四、绑定模式 1 配置脚本</h2><h3 id="RHEL5-1"><a href="#RHEL5-1" class="headerlink" title="RHEL5"></a>RHEL5</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="built_in">alias</span> bond0 bonding &gt;&gt;  /etc/modprobe.conf</span><br><span class="line"><span class="function"><span class="title">set_rhel5_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel5_bond_config -b bond0 -m 1 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100 primary=eht0&quot;</span></span><br><span class="line"><span class="function"><span class="title">set_rhel5_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    mac_address=`<span class="built_in">cat</span> /sys/class/net/<span class="variable">$eth_name</span>/address`</span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">HWADDR=$mac_address</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel5_ethx_config bond0 eht0</span><br><span class="line">set_rhel5_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL6-1"><a href="#RHEL6-1" class="headerlink" title="RHEL6"></a>RHEL6</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel6_bond_config -b bond0 -m 1 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100 primary=eht0&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel6_ethx_config bond0 eht0</span><br><span class="line">set_rhel6_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL7-1"><a href="#RHEL7-1" class="headerlink" title="RHEL7"></a>RHEL7</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli con add <span class="built_in">type</span> bond ifname bond0 bond.options <span class="string">&quot;mode=active-backup,primary=eht0,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL8-9-1"><a href="#RHEL8-9-1" class="headerlink" title="RHEL8 9"></a>RHEL8 9</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli connection add <span class="built_in">type</span> bond con-name bond0 ifname bond0 bond.options <span class="string">&quot;mode=active-backup,primary=eht0,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eht0 ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eth1 ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h2 id="五、绑定模式-2-配置脚本"><a href="#五、绑定模式-2-配置脚本" class="headerlink" title="五、绑定模式 2 配置脚本"></a>五、绑定模式 2 配置脚本</h2><h3 id="RHEL5-2"><a href="#RHEL5-2" class="headerlink" title="RHEL5"></a>RHEL5</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="built_in">alias</span> bond0 bonding &gt;&gt;  /etc/modprobe.conf</span><br><span class="line"><span class="function"><span class="title">set_rhel5_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel5_bond_config -b bond0 -m 2 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100 xmit_hash_policy=layer3+4&quot;</span></span><br><span class="line"><span class="function"><span class="title">set_rhel5_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    mac_address=`<span class="built_in">cat</span> /sys/class/net/<span class="variable">$eth_name</span>/address`</span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">HWADDR=$mac_address</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel5_ethx_config bond0 eht0</span><br><span class="line">set_rhel5_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL6-2"><a href="#RHEL6-2" class="headerlink" title="RHEL6"></a>RHEL6</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel6_bond_config -b bond0 -m 2 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100 xmit_hash_policy=layer3+4&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel6_ethx_config bond0 eht0</span><br><span class="line">set_rhel6_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL7-2"><a href="#RHEL7-2" class="headerlink" title="RHEL7"></a>RHEL7</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli con add <span class="built_in">type</span> bond ifname bond0 bond.options <span class="string">&quot;mode=balance-xor,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL8-9-2"><a href="#RHEL8-9-2" class="headerlink" title="RHEL8 9"></a>RHEL8 9</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli connection add <span class="built_in">type</span> bond con-name bond0 ifname bond0 bond.options <span class="string">&quot;mode=balance-xor,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eht0 ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eth1 ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h2 id="六、绑定模式-3-配置脚本"><a href="#六、绑定模式-3-配置脚本" class="headerlink" title="六、绑定模式 3 配置脚本"></a>六、绑定模式 3 配置脚本</h2><h3 id="RHEL5-3"><a href="#RHEL5-3" class="headerlink" title="RHEL5"></a>RHEL5</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="built_in">alias</span> bond0 bonding &gt;&gt;  /etc/modprobe.conf</span><br><span class="line"><span class="function"><span class="title">set_rhel5_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel5_bond_config -b bond0 -m 3 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100&quot;</span></span><br><span class="line"><span class="function"><span class="title">set_rhel5_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    mac_address=`<span class="built_in">cat</span> /sys/class/net/<span class="variable">$eth_name</span>/address`</span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">HWADDR=$mac_address</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel5_ethx_config bond0 eht0</span><br><span class="line">set_rhel5_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL6-3"><a href="#RHEL6-3" class="headerlink" title="RHEL6"></a>RHEL6</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel6_bond_config -b bond0 -m 3 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel6_ethx_config bond0 eht0</span><br><span class="line">set_rhel6_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL7-3"><a href="#RHEL7-3" class="headerlink" title="RHEL7"></a>RHEL7</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli con add <span class="built_in">type</span> bond ifname bond0 bond.options <span class="string">&quot;mode=broadcast,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL8-9-3"><a href="#RHEL8-9-3" class="headerlink" title="RHEL8 9"></a>RHEL8 9</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli connection add <span class="built_in">type</span> bond con-name bond0 ifname bond0 bond.options <span class="string">&quot;mode=broadcast,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eht0 ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eth1 ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h2 id="七、绑定模式-4-配置脚本"><a href="#七、绑定模式-4-配置脚本" class="headerlink" title="七、绑定模式 4 配置脚本"></a>七、绑定模式 4 配置脚本</h2><h3 id="RHEL5-4"><a href="#RHEL5-4" class="headerlink" title="RHEL5"></a>RHEL5</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="built_in">alias</span> bond0 bonding &gt;&gt;  /etc/modprobe.conf</span><br><span class="line"><span class="function"><span class="title">set_rhel5_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel5_bond_config -b bond0 -m 4 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100 xmit_hash_policy=layer2+3&quot;</span></span><br><span class="line"><span class="function"><span class="title">set_rhel5_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    mac_address=`<span class="built_in">cat</span> /sys/class/net/<span class="variable">$eth_name</span>/address`</span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">HWADDR=$mac_address</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel5_ethx_config bond0 eht0</span><br><span class="line">set_rhel5_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL6-4"><a href="#RHEL6-4" class="headerlink" title="RHEL6"></a>RHEL6</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel6_bond_config -b bond0 -m 4 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100 xmit_hash_policy=layer2+3&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel6_ethx_config bond0 eht0</span><br><span class="line">set_rhel6_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL7-4"><a href="#RHEL7-4" class="headerlink" title="RHEL7"></a>RHEL7</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli con add <span class="built_in">type</span> bond ifname bond0 bond.options <span class="string">&quot;mode=802.3ad,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL8-9-4"><a href="#RHEL8-9-4" class="headerlink" title="RHEL8 9"></a>RHEL8 9</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli connection add <span class="built_in">type</span> bond con-name bond0 ifname bond0 bond.options <span class="string">&quot;mode=802.3ad,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eht0 ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eth1 ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h2 id="八、绑定模式-5-配置脚本"><a href="#八、绑定模式-5-配置脚本" class="headerlink" title="八、绑定模式 5 配置脚本"></a>八、绑定模式 5 配置脚本</h2><h3 id="RHEL5-5"><a href="#RHEL5-5" class="headerlink" title="RHEL5"></a>RHEL5</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="built_in">alias</span> bond0 bonding &gt;&gt;  /etc/modprobe.conf</span><br><span class="line"><span class="function"><span class="title">set_rhel5_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel5_bond_config -b bond0 -m 5 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100&quot;</span></span><br><span class="line"><span class="function"><span class="title">set_rhel5_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    mac_address=`<span class="built_in">cat</span> /sys/class/net/<span class="variable">$eth_name</span>/address`</span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">HWADDR=$mac_address</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel5_ethx_config bond0 eht0</span><br><span class="line">set_rhel5_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL6-5"><a href="#RHEL6-5" class="headerlink" title="RHEL6"></a>RHEL6</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel6_bond_config -b bond0 -m 5 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel6_ethx_config bond0 eht0</span><br><span class="line">set_rhel6_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL7-5"><a href="#RHEL7-5" class="headerlink" title="RHEL7"></a>RHEL7</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli con add <span class="built_in">type</span> bond ifname bond0 bond.options <span class="string">&quot;mode=balance-tlb,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL8-9-5"><a href="#RHEL8-9-5" class="headerlink" title="RHEL8 9"></a>RHEL8 9</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli connection add <span class="built_in">type</span> bond con-name bond0 ifname bond0 bond.options <span class="string">&quot;mode=balance-tlb,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eht0 ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eth1 ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h2 id="九、绑定模式-6-配置脚本"><a href="#九、绑定模式-6-配置脚本" class="headerlink" title="九、绑定模式 6 配置脚本"></a>九、绑定模式 6 配置脚本</h2><h3 id="RHEL5-6"><a href="#RHEL5-6" class="headerlink" title="RHEL5"></a>RHEL5</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="built_in">alias</span> bond0 bonding &gt;&gt;  /etc/modprobe.conf</span><br><span class="line"><span class="function"><span class="title">set_rhel5_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel5_bond_config -b bond0 -m 6 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100&quot;</span></span><br><span class="line"><span class="function"><span class="title">set_rhel5_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    mac_address=`<span class="built_in">cat</span> /sys/class/net/<span class="variable">$eth_name</span>/address`</span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">HWADDR=$mac_address</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel5_ethx_config bond0 eht0</span><br><span class="line">set_rhel5_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL6-6"><a href="#RHEL6-6" class="headerlink" title="RHEL6"></a>RHEL6</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ethtool eht0 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eht0</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">ethtool eth1 |grep <span class="string">&quot;Link detected: yes&quot;</span>&gt; /dev/null</span><br><span class="line"><span class="keyword">if</span> [ $? -ne 0 ] ;<span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> Can not detect the <span class="built_in">link</span> of eth1</span><br><span class="line">    <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_bond_config</span></span> ()</span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">unset</span> OPTIND</span><br><span class="line"><span class="keyword">while</span> <span class="built_in">getopts</span> <span class="string">&#x27;b:m:i:n:g:s:t:&#x27;</span> opt; <span class="keyword">do</span></span><br><span class="line">    <span class="keyword">case</span> <span class="variable">$opt</span> <span class="keyword">in</span></span><br><span class="line">        b) bond_name=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        m) bond_mode=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        i) ip=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        n) mask=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        g) gateway=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        s) bond_opts=<span class="variable">$OPTARG</span>;;</span><br><span class="line">        t) network_type=<span class="variable">$OPTARG</span>;;</span><br><span class="line">    <span class="keyword">esac</span></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">bond_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="variable">$bond_config_file</span></span><br><span class="line"><span class="keyword">if</span> [ -f <span class="variable">$bond_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">    <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$bond_config_file</span> to bondhelper.<span class="variable">$bond_name</span>&quot;</span></span><br><span class="line">    <span class="built_in">mv</span> <span class="variable">$bond_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$bond_name</span> -f</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">&quot;static&quot;</span> == <span class="variable">$network_type</span> ]; <span class="keyword">then</span> </span><br><span class="line">    <span class="keyword">if</span> [ ! -n <span class="string">&quot;<span class="variable">$gateway</span>&quot;</span> ]; <span class="keyword">then</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        ip_setting=<span class="string">&quot;IPADDR=<span class="variable">$ip</span></span></span><br><span class="line"><span class="string">NETMASK=<span class="variable">$mask</span></span></span><br><span class="line"><span class="string">GATEWAY=<span class="variable">$gateway</span></span></span><br><span class="line"><span class="string">USERCTL=no&quot;</span></span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">    ip_setting=<span class="string">&quot;USERCTL=no&quot;</span></span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt; <span class="string">EOF &gt; $bond_config_file</span></span><br><span class="line"><span class="string">DEVICE=$bond_name</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">BOOTPROTO=$network_type</span></span><br><span class="line"><span class="string">$ip_setting</span></span><br><span class="line"><span class="string">BONDING_OPTS=&quot;mode=$bond_mode $bond_opts&quot;</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line">set_rhel6_bond_config -b bond0 -m 6 -i 192.168.0.1 -n 255.255.255.0 -g 192.168.0.254 -t static -s <span class="string">&quot;miimon=100&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="title">set_rhel6_ethx_config</span></span>()  &#123;</span><br><span class="line">    bond_name=<span class="variable">$1</span></span><br><span class="line">    eth_name=<span class="variable">$2</span></span><br><span class="line"></span><br><span class="line">    eth_config_file=<span class="string">&quot;/etc/sysconfig/network-scripts/ifcfg-<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">    <span class="keyword">if</span> [ -f <span class="variable">$eth_config_file</span> ]; <span class="keyword">then</span></span><br><span class="line">        <span class="built_in">echo</span> <span class="string">&quot;Backup original <span class="variable">$eth_config_file</span> to bondhelper.<span class="variable">$eth_name</span>&quot;</span></span><br><span class="line">        <span class="built_in">mv</span> <span class="variable">$eth_config_file</span> /etc/sysconfig/network-scripts/bondhelper.<span class="variable">$eth_name</span> -f</span><br><span class="line">    <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">    <span class="built_in">cat</span> &lt;&lt; <span class="string">EOF  &gt; $eth_config_file</span></span><br><span class="line"><span class="string">DEVICE=$eth_name</span></span><br><span class="line"><span class="string">BOOTPROTO=none</span></span><br><span class="line"><span class="string">ONBOOT=yes</span></span><br><span class="line"><span class="string">MASTER=$bond_name</span></span><br><span class="line"><span class="string">SLAVE=yes</span></span><br><span class="line"><span class="string">USERCTL=no</span></span><br><span class="line"><span class="string">NM_CONTROLLED=no</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">set_rhel6_ethx_config bond0 eht0</span><br><span class="line">set_rhel6_ethx_config bond0 eth1</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Network service will be restarted.&quot;</span></span><br><span class="line">service network restart</span><br><span class="line"><span class="built_in">cat</span> /proc/net/bonding/bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL7-6"><a href="#RHEL7-6" class="headerlink" title="RHEL7"></a>RHEL7</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli con add <span class="built_in">type</span> bond ifname bond0 bond.options <span class="string">&quot;mode=balance-alb,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure><h3 id="RHEL8-9-6"><a href="#RHEL8-9-6" class="headerlink" title="RHEL8 9"></a>RHEL8 9</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">nmcli connection add <span class="built_in">type</span> bond con-name bond0 ifname bond0 bond.options <span class="string">&quot;mode=balance-alb,miimon=100&quot;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.addresses <span class="string">&#x27;192.168.0.1/24&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.gateway <span class="string">&#x27;192.168.0.254&#x27;</span></span><br><span class="line">nmcli connection modify bond0 ipv4.method manual</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eht0 ifname eht0 master bond0</span><br><span class="line">nmcli connection add <span class="built_in">type</span> ethernet slave-type bond con-name eth1 ifname eth1 master bond0</span><br><span class="line">nmcli connection up eht0</span><br><span class="line">nmcli connection up eth1</span><br><span class="line">nmcli connection up bond0</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;网卡绑定使两个或多个网络接口能够充当一个接口，同时增大带宽并提供冗余。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;active-backup、balance-tlb 和 balance-alb 模式不需要对交换机进行任何具体的配 置。其他绑定模式需要配置交换机来聚合链接。&lt;/</summary>
      
    
    
    
    <category term="学习笔记" scheme="https://blog.lhliang.com/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="Linux" scheme="https://blog.lhliang.com/tags/Linux/"/>
    
    <category term="网卡绑定" scheme="https://blog.lhliang.com/tags/%E7%BD%91%E5%8D%A1%E7%BB%91%E5%AE%9A/"/>
    
  </entry>
  
</feed>
