<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Zachary</title><description>Zachary 的个人博客，记录技术、阅读和日常思考。</description><link>https://blog.993216.xyz/</link><item><title>用 Cloudflare Email Routing 做轻量域名邮箱转发</title><link>https://blog.993216.xyz/posts/cloudflare-email-routing-catch-all-domain-email/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/cloudflare-email-routing-catch-all-domain-email/</guid><description>记录用 Cloudflare Email Routing 和 catch-all 把自有域名变成可派生收信地址的项目作用、配置思路和使用方法。</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这篇文章记录的是 &lt;code&gt;993216.xyz&lt;/code&gt; 域名邮箱转发方案。它不是完整邮箱托管服务，而是在已经托管到 Cloudflare 的域名上，加一层轻量收信转发能力：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Cloudflare Email Routing + catch-all + 已验证的个人邮箱
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最终效果是：只要使用 &lt;code&gt;任意名称@993216.xyz&lt;/code&gt; 作为收件地址，邮件就会先进入 Cloudflare Email Routing，再被转发到我已经验证过的个人邮箱。日常注册网站、接收验证码、隔离主邮箱、追踪邮件来源时，就不需要到处暴露同一个主邮箱地址。&lt;/p&gt;
&lt;h2&gt;一、项目作用和功能&lt;/h2&gt;
&lt;p&gt;这个项目的核心作用，是把一个自有域名变成一组可随手派生的收信地址。&lt;/p&gt;
&lt;p&gt;例如可以这样使用：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;github-main@993216.xyz
notion-202607@993216.xyz
shopping-a7k9@993216.xyz
newsletter-test@993216.xyz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这些地址不需要提前逐个创建。只要 catch-all 规则保持启用，发往 &lt;code&gt;@993216.xyz&lt;/code&gt; 的邮件都会被 Cloudflare 捕获，并转发到指定的个人邮箱。&lt;/p&gt;
&lt;p&gt;它主要解决三个问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;隔离主邮箱：不同网站使用不同地址，减少主邮箱直接暴露。&lt;/li&gt;
&lt;li&gt;追踪来源：某个地址收到垃圾邮件时，可以反推它最初给过哪个网站或服务。&lt;/li&gt;
&lt;li&gt;降低管理成本：不用维护多个真实邮箱账号，也不用为每个地址设置独立密码。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它也有明确边界：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这是 receive-only 的收信转发方案，不是完整邮箱。&lt;/li&gt;
&lt;li&gt;默认不能从 &lt;code&gt;@993216.xyz&lt;/code&gt; 主动发信。&lt;/li&gt;
&lt;li&gt;直接在个人邮箱里回复时，对方通常会看到个人邮箱地址，而不是 &lt;code&gt;xxx@993216.xyz&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;Cloudflare Email Routing 负责路由转发，不适合作为长期邮箱归档系统。&lt;/li&gt;
&lt;li&gt;银行、支付、证券、政府服务、合同沟通、账号申诉等高风险场景，不建议只依赖这类转发地址。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以我把它定位为“收信别名层”：适合注册、验证、通知和来源隔离，不适合承担严肃业务邮箱的全部职责。&lt;/p&gt;
&lt;h2&gt;二、配置思路&lt;/h2&gt;
&lt;p&gt;配置前提是域名已经在 Cloudflare 中管理 DNS。Email Routing 依赖邮件 DNS 记录，尤其是 MX 记录；如果这个域名已经接入了其他邮箱服务，需要先确认不会和现有 MX、SPF、DKIM 配置冲突。&lt;/p&gt;
&lt;p&gt;整体流程可以压缩成五步。&lt;/p&gt;
&lt;p&gt;第一步，启用 Email Routing。&lt;/p&gt;
&lt;p&gt;在 Cloudflare Dashboard 中进入对应域名，打开 Email Routing。按官方当前文档路径，入口通常在：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Compute
-&amp;gt; Email Service
-&amp;gt; Email Routing
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启用时，Cloudflare 会为域名准备收信所需的 DNS 记录，包括 MX、SPF 和 DKIM。MX 负责把邮件投递到 Cloudflare，SPF 和 DKIM 用于邮件认证相关声明。&lt;/p&gt;
&lt;p&gt;第二步，添加并验证转发目的邮箱。&lt;/p&gt;
&lt;p&gt;在 Destination Addresses 中添加个人邮箱。Cloudflare 会向这个邮箱发送验证邮件；只有点过验证链接后，指向这个邮箱的规则才会真正启用。这个步骤不能省略，否则路由规则会保持 disabled。&lt;/p&gt;
&lt;p&gt;第三步，设置路由规则。&lt;/p&gt;
&lt;p&gt;可以先给重要地址创建明确规则，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;github-main@993216.xyz -&amp;gt; 已验证的个人邮箱
cloudflare-main@993216.xyz -&amp;gt; 已验证的个人邮箱
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后开启 catch-all，让所有没有单独规则的地址也能收信：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;*@993216.xyz -&amp;gt; 已验证的个人邮箱
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;具体地址规则适合长期重要账号，catch-all 适合临时地址和低成本派生地址。如果后续某个地址泄露，可以新增更具体的 drop 规则来丢弃它。&lt;/p&gt;
&lt;p&gt;第四步，补充 DMARC 记录。&lt;/p&gt;
&lt;p&gt;当前阶段以收信为主，可以先使用温和的观察策略：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;_dmarc.993216.xyz TXT &quot;v=DMARC1; p=none; pct=100&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;p=none&lt;/code&gt; 表示声明 DMARC 策略，但暂不要求接收方拒收或隔离邮件。如果以后要从这个域名正式发信，就需要重新检查 SPF、DKIM、DMARC 的整体策略，不能只沿用这条记录。&lt;/p&gt;
&lt;p&gt;第五步，真实测试。&lt;/p&gt;
&lt;p&gt;不要只看控制台状态。建议从另一个邮箱发一封测试邮件到一个新的地址，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;test-20260701-a1b2@993216.xyz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认个人邮箱能收到后，再认为链路闭环。也可以用 PowerShell 做 DNS 自检：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Resolve-DnsName 993216.xyz -Type MX
Resolve-DnsName 993216.xyz -Type TXT
Resolve-DnsName _dmarc.993216.xyz -Type TXT
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cloudflare 官方文档提示，DNS 变更全局传播最多可能需要 24 小时；如果域名使用 Cloudflare DNS，通常会在几分钟到十几分钟内完成。刚配置完收不到邮件时，不要立刻反复乱改，先确认目的邮箱验证、路由规则状态和 MX 记录。&lt;/p&gt;
&lt;h2&gt;三、使用说明&lt;/h2&gt;
&lt;p&gt;日常使用时，不需要进入 Cloudflare 创建每一个邮箱地址。直接按用途写一个新的地址即可。&lt;/p&gt;
&lt;p&gt;我建议只使用小写字母、数字、短横线和点号：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;a-z
0-9
-
.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;虽然 Email Routing 支持加号地址这类 subaddressing 能力，但很多网站自己的邮箱校验规则不统一。为了兼容更多网站，日常命名优先用短横线。&lt;/p&gt;
&lt;p&gt;常用命名方式如下。&lt;/p&gt;
&lt;p&gt;长期账号使用稳定别名：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;github-main@993216.xyz
cloudflare-main@993216.xyz
notion-main@993216.xyz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;临时注册使用时间或随机码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;forum-202607@993216.xyz
trial-20260701@993216.xyz
shop-a7k9@993216.xyz
verify-8k3m@993216.xyz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不同邮件类型也可以分开：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;login-github@993216.xyz
notify-cloudflare@993216.xyz
newsletter-tech@993216.xyz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;建议维护一张地址用途表，放在本地笔记、表格或密码管理器备注里：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;服务/用途&lt;/th&gt;
&lt;th&gt;使用邮箱&lt;/th&gt;
&lt;th&gt;创建日期&lt;/th&gt;
&lt;th&gt;重要程度&lt;/th&gt;
&lt;th&gt;状态&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GitHub&lt;/td&gt;
&lt;td&gt;&lt;code&gt;github-main@993216.xyz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2026-07-01&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;使用中&lt;/td&gt;
&lt;td&gt;长期账号&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;临时论坛&lt;/td&gt;
&lt;td&gt;&lt;code&gt;forum-20260701@993216.xyz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2026-07-01&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;td&gt;可废弃&lt;/td&gt;
&lt;td&gt;测试注册&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;购物网站&lt;/td&gt;
&lt;td&gt;&lt;code&gt;shop-a7k9@993216.xyz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2026-07-01&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;使用中&lt;/td&gt;
&lt;td&gt;观察营销邮件&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;如果某个地址开始收到垃圾邮件，处理顺序通常是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;到对应网站更换绑定邮箱。&lt;/li&gt;
&lt;li&gt;在 Cloudflare 中给泄露地址新增 drop 规则。&lt;/li&gt;
&lt;li&gt;在记录表里标记这个地址已泄露或已废弃。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果垃圾邮件不是来自某一个固定地址，而是大量随机地址，可以考虑关闭 catch-all，改成白名单模式：只保留明确配置过的 Routing Rules。这样更严格，但会失去“随手派生任意地址”的便利。&lt;/p&gt;
&lt;p&gt;更换转发目的邮箱时，不要直接删除旧邮箱。先添加新 destination address，完成验证，再把 catch-all 和重要规则改到新邮箱。确认新邮箱能收到测试邮件后，再移除旧目的邮箱。&lt;/p&gt;
&lt;p&gt;收不到邮件时，优先检查这些点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;个人邮箱收件箱、垃圾箱、广告邮件、订阅邮件分类。&lt;/li&gt;
&lt;li&gt;收件地址是否拼错。&lt;/li&gt;
&lt;li&gt;Destination address 是否 verified。&lt;/li&gt;
&lt;li&gt;Catch-all 是否仍为 Active。&lt;/li&gt;
&lt;li&gt;MX 记录是否仍指向 Cloudflare。&lt;/li&gt;
&lt;li&gt;DNS 是否还处在缓存传播期。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这套方案的最佳使用习惯可以概括成一句话：每个服务一个地址，重要服务稳定命名，临时服务可丢弃命名，所有地址都要留一份本地记录。&lt;/p&gt;
&lt;h2&gt;参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.cloudflare.com/email-service/get-started/route-emails/&quot;&gt;Cloudflare: Route emails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.cloudflare.com/email-service/configuration/email-routing-addresses/&quot;&gt;Cloudflare: Email routing rules and addresses&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.cloudflare.com/email-service/platform/limits/&quot;&gt;Cloudflare: Email Service limits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/migrating-to-cloudflare-email-routing/&quot;&gt;Cloudflare Blog: Migrating to Cloudflare Email Routing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://theadminbar.com/free-custom-domain-email-addresses-with-cloudflare-email-forwarding/&quot;&gt;The Admin Bar: Easily Set Up Email Forwarding with Cloudflare Today&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Tools</category><author>Zachary</author></item><item><title>去长春前的行李物品清单与准备事项</title><link>https://blog.993216.xyz/posts/changchun-packing-preparation-checklist/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/changchun-packing-preparation-checklist/</guid><description>整理去长春前需要完成的准备事项和要带的行李物品清单。</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;去长春前的行李物品清单与准备事项&lt;/h1&gt;
&lt;p&gt;出发前按下面逐项勾选。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[ ] 电动车充电。&lt;/li&gt;
&lt;li&gt;[ ] 刮胡子。&lt;/li&gt;
&lt;li&gt;[ ] 收垃圾。&lt;/li&gt;
&lt;li&gt;[ ] 搓澡。&lt;/li&gt;
&lt;li&gt;[ ] 口腔卫生。&lt;/li&gt;
&lt;li&gt;[ ] 剪指甲。&lt;/li&gt;
&lt;li&gt;[ ] 掏耳朵。&lt;/li&gt;
&lt;li&gt;[ ] 洗衣服。&lt;/li&gt;
&lt;li&gt;[ ] 校园网暂停。&lt;/li&gt;
&lt;li&gt;[ ] 关电源。&lt;/li&gt;
&lt;li&gt;[ ] 关门窗。&lt;/li&gt;
&lt;li&gt;[ ] 证件包。&lt;/li&gt;
&lt;li&gt;[ ] 钥匙。&lt;/li&gt;
&lt;li&gt;[ ] 显示器。&lt;/li&gt;
&lt;li&gt;[ ] 显示器支架。&lt;/li&gt;
&lt;li&gt;[ ] 显示器线材。&lt;/li&gt;
&lt;li&gt;[ ] 显示器电源适配器。&lt;/li&gt;
&lt;li&gt;[ ] 鼠标。&lt;/li&gt;
&lt;li&gt;[ ] 鼠标垫。&lt;/li&gt;
&lt;li&gt;[ ] 电动牙刷。&lt;/li&gt;
&lt;li&gt;[ ] 手机。&lt;/li&gt;
&lt;li&gt;[ ] 平板。&lt;/li&gt;
&lt;li&gt;[ ] 电脑。&lt;/li&gt;
&lt;li&gt;[ ] 相机。&lt;/li&gt;
&lt;li&gt;[ ] 各种充电器。&lt;/li&gt;
&lt;li&gt;[ ] 数据线。&lt;/li&gt;
&lt;li&gt;[ ] 充电宝。&lt;/li&gt;
&lt;li&gt;[ ] 吹风机。&lt;/li&gt;
&lt;li&gt;[ ] 蓝牙耳机。&lt;/li&gt;
&lt;li&gt;[ ] 有线耳机。&lt;/li&gt;
&lt;li&gt;[ ] 护肤品。&lt;/li&gt;
&lt;li&gt;[ ] 香水。&lt;/li&gt;
&lt;li&gt;[ ] 蓝皮笔记本。&lt;/li&gt;
&lt;li&gt;[ ] 排插。&lt;/li&gt;
&lt;li&gt;[ ] 硬盘。&lt;/li&gt;
&lt;li&gt;[ ] 干燥剂防潮。&lt;/li&gt;
&lt;li&gt;[ ] 衣服。&lt;/li&gt;
&lt;li&gt;[ ] 内衣。&lt;/li&gt;
&lt;li&gt;[ ] 袜子。&lt;/li&gt;
&lt;li&gt;[ ] 毛巾。&lt;/li&gt;
&lt;li&gt;[ ] 鞋子。&lt;/li&gt;
&lt;li&gt;[ ] 拖鞋。&lt;/li&gt;
&lt;li&gt;[ ] 睡衣。&lt;/li&gt;
&lt;li&gt;[ ] 米诺。&lt;/li&gt;
&lt;li&gt;[ ] 指甲刀。&lt;/li&gt;
&lt;li&gt;[ ] 剃须刀。&lt;/li&gt;
&lt;li&gt;[ ] 创可贴。&lt;/li&gt;
&lt;li&gt;[ ] 安全套。&lt;/li&gt;
&lt;li&gt;[ ] 摄像头探测器。&lt;/li&gt;
&lt;li&gt;[ ] 湿巾。&lt;/li&gt;
&lt;li&gt;[ ] 小包纸。&lt;/li&gt;
&lt;li&gt;[ ] 一次性马桶垫。&lt;/li&gt;
&lt;li&gt;[ ] 雨伞。&lt;/li&gt;
&lt;li&gt;[ ] 驱蚊用品。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>生活</category><author>Zachary</author></item><item><title>Obsidian 使用记录</title><link>https://blog.993216.xyz/posts/obsidian-line-width-tab-settings/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/obsidian-line-width-tab-settings/</guid><description>记录 Obsidian 中控制正文行宽、管理标签页打开行为、整理附件与导出文档的实用设置。</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Obsidian 使用记录&lt;/h1&gt;
&lt;h2&gt;1. 概述&lt;/h2&gt;
&lt;p&gt;这篇笔记整理了 Obsidian 日常使用时更直接有用的本地设置：正文行宽、标签页打开方式、附件目录和文档导出。&lt;/p&gt;
&lt;p&gt;适合的场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;显示器较宽，默认正文区域太窄，想让阅读和编辑区更宽。&lt;/li&gt;
&lt;li&gt;打开笔记时不想总是覆盖当前标签页，想更接近浏览器的多标签体验。&lt;/li&gt;
&lt;li&gt;希望图片附件按笔记归档，减少附件目录混乱。&lt;/li&gt;
&lt;li&gt;需要把 Markdown 笔记导出为 Word、HTML 或其他格式。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 控制 Obsidian 正文行宽&lt;/h2&gt;
&lt;p&gt;Obsidian 的 &lt;code&gt;Readable line length&lt;/code&gt; 会把阅读和编辑区域限制在较窄的宽度。这个默认值适合长时间阅读，但在宽屏上整理表格、代码块、长段落时会显得拥挤。&lt;/p&gt;
&lt;p&gt;最简单的选择是直接关闭它：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开 Obsidian 设置。&lt;/li&gt;
&lt;li&gt;进入 &lt;code&gt;Editor&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;关闭 &lt;code&gt;Readable line length&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你想保留可读行宽机制，但把宽度调大，可以使用 CSS snippet。&lt;/p&gt;
&lt;h3&gt;2.1 添加 CSS snippet&lt;/h3&gt;
&lt;p&gt;在当前 Obsidian 仓库下创建文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.obsidian/snippets/wide-line.css
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;body {
  --file-line-width: 1000px;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后在 Obsidian 中启用：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开 &lt;code&gt;Settings&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;进入 &lt;code&gt;Appearance&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;找到 &lt;code&gt;CSS snippets&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;点击刷新按钮。&lt;/li&gt;
&lt;li&gt;启用 &lt;code&gt;wide-line&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;确认 &lt;code&gt;Editor&lt;/code&gt; 里的 &lt;code&gt;Readable line length&lt;/code&gt; 仍然是开启状态。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这样 Obsidian 仍然按可读行宽逻辑排版，但最大行宽会被放宽到 &lt;code&gt;1000px&lt;/code&gt;。如果你觉得太宽，可以改成 &lt;code&gt;900px&lt;/code&gt;；如果仍然太窄，可以改成 &lt;code&gt;1100px&lt;/code&gt; 或 &lt;code&gt;1200px&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;3. 用 Open Tab Settings 管理标签页行为&lt;/h2&gt;
&lt;p&gt;Obsidian 默认打开文件的方式有时会覆盖当前标签页，或者在多个位置打开同一篇笔记。&lt;code&gt;Open Tab Settings&lt;/code&gt; 这个社区插件可以把标签页行为调得更接近浏览器。&lt;/p&gt;
&lt;p&gt;安装路径：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开 &lt;code&gt;Settings&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;进入 &lt;code&gt;Community plugins&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;关闭安全模式。&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;Browse&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;搜索 &lt;code&gt;Open Tab Settings&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;安装并启用插件。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;建议优先检查这些选项：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Open in new tab by default&lt;/code&gt;：默认在新标签页打开文件，避免覆盖当前正在看的笔记。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Switch to existing tab&lt;/code&gt;：如果目标笔记已经打开，直接切换到已有标签页，避免重复打开同一篇笔记。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;New tab placement&lt;/code&gt;：设置新标签页出现在当前标签旁边，还是追加到末尾。&lt;/li&gt;
&lt;li&gt;分屏相关选项：如果你经常左右分屏，可以按自己的习惯决定是否让新标签页打开到另一侧面板。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我的建议是先开启“默认新标签页打开”和“切换到已有标签页”。这两个选项能解决大多数打开文件时的混乱问题，又不会改变太多工作流。&lt;/p&gt;
&lt;p&gt;社区插件都需要谨慎使用。安装前最好看一下插件维护状态、下载量、最近更新时间和权限说明；如果只是临时测试，建议先在不重要的仓库里试用。&lt;/p&gt;
&lt;h2&gt;4. 管理图片附件目录&lt;/h2&gt;
&lt;p&gt;如果经常截图或粘贴图片，附件很容易散落在笔记同级目录里。更可控的做法是让每篇笔记拥有自己的附件目录。&lt;/p&gt;
&lt;p&gt;可以使用 &lt;code&gt;Custom Attachment Location&lt;/code&gt; 插件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开 &lt;code&gt;Settings&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;进入 &lt;code&gt;Community plugins&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;搜索并安装 &lt;code&gt;Custom Attachment Location&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;启用后进入插件设置。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;附件重命名模式&lt;/code&gt; 下拉框中选择 &lt;code&gt;全部&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;开启 &lt;code&gt;是否重命名附件文件&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;回到 Obsidian &lt;code&gt;设置&lt;/code&gt;，点击 &lt;code&gt;文件与链接&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;关闭 &lt;code&gt;使用 [[Wikilinks]]&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;内部链接类型&lt;/code&gt; 中选择 &lt;code&gt;基于当前笔记的相对路径&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;5. 导出 Word 或 HTML&lt;/h2&gt;
&lt;p&gt;Obsidian 内部写作很方便，但有时交付给别人需要 Word、HTML 或其他格式。可以使用 &lt;code&gt;Enhancing Export&lt;/code&gt; 配合 Pandoc。&lt;/p&gt;
&lt;p&gt;基本步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安装 Pandoc。&lt;/li&gt;
&lt;li&gt;在 Obsidian 社区插件里安装并启用 &lt;code&gt;Enhancing Export&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;在插件设置中填写本机 &lt;code&gt;pandoc.exe&lt;/code&gt; 的实际路径。&lt;/li&gt;
&lt;li&gt;打开要导出的笔记。&lt;/li&gt;
&lt;li&gt;通过右键菜单或命令面板执行导出。&lt;/li&gt;
&lt;li&gt;打开导出文件，检查标题、正文、图片、表格和公式是否完整。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;导出前要注意：图片路径、内部链接、表格和数学公式最容易出问题。正式交付前一定要打开结果文件人工检查。&lt;/p&gt;
&lt;h2&gt;6. 其他可能有帮助的功能&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Git/Github 同步：可以用 Git 插件配合 Github 做云备份和多端同步，但要注意冲突处理、凭据安全和私有仓库权限。&lt;/li&gt;
&lt;li&gt;标签：适合按主题、状态或用途给笔记补充轻量分类。&lt;/li&gt;
&lt;li&gt;模板：适合固定会议记录、读书笔记、教程笔记等重复结构。&lt;/li&gt;
&lt;li&gt;双向链接：适合把相关概念互相连接，后续回看时更容易发现上下文。&lt;/li&gt;
&lt;li&gt;知识图谱：适合快速观察笔记之间的关联密度，但不建议为了图谱好看而过度添加链接。&lt;/li&gt;
&lt;/ol&gt;
</content:encoded><category>Tools</category><author>Zachary</author></item><item><title>角度与弧度</title><link>https://blog.993216.xyz/posts/angle-radian-basics/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/angle-radian-basics/</guid><description>梳理角度与弧度的定义、换算关系、方向约定，以及在三角函数、微积分和编程中的常见用法。</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;角度与弧度&lt;/h1&gt;
&lt;h2&gt;一、基本概念&lt;/h2&gt;
&lt;h3&gt;1. 角、角度与弧度&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;角：描述旋转、方向差和相位差的量。“角度”和“弧度”是表示同一类量的两种单位。&lt;/li&gt;
&lt;li&gt;角度：把一整圈分为 $360$ 份，每一份为 $1^\circ$。BIPM 将度列为可与 SI 一起使用的非 SI 单位，并给出 $1^\circ = \frac{\pi}{180},\mathrm{rad}$。[1]&lt;/li&gt;
&lt;li&gt;弧度：圆心角所对弧长 $s$ 与半径 $r$ 的比值：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;$$
\theta = \frac{s}{r}
$$&lt;/p&gt;
&lt;p&gt;当弧长正好等于半径时，圆心角为 $1,\mathrm{rad}$。一整圈的弧长是 $2\pi r$，所以一整圈是 $2\pi,\mathrm{rad}$，也就是 $360^\circ$。[1][3]
SI 中弧度可视作量纲为一的特殊名称，但在工程表达里保留 $\mathrm{rad}$ 能避免把角、比例和纯数混淆。
学习和使用的过程中要注意区分两者，例如弧长和面积公式中 $\theta$ 为弧度。&lt;/p&gt;
&lt;h3&gt;2. 为什么弧度更自然&lt;/h3&gt;
&lt;p&gt;弧度把“转了多少角”直接变成“单位半径上走了多长弧”。因此在半径为 $r$ 的圆中，只要 $\theta$ 用弧度表示，就有：&lt;/p&gt;
&lt;p&gt;$$
s = r\theta,\qquad A = \frac{1}{2}r^2\theta
$$&lt;/p&gt;
&lt;p&gt;其中 $s$ 是弧长，$A$ 是扇形面积。OpenStax 对弧长和扇形面积都强调：这些简洁公式要求角度量以弧度表示。[3]&lt;/p&gt;
&lt;p&gt;在单位圆 $r = 1$ 上，弧长数值等于弧度数，点的坐标可写为：&lt;/p&gt;
&lt;p&gt;$$
(x,y) = (\cos\theta,\sin\theta)
$$&lt;/p&gt;
&lt;p&gt;这也是三角函数、圆周运动和相位分析常用弧度的根本原因。[4]&lt;/p&gt;
&lt;h2&gt;二、换算关系&lt;/h2&gt;
&lt;p&gt;核心等式是：&lt;/p&gt;
&lt;p&gt;$$
360^\circ = 2\pi,\mathrm{rad},\qquad 180^\circ = \pi,\mathrm{rad}
$$&lt;/p&gt;
&lt;p&gt;由此得到：&lt;/p&gt;
&lt;p&gt;$$
\theta_{\mathrm{rad}} = \theta_{\mathrm{deg}}\cdot\frac{\pi}{180}
$$&lt;/p&gt;
&lt;p&gt;$$
\theta_{\mathrm{deg}} = \theta_{\mathrm{rad}}\cdot\frac{180}{\pi}
$$&lt;/p&gt;
&lt;p&gt;常用换算：&lt;/p&gt;
&lt;p&gt;&amp;lt;div style=&quot;display: flex; justify-content: center; margin: 1em 0 1.25em;&quot;&amp;gt;
&amp;lt;table style=&quot;border-collapse: collapse; min-width: 420px; font-size: 1.12em; line-height: 1.6; text-align: center;&quot;&amp;gt;
&amp;lt;thead&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;th style=&quot;border: 1px solid #ddd; padding: 8px 18px; background: #f7f7f7;&quot;&amp;gt;度数&amp;lt;/th&amp;gt;
&amp;lt;th style=&quot;border: 1px solid #ddd; padding: 8px 18px; background: #f7f7f7;&quot;&amp;gt;弧度&amp;lt;/th&amp;gt;
&amp;lt;th style=&quot;border: 1px solid #ddd; padding: 8px 18px; background: #f7f7f7;&quot;&amp;gt;说明&amp;lt;/th&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;/thead&amp;gt;
&amp;lt;tbody&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;0°&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;0&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px; text-align: left;&quot;&amp;gt;零角&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;30°&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;π/6&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px; text-align: left;&quot;&amp;gt;常见特殊角&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;45°&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;π/4&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px; text-align: left;&quot;&amp;gt;常见特殊角&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;60°&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;π/3&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px; text-align: left;&quot;&amp;gt;常见特殊角&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;90°&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;π/2&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px; text-align: left;&quot;&amp;gt;直角&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;180°&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;π&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px; text-align: left;&quot;&amp;gt;平角&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;270°&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;3π/2&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px; text-align: left;&quot;&amp;gt;四分之三圈&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;360°&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px;&quot;&amp;gt;2π&amp;lt;/td&amp;gt;
&amp;lt;td style=&quot;border: 1px solid #ddd; padding: 8px 18px; text-align: left;&quot;&amp;gt;一整圈&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;近似值：&lt;/p&gt;
&lt;p&gt;$$
1,\mathrm{rad} \approx 57.2957795^\circ
$$&lt;/p&gt;
&lt;p&gt;$$
1^\circ \approx 0.0174533,\mathrm{rad}
$$&lt;/p&gt;
&lt;h2&gt;三、角度方向与等价角&lt;/h2&gt;
&lt;p&gt;数学中的标准约定通常是：从正 $x$ 轴出发，逆时针为正、顺时针为负。超过一整圈的角可以通过加减整圈得到等价角：&lt;/p&gt;
&lt;p&gt;$$
\theta_{\mathrm{rad}} \sim \theta_{\mathrm{rad}} + 2\pi n,\qquad n\in\mathbb{Z}
$$&lt;/p&gt;
&lt;p&gt;$$
\theta_{\mathrm{deg}} \sim \theta_{\mathrm{deg}} + 360n^\circ,\qquad n\in\mathbb{Z}
$$&lt;/p&gt;
&lt;p&gt;实际工程中要注意坐标约定。地震学、测量和地图方位常用方位角，通常从北方向起算并按顺时针增大；数学单位圆常从正 $x$ 轴起算并按逆时针增大。二者不能只做单位换算，还要确认零方向和正方向。&lt;/p&gt;
&lt;h2&gt;四、三角函数与微积分中的弧度&lt;/h2&gt;
&lt;p&gt;三角函数本质上可以用单位圆定义：角 $\theta$ 对应单位圆上的一点，$\cos\theta$ 是 $x$ 坐标，$\sin\theta$ 是 $y$ 坐标。[4]&lt;/p&gt;
&lt;p&gt;弧度的重要优势是它让微积分公式保持最简洁。例如：&lt;/p&gt;
&lt;p&gt;$$
\frac{d}{dx}\sin x = \cos x
$$&lt;/p&gt;
&lt;p&gt;$$
\frac{d}{dx}\cos x = -\sin x
$$&lt;/p&gt;
&lt;p&gt;$$
\sin x \approx x \qquad (x\to 0,\ x\text{ 用弧度})
$$&lt;/p&gt;
&lt;p&gt;如果 $x$ 用度表示，导数和小角近似里都会额外出现 $\pi/180$ 或 $180/\pi$ 的比例因子。这就是数学、物理和信号处理公式中默认用弧度的原因。&lt;/p&gt;
&lt;h2&gt;五、编程中的常见规则&lt;/h2&gt;
&lt;p&gt;多数语言的标准数学库把三角函数输入解释为弧度。以 Python 官方 &lt;code&gt;math&lt;/code&gt; 模块为例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;math.sin(x)&lt;/code&gt;、&lt;code&gt;math.cos(x)&lt;/code&gt;、&lt;code&gt;math.tan(x)&lt;/code&gt; 的 &lt;code&gt;x&lt;/code&gt; 是弧度；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;math.radians(x)&lt;/code&gt; 将度转换为弧度；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;math.degrees(x)&lt;/code&gt; 将弧度转换为度；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;math.atan2(y, x)&lt;/code&gt; 返回弧度，并利用 &lt;code&gt;x&lt;/code&gt;、&lt;code&gt;y&lt;/code&gt; 的符号判断象限。[5]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import math

angle_deg = 30
angle_rad = math.radians(angle_deg)

print(math.sin(angle_rad))      # 0.5
print(math.degrees(math.pi/2))  # 90.0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;常见错误是把度数直接传给三角函数：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;math.sin(30)                 # 这里的 30 是 30 rad，不是 30°
math.sin(math.radians(30))   # 这里才是 sin(30°)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;集中引用与链接&lt;/h2&gt;
&lt;p&gt;[1] BIPM. &lt;em&gt;The International System of Units (SI), 9th edition, version 4.01&lt;/em&gt;. 2026. https://www.bipm.org/documents/20126/41483022/SI-Brochure-9-EN.pdf&lt;/p&gt;
&lt;p&gt;[2] NIST. &lt;em&gt;Guide to the SI, Chapter 4: The Two Classes of SI Units and the SI Prefixes&lt;/em&gt;. https://www.nist.gov/pml/special-publication-811/nist-guide-si-chapter-4-two-classes-si-units-and-si-prefixes&lt;/p&gt;
&lt;p&gt;[3] OpenStax. &lt;em&gt;Precalculus 2e, 5.1 Angles&lt;/em&gt;. https://openstax.org/books/precalculus-2e/pages/5-1-angles&lt;/p&gt;
&lt;p&gt;[4] OpenStax. &lt;em&gt;Precalculus 2e, 5.2 Unit Circle: Sine and Cosine Functions&lt;/em&gt;. https://openstax.org/books/precalculus-2e/pages/5-2-unit-circle-sine-and-cosine-functions&lt;/p&gt;
&lt;p&gt;[5] Python Software Foundation. &lt;em&gt;math — Mathematical functions&lt;/em&gt;. https://docs.python.org/3/library/math.html&lt;/p&gt;
&lt;p&gt;[6] 彬彬侠. &lt;em&gt;弧度和角度&lt;/em&gt;. CSDN，访问于 2026-06-11. https://blog.csdn.net/u013172930/article/details/142977671&lt;/p&gt;
</content:encoded><category>地震学基础</category><author>Zachary</author></item><item><title>地震波基础概念与公式推导</title><link>https://blog.993216.xyz/posts/seismic-wave-basics-formula-derivations/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/seismic-wave-basics-formula-derivations/</guid><description>梳理地震波的振幅、频率、波长、相速度、群速度、P/S 波、面波频散及常用观测公式。</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;地震波基础概念与公式推导&lt;/h1&gt;
&lt;h2&gt;总览&lt;/h2&gt;
&lt;p&gt;地震波可以先看作弹性介质中的机械波：用振幅描述“动得多大”，用周期、频率、角频率描述“时间上振动多快”，用波长、波数描述“空间上变化多快”，用相位追踪波峰波谷的位置。相速度描述单一相位面的传播速度，群速度描述波包或能量包络的传播速度；在均匀非频散介质中二者相等，在层状地球的面波中通常不同。[1-6]&lt;/p&gt;
&lt;h2&gt;一、核心符号与物理意义&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;符号&lt;/th&gt;
&lt;th&gt;名称&lt;/th&gt;
&lt;th&gt;常用单位&lt;/th&gt;
&lt;th&gt;定义或物理意义&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$u(x,t)$&lt;/td&gt;
&lt;td&gt;位移/波场&lt;/td&gt;
&lt;td&gt;m, m/s, counts 等&lt;/td&gt;
&lt;td&gt;地震仪记录的地面运动或理论位移场，具体单位取决于是否去仪器响应。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$A$&lt;/td&gt;
&lt;td&gt;振幅&lt;/td&gt;
&lt;td&gt;同 $u$&lt;/td&gt;
&lt;td&gt;离平衡位置的最大偏移；能量通常与振幅平方相关。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$T$&lt;/td&gt;
&lt;td&gt;周期&lt;/td&gt;
&lt;td&gt;s&lt;/td&gt;
&lt;td&gt;完成一次振动所需时间。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$f$&lt;/td&gt;
&lt;td&gt;频率&lt;/td&gt;
&lt;td&gt;Hz = s^-1&lt;/td&gt;
&lt;td&gt;每秒振动次数，$f=1/T$。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\omega$&lt;/td&gt;
&lt;td&gt;角频率&lt;/td&gt;
&lt;td&gt;rad/s&lt;/td&gt;
&lt;td&gt;相位随时间变化的速率，$\omega=2\pi f=2\pi/T$。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\lambda$&lt;/td&gt;
&lt;td&gt;波长&lt;/td&gt;
&lt;td&gt;m 或 km&lt;/td&gt;
&lt;td&gt;相邻同相点，例如两个相邻波峰，之间的距离。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$k$&lt;/td&gt;
&lt;td&gt;角波数&lt;/td&gt;
&lt;td&gt;rad/m 或 rad/km&lt;/td&gt;
&lt;td&gt;相位随空间变化的速率，$k=2\pi/\lambda$。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\nu$ 或 $1/\lambda$&lt;/td&gt;
&lt;td&gt;普通波数&lt;/td&gt;
&lt;td&gt;cycles/m&lt;/td&gt;
&lt;td&gt;每单位长度包含多少个波长；注意它比角波数少一个 $2\pi$。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\phi$&lt;/td&gt;
&lt;td&gt;相位&lt;/td&gt;
&lt;td&gt;rad&lt;/td&gt;
&lt;td&gt;标记波形在一个周期内走到哪里。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$c$ 或 $v_p$&lt;/td&gt;
&lt;td&gt;相速度&lt;/td&gt;
&lt;td&gt;m/s 或 km/s&lt;/td&gt;
&lt;td&gt;固定相位点，如波峰，沿传播方向移动的速度。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$U$ 或 $v_g$&lt;/td&gt;
&lt;td&gt;群速度&lt;/td&gt;
&lt;td&gt;m/s 或 km/s&lt;/td&gt;
&lt;td&gt;波包包络、能量集中区域或窄带信号到时对应的速度。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$s$&lt;/td&gt;
&lt;td&gt;慢度&lt;/td&gt;
&lt;td&gt;s/m 或 s/km&lt;/td&gt;
&lt;td&gt;速度倒数，$s=1/c$。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$p$&lt;/td&gt;
&lt;td&gt;射线参数/水平慢度&lt;/td&gt;
&lt;td&gt;s/km&lt;/td&gt;
&lt;td&gt;层状介质中常写作 $p=\sin i/v$，沿射线路径保持不变。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;说明：地震学文献常用 $c$ 表示面波相速度，用 $U$ 表示群速度；也常用 $\alpha$ 和 $\beta$ 分别表示 P 波、S 波速度。本文为便于阅读，公式尽量使用希腊字母和常用数学符号。&lt;/p&gt;
&lt;h2&gt;二、从简谐行波建立概念&lt;/h2&gt;
&lt;p&gt;一维向 $+x$ 方向传播的简谐波可写成&lt;/p&gt;
&lt;p&gt;$$
u(x,t)=A\cos(kx-\omega t+\phi_0)
$$&lt;/p&gt;
&lt;p&gt;其中&lt;/p&gt;
&lt;p&gt;$$
\phi(x,t)=kx-\omega t+\phi_0
$$&lt;/p&gt;
&lt;p&gt;称为相位。相位不是“到时”，而是一个角度变量；相差 $2\pi$ 的两个点物理状态相同。例如波峰可由&lt;/p&gt;
&lt;p&gt;$$
\phi(x,t)=2\pi n,\quad n\in\mathbb{Z}
$$&lt;/p&gt;
&lt;p&gt;描述。[1]&lt;/p&gt;
&lt;p&gt;$u(x,t)=A\cos(kx-\omega t+\phi_0)$ 的负号表示向 $+x$ 方向传播（可以想象对于某个固定相位，随着 $t$ 增大 $x$ 也增大），也有写 $u(x,t)=A\cos(\omega t-kx+\phi)$ 的，由于余弦函数是偶函数，所以本质上是相同的。&lt;/p&gt;
&lt;h3&gt;1. 周期、频率、角频率&lt;/h3&gt;
&lt;p&gt;固定空间位置 $x$，让时间增加一个周期 $T$ 后，波形应回到同一状态：每秒变化量 × 一个周期的秒数 = 一个完整循环的相位变化
这里的 $2\pi$ 单位是弧度，有时候 $2\pi$ 单位可能是 s，要注意区分。&lt;/p&gt;
&lt;p&gt;$$
\omega T=2\pi
$$&lt;/p&gt;
&lt;p&gt;因此&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
T&amp;amp;=\frac{2\pi}{\omega}\
f&amp;amp;=\frac{1}{T}\
\omega&amp;amp;=2\pi f
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;频率是“每秒几个周期”，角频率是“每秒扫过多少弧度”。二者只差 $2\pi$，但在傅里叶变换、相位和频散公式中常用 $\omega$。[1,2]&lt;/p&gt;
&lt;h3&gt;2. 波长、波数、角波数&lt;/h3&gt;
&lt;p&gt;固定时间 $t$，空间上相邻两个同相点之间的距离是波长 $\lambda$。同相要求&lt;/p&gt;
&lt;p&gt;$$
k\lambda=2\pi
$$&lt;/p&gt;
&lt;p&gt;所以&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\lambda&amp;amp;=\frac{2\pi}{k}\
k&amp;amp;=\frac{2\pi}{\lambda}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;普通波数有时写作 $1/\lambda$，单位是 cycles/km；角波数 $k$ 的单位是 rad/km。看到“wavenumber”时要先确认作者使用的是哪一种定义。[1]&lt;/p&gt;
&lt;h3&gt;3. 速度、波长和频率的基本关系&lt;/h3&gt;
&lt;p&gt;如果某一频率成分以相速度 $c$ 传播，则&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
c&amp;amp;=\frac{\lambda}{T}=\lambda f=\frac{\omega}{k}\
\lambda&amp;amp;=cT=\frac{c}{f}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;这个关系对单一频率成分成立。对于频散波，$c$ 本身依赖频率或周期，因此不能把一个固定速度套到所有频率上。[1,2]&lt;/p&gt;
&lt;h2&gt;三、相速度：固定相位面的传播速度&lt;/h2&gt;
&lt;p&gt;相速度的定义来自“相位不变”。取&lt;/p&gt;
&lt;p&gt;$$
\phi=kx-\omega t+\phi_0=\text{常数}
$$&lt;/p&gt;
&lt;p&gt;对时间求导：&lt;/p&gt;
&lt;p&gt;$$
k\frac{dx}{dt}-\omega=0
$$&lt;/p&gt;
&lt;p&gt;得到&lt;/p&gt;
&lt;p&gt;$$
c=\frac{dx}{dt}=\frac{\omega}{k}
$$&lt;/p&gt;
&lt;p&gt;这说明相速度是波峰、波谷或任意固定相位点的移动速度。若波写成 $\cos(kx+\omega t)$，则固定相位要求 $dx/dt=-\omega/k$，表示向 $-x$ 方向传播。[1]&lt;/p&gt;
&lt;h3&gt;由一维波动方程得到相速度&lt;/h3&gt;
&lt;p&gt;线性一维波动方程可写作&lt;/p&gt;
&lt;p&gt;$$
\frac{\partial^2 u}{\partial t^2}=c^2\frac{\partial^2 u}{\partial x^2}
$$&lt;/p&gt;
&lt;p&gt;令&lt;/p&gt;
&lt;p&gt;$$
u(x,t)=A\exp\left[i(kx-\omega t)\right]
$$&lt;/p&gt;
&lt;p&gt;代入可得&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
-\omega^2 A\exp\left[i(kx-\omega t)\right]
&amp;amp;=c^2(-k^2)A\exp\left[i(kx-\omega t)\right]
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;约去公共因子：&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\omega^2&amp;amp;=c^2k^2\
\omega&amp;amp;=ck\
c&amp;amp;=\frac{\omega}{k}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;这就是非频散介质的频散关系：$\omega$ 与 $k$ 成正比，所有频率成分速度相同，波形传播时不展宽。[1,3]&lt;/p&gt;
&lt;h2&gt;四、群速度：波包包络或能量集中区的传播速度&lt;/h2&gt;
&lt;p&gt;真实地震记录不是无限长的单频正弦波，而是有限持续时间的波包。最简单的推导从两个频率、波数很接近的波开始：&lt;/p&gt;
&lt;p&gt;$$
u=\cos(k_1 x-\omega_1 t)+\cos(k_2 x-\omega_2 t)
$$&lt;/p&gt;
&lt;p&gt;用三角恒等式合并：&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
u&amp;amp;=2\cos\left(\frac{\Delta k,x-\Delta\omega,t}{2}\right)\
&amp;amp;\quad\times\cos(\bar{k}x-\bar{\omega}t)
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;这里使用的三角恒等式是：&lt;/p&gt;
&lt;p&gt;$$
\cos A+\cos B=2\cos\left(\frac{A-B}{2}\right)\cos\left(\frac{A+B}{2}\right)
$$&lt;/p&gt;
&lt;p&gt;其中&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\bar{k}&amp;amp;=\frac{k_1+k_2}{2}\
\bar{\omega}&amp;amp;=\frac{\omega_1+\omega_2}{2}\
\Delta k&amp;amp;=k_2-k_1\
\Delta\omega&amp;amp;=\omega_2-\omega_1
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;第二个余弦项是快速振动的“载波”，按相速度&lt;/p&gt;
&lt;p&gt;$$
c=\frac{\bar{\omega}}{\bar{k}}
$$&lt;/p&gt;
&lt;p&gt;移动；第一个余弦项是慢变化的包络，固定包络相位：&lt;/p&gt;
&lt;p&gt;$$
\Delta k,x-\Delta\omega,t=\text{常数}
$$&lt;/p&gt;
&lt;p&gt;得到包络速度：&lt;/p&gt;
&lt;p&gt;$$
U=\frac{dx}{dt}=\frac{\Delta\omega}{\Delta k}
$$&lt;/p&gt;
&lt;p&gt;当两个频率无限接近时：&lt;/p&gt;
&lt;p&gt;$$
U=\frac{d\omega}{dk}
$$&lt;/p&gt;
&lt;p&gt;这就是群速度。MIT 的波动公开课和地震学公开课都用这一关系解释波包与面波频散。[3,4]&lt;/p&gt;
&lt;h3&gt;群速度与相速度的关系&lt;/h3&gt;
&lt;p&gt;设某一模式的相速度是波数的函数：&lt;/p&gt;
&lt;p&gt;$$
\omega=c(k)k
$$&lt;/p&gt;
&lt;p&gt;则&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
U&amp;amp;=\frac{d\omega}{dk}\
&amp;amp;=\frac{d[c(k)k]}{dk}\
&amp;amp;=c+k\frac{dc}{dk}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;又因为&lt;/p&gt;
&lt;p&gt;$$
k=\frac{2\pi}{\lambda}
$$&lt;/p&gt;
&lt;p&gt;有&lt;/p&gt;
&lt;p&gt;$$
U=c-\lambda\frac{dc}{d\lambda}
$$&lt;/p&gt;
&lt;p&gt;如果写成频率形式，$k=\omega/c(\omega)$，则&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\frac{dk}{d\omega}&amp;amp;=\frac{c-\omega\frac{dc}{d\omega}}{c^2}\
U&amp;amp;=\frac{d\omega}{dk}\
&amp;amp;=\frac{c^2}{c-\omega\frac{dc}{d\omega}}\
&amp;amp;=\frac{c}{1-\frac{\omega}{c}\frac{dc}{d\omega}}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;若写成周期形式，因为 $\omega=2\pi/T$：&lt;/p&gt;
&lt;p&gt;$$
U=\frac{c}{1+\frac{T}{c}\frac{dc}{dT}}
$$&lt;/p&gt;
&lt;p&gt;几个重要结论：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;非频散介质中 $dc/dk=0$，所以 $U=c$。&lt;/li&gt;
&lt;li&gt;频散介质中 $U$ 与 $c$ 通常不同。&lt;/li&gt;
&lt;li&gt;群速度与相速度不是两个互相替代的名字；它们对应不同观测对象：相位点与波包包络。[4-6]&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;五、地震波中的 P 波、S 波、面波&lt;/h2&gt;
&lt;p&gt;IRIS/EarthScope 的教学资料把地震波概括为三类基本波动：穿过地球内部传播的 P 波和 S 波，以及沿地表或界面附近传播的面波，面波主要包括 Rayleigh 波和 Love 波。[7]&lt;/p&gt;
&lt;h3&gt;1. P 波与 S 波&lt;/h3&gt;
&lt;p&gt;在均匀各向同性弹性介质中，弹性波动方程可分解为体积胀缩项和旋转剪切项。MIT 地球物理公开课把它们对应为 P 波和 S 波，并给出速度：[8]&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\alpha&amp;amp;=\sqrt{\frac{\lambda_L+2\mu}{\rho}}\
\beta&amp;amp;=\sqrt{\frac{\mu}{\rho}}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;也常用体积模量 $K$ 表示 P 波速度：&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\alpha&amp;amp;=\sqrt{\frac{K+\frac{4}{3}\mu}{\rho}}\
\beta&amp;amp;=\sqrt{\frac{\mu}{\rho}}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\alpha$：P 波速度；&lt;/li&gt;
&lt;li&gt;$\beta$：S 波速度；&lt;/li&gt;
&lt;li&gt;$\lambda_L$：Lamé 第一参数，避免与波长 $\lambda$ 混淆；&lt;/li&gt;
&lt;li&gt;$\mu$：剪切模量；&lt;/li&gt;
&lt;li&gt;$K$：体积模量；&lt;/li&gt;
&lt;li&gt;$\rho$：密度。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因为稳定弹性介质通常满足 $K&amp;gt;0$、$\mu\ge 0$，所以 P 波通常快于 S 波。液体几乎不能支撑静态剪切应力，$\mu$ 近似为 0，因此 S 波不能在液态外核中传播，这是利用地震波判断地球内部物态的关键证据之一。[8,9]&lt;/p&gt;
&lt;h3&gt;2. Rayleigh 波与 Love 波&lt;/h3&gt;
&lt;p&gt;Rayleigh 波和 Love 波沿地表或近地表结构传播，能量随深度衰减。层状介质中的面波速度依赖频率或周期，因此常表现出明显频散：不同周期的波以不同相速度和群速度传播。[5,6]&lt;/p&gt;
&lt;p&gt;面波频散在地震学中极重要，因为不同周期的面波对不同深度敏感。粗略说，短周期、短波长更敏感于浅部结构；长周期、长波长能采样更深的地壳和上地幔。但这只是尺度判断，实际敏感深度还取决于波型、模式、速度结构、阵列孔径和反演方法。[4-6]&lt;/p&gt;
&lt;h2&gt;六、频散：为什么相速度和群速度会不同&lt;/h2&gt;
&lt;p&gt;频散关系是 $\omega$ 与 $k$ 的关系：&lt;/p&gt;
&lt;p&gt;$$
\omega=\omega(k)
$$&lt;/p&gt;
&lt;p&gt;若&lt;/p&gt;
&lt;p&gt;$$
\omega=ck,\quad c=\text{常数}
$$&lt;/p&gt;
&lt;p&gt;则所有频率成分以同一速度传播，波形不展宽，称为非频散。均匀无限弹性介质中的理想 P 波、S 波在该意义下可近似看作非频散。&lt;/p&gt;
&lt;p&gt;若 $\omega(k)$ 不是直线，或者相速度 $c=\omega/k$ 随频率、周期或波长改变，则不同频率成分走得不同快，波包会拉长或变形，称为频散。层状地球中的 Rayleigh 波、Love 波通常是频散的。ANU 地震学课程明确指出 Love 波的相速度可以写成频率的隐式函数，因此会出现频散；MIT 地震学课程也用群速度曲线解释面波能量包传播。[5,6]&lt;/p&gt;
&lt;h2&gt;七、地震记录中如何测量这些量&lt;/h2&gt;
&lt;h3&gt;1. 从时间域读周期和频率&lt;/h3&gt;
&lt;p&gt;在一条窄带近似的地震波形上，可以用相邻波峰间隔估计周期：&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
T&amp;amp;=t_{n+1}-t_n\
f&amp;amp;=\frac{1}{T}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;但真实地震记录常是多频率叠加，直接数波峰容易受噪声、多个模式和相位跳变影响。因此研究中通常先滤波，或转到频率域分析振幅谱与相位谱。USGS 将 spectrum 描述为振幅和相位随频率或周期变化的曲线，这正是地震信号处理中“频率含量”的基本表达方式。[10]&lt;/p&gt;
&lt;h3&gt;2. 由波包到时估计群速度&lt;/h3&gt;
&lt;p&gt;若震源到台站的路径长度为 $L$，某一窄带滤波后的波包峰值到时为 $t_g$，则群速度近似为&lt;/p&gt;
&lt;p&gt;$$
U(T)=\frac{L}{t_g(T)}
$$&lt;/p&gt;
&lt;p&gt;面波群速度频散分析就是对不同中心周期滤波，拾取各周期波包到时，得到 $U(T)$ 曲线。MIT 地震学课程指出，窄带滤波可隔离特定中心频率的波包，并用路径长度除以观测走时得到该频率的群速度。[4]&lt;/p&gt;
&lt;h3&gt;3. 由相位差估计相速度&lt;/h3&gt;
&lt;p&gt;两台站间距或路径长度为 $L$，某一角频率 $\omega$ 的相位差为 $\Delta\phi$，理论上&lt;/p&gt;
&lt;p&gt;$$
kL=\Delta\phi+2\pi n
$$&lt;/p&gt;
&lt;p&gt;所以&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
k&amp;amp;=\frac{\Delta\phi+2\pi n}{L}\
c(\omega)&amp;amp;=\frac{\omega}{k}\
&amp;amp;=\frac{\omega L}{\Delta\phi+2\pi n}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;其中 $n$ 是整数，代表 $2\pi$ 周期模糊。相速度测量的一个核心难点就是选对 $n$，否则会发生 cycle skipping。长路径、大台距、低信噪比、多模式叠加和横向非均匀都会增加相位解缠难度。&lt;/p&gt;
&lt;h3&gt;4. 阵列中的波数和慢度&lt;/h3&gt;
&lt;p&gt;平面波在二维台阵中可写成&lt;/p&gt;
&lt;p&gt;$$
u(x,y,t)=A\exp\left[i(k_x x+k_y y-\omega t)\right]
$$&lt;/p&gt;
&lt;p&gt;波数向量为&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\mathbf{k}&amp;amp;=(k_x,k_y)\
|\mathbf{k}|&amp;amp;=\sqrt{k_x^2+k_y^2}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;相速度为&lt;/p&gt;
&lt;p&gt;$$
c=\frac{\omega}{|\mathbf{k}|}
$$&lt;/p&gt;
&lt;p&gt;慢度向量为&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\mathbf{s}&amp;amp;=\frac{\mathbf{k}}{\omega}\
|\mathbf{s}|&amp;amp;=\frac{1}{c}
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;这就是频率-波数分析、波束形成和阵列慢度估计的基本联系。地震学中也常用射线参数 $p$ 表示水平慢度；在水平层状介质中，Snell 定律给出&lt;/p&gt;
&lt;p&gt;$$
p=\frac{\sin i}{v}
$$&lt;/p&gt;
&lt;p&gt;并沿射线路径保持不变。[8]&lt;/p&gt;
&lt;h2&gt;八、常见推导汇总&lt;/h2&gt;
&lt;h3&gt;1. 基本换算&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
f&amp;amp;=\frac{1}{T}\
\omega&amp;amp;=2\pi f=\frac{2\pi}{T}\
k&amp;amp;=\frac{2\pi}{\lambda}\
c&amp;amp;=\frac{\lambda}{T}=\lambda f=\frac{\omega}{k}
\end{aligned}
$$&lt;/p&gt;
&lt;h3&gt;2. 相速度&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
\phi&amp;amp;=kx-\omega t+\phi_0=\text{常数}\
\frac{d\phi}{dt}&amp;amp;=k\frac{dx}{dt}-\omega=0\
c&amp;amp;=\frac{dx}{dt}=\frac{\omega}{k}
\end{aligned}
$$&lt;/p&gt;
&lt;h3&gt;3. 群速度&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
U&amp;amp;=\frac{d\omega}{dk}\
\omega&amp;amp;=c(k)k\
U&amp;amp;=c+k\frac{dc}{dk}\
U&amp;amp;=c-\lambda\frac{dc}{d\lambda}\
U&amp;amp;=\frac{c}{1-\frac{\omega}{c}\frac{dc}{d\omega}}\
U&amp;amp;=\frac{c}{1+\frac{T}{c}\frac{dc}{dT}}
\end{aligned}
$$&lt;/p&gt;
&lt;h3&gt;4. 弹性体波速度&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
\text{P wave:}\quad \alpha&amp;amp;=\sqrt{\frac{\lambda_L+2\mu}{\rho}}\
&amp;amp;=\sqrt{\frac{K+\frac{4}{3}\mu}{\rho}}\[4pt]
\text{S wave:}\quad \beta&amp;amp;=\sqrt{\frac{\mu}{\rho}}
\end{aligned}
$$&lt;/p&gt;
&lt;h3&gt;5. 相速度观测公式&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
k&amp;amp;=\frac{\Delta\phi+2\pi n}{L}\
c(\omega)&amp;amp;=\frac{\omega L}{\Delta\phi+2\pi n}
\end{aligned}
$$&lt;/p&gt;
&lt;h3&gt;6. 群速度观测公式&lt;/h3&gt;
&lt;p&gt;$$
U(T)=\frac{L}{t_g(T)}
$$&lt;/p&gt;
&lt;h2&gt;九、容易混淆的点&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;频率和角频率不是同一个量。&lt;/strong&gt; $f$ 的单位是 Hz，$\omega$ 的单位是 rad/s；公式中漏掉 $2\pi$ 会导致速度、波数或相位错误。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;波数也有两套习惯。&lt;/strong&gt; 地震学和物理推导多用角波数 $k=2\pi/\lambda$；有些工程语境用 $1/\lambda$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;相速度不是质点运动速度。&lt;/strong&gt; 地震仪记录的地面质点在局部振动，相速度描述波形相位在空间中的传播。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;群速度不总等于能量速度，但在常规弱耗散、窄带面波分析中常被用作能量包络速度。&lt;/strong&gt; 强衰减、强散射、多模式混合时要谨慎解释。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$\lambda=cT$ 中的 $c$ 应是该周期对应的相速度。&lt;/strong&gt; 对频散面波，不能用一个固定速度换算所有周期的波长。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;短周期更浅、长周期更深只是经验方向。&lt;/strong&gt; 真正的深度敏感性要看灵敏度核，而不只看波长。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;相位差只能确定到 $2\pi$ 的整数倍。&lt;/strong&gt; 相速度曲线看似平滑不代表没有选错周期数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;P/S 波速度公式适用于均匀各向同性弹性近似。&lt;/strong&gt; 实际地球有各向异性、非弹性衰减、孔隙流体、裂隙和尺度效应，速度解释不能只看一个公式。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;十、面向地震学应用的理解路线&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;先把地震记录看作多频率波的叠加：时间域看到到时和波包，频率域看到振幅谱与相位谱。&lt;/li&gt;
&lt;li&gt;用 $T$、$f$、$\omega$、$\lambda$、$k$ 建立时间尺度与空间尺度的换算。&lt;/li&gt;
&lt;li&gt;用相速度追踪相位，用群速度追踪窄带波包。&lt;/li&gt;
&lt;li&gt;对体波，先理解 P 波、S 波速度由弹性模量和密度控制。&lt;/li&gt;
&lt;li&gt;对面波，重点理解层状介质导致频散，因此需要相速度/群速度频散曲线。&lt;/li&gt;
&lt;li&gt;进入成像或反演时，不要只问“测到了速度没有”，还要问：台站几何够不够、频带是否可靠、相位是否解缠、模式是否混合、路径覆盖是否支撑反演。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;检索策略与来源覆盖&lt;/h2&gt;
&lt;p&gt;本次检索使用的核心查询包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;IRIS EarthScope seismic waves P waves S waves surface waves&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenStax mathematics of waves wavelength frequency wavenumber angular frequency&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MIT OCW phase velocity group velocity wave packet&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MIT introduction to seismology phase velocity group velocity dispersion&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;surface wave dispersion phase velocity group velocity seismology lecture notes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;seismology P wave velocity S wave velocity λ μ ρ formula&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;来源覆盖包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;基础波动学教材：OpenStax、MIT 8.03SC；&lt;/li&gt;
&lt;li&gt;地震学公开课程：MIT 12.510、MIT 12.201、ANU PEAT8002；&lt;/li&gt;
&lt;li&gt;机构教学/术语来源：IRIS/EarthScope、USGS；&lt;/li&gt;
&lt;li&gt;地球物理入门材料：GeoSci.xyz / GPG、EPA Environmental Geophysics。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本文没有把通用百科作为控制性引用；个别数值经验也尽量避免写成普适定律。&lt;/p&gt;
&lt;h2&gt;集中引用与链接&lt;/h2&gt;
&lt;p&gt;[1] OpenStax, &lt;em&gt;University Physics Volume 1&lt;/em&gt;, 16.2 “Mathematics of Waves”. https://openstax.org/books/university-physics-volume-1/pages/16-2-mathematics-of-waves&lt;/p&gt;
&lt;p&gt;[2] OpenStax, &lt;em&gt;Physics&lt;/em&gt;, 13.2 “Wave Properties: Speed, Amplitude, Frequency, and Period”. https://openstax.org/books/physics/pages/13-2-wave-properties-speed-amplitude-frequency-and-period&lt;/p&gt;
&lt;p&gt;[3] MIT OpenCourseWare, &lt;em&gt;8.03SC Physics III: Vibrations and Waves&lt;/em&gt;, Chapter 10 “Signals and Fourier Analysis”. https://ocw.mit.edu/courses/8-03sc-physics-iii-vibrations-and-waves-fall-2016/7a86f546565e2180f8f00e86c2ed9982_MIT8_03SCF16_Text_Ch10.pdf&lt;/p&gt;
&lt;p&gt;[4] MIT OpenCourseWare, &lt;em&gt;12.510 Introduction to Seismology&lt;/em&gt;, Lecture 12 PDF, surface waves, phase velocity and group velocity. https://ocw.mit.edu/courses/12-510-introduction-to-seismology-spring-2010/c08aed6151a62870da275f098690bd3d_lec12.pdf&lt;/p&gt;
&lt;p&gt;[5] Australian National University, PEAT8002 Seismology Lecture 5, “Surface waves and dispersion”. https://rses.anu.edu.au/~nick/teachdoc/lecture5.pdf&lt;/p&gt;
&lt;p&gt;[6] GFZ / ETH-style open chapter, “Seismic Wave Propagation and Earth models”, Chapter 2. https://gfzpublic.gfz.de/pubman/item/item_4005_5/component/file_4006/Chapter_2_rev1.pdf&lt;/p&gt;
&lt;p&gt;[7] IRIS/EarthScope, “Seismic Waves: P, S, and Surface”. https://www.iris.edu/hq/inclass/video/seismic_waves_p_s_and_surface&lt;/p&gt;
&lt;p&gt;[8] MIT OpenCourseWare, &lt;em&gt;12.201 Essentials of Geophysics&lt;/em&gt;, Chapter 4 “Seismology”. https://ocw.mit.edu/courses/12-201-essentials-of-geophysics-fall-2004/b78f19037066b01c0977aa9dda43b225_ch4.pdf&lt;/p&gt;
&lt;p&gt;[9] GeoSci.xyz / Geophysics for Practicing Geoscientists, “Seismic Velocity”. https://gpg.geosci.xyz/content/physical_properties/seismic_velocity_duplicate.html&lt;/p&gt;
&lt;p&gt;[10] USGS Earthquake Hazards Program Glossary. https://www.usgs.gov/glossary/earthquake-hazards-program&lt;/p&gt;
</content:encoded><category>地震学基础</category><author>Zachary</author></item><item><title>Codex App Reconnecting 1/5 到 5/5 排障记录</title><link>https://blog.993216.xyz/posts/codex-app-reconnecting-troubleshooting/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/codex-app-reconnecting-troubleshooting/</guid><description>记录 Codex Windows App 反复 Reconnecting 时的代理、WebSocket、TUN 和回滚排查思路。</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Codex App Reconnecting 1/5 到 5/5 排障说明&lt;/h1&gt;
&lt;h2&gt;1. 参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;https://linux.do/t/topic/1846916/12&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://blog.csdn.net/zhou870498/article/details/160312916&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 典型现象&lt;/h2&gt;
&lt;p&gt;Codex Windows App 打开或发起任务时，界面反复显示类似：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Reconnecting 1/5
Reconnecting 2/5
Reconnecting 3/5
Reconnecting 4/5
Reconnecting 5/5
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3. 初步原因判断&lt;/h2&gt;
&lt;p&gt;Codex App 可能优先尝试 WebSocket 连接，如果 WebSocket 没有被代理正确接管，或代理本身对 WebSocket 支持不好，就会触发反复 Reconnecting。&lt;/p&gt;
&lt;p&gt;常见原因有：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Codex App 没有读取或使用系统代理。&lt;/li&gt;
&lt;li&gt;代理软件只接管浏览器，未接管桌面应用或命令行流量。&lt;/li&gt;
&lt;li&gt;WebSocket 流量没有正确走代理。&lt;/li&gt;
&lt;li&gt;代理端口填写错误，例如把 HTTP 端口、SOCKS 端口、Mixed Port 混用错。&lt;/li&gt;
&lt;li&gt;公司网络、防火墙、安全软件或 VPN 干扰了 WebSocket。&lt;/li&gt;
&lt;li&gt;代理节点本身不稳定，导致长连接频繁断开。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;4. 建议的处理顺序&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;如果本机本来就开了代理，先给 Codex 单独配置代理环境变量。&lt;/li&gt;
&lt;li&gt;如果配置代理后仍然反复 Reconnecting，再考虑禁用 WebSocket，强制走 HTTP。&lt;/li&gt;
&lt;li&gt;如果代理软件支持 TUN 模式，可以临时打开 TUN 测试，因为 TUN 对桌面应用和 WebSocket 的接管更完整。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;5. 方案一：给 Codex 单独配置代理&lt;/h2&gt;
&lt;h3&gt;5.1 配置位置&lt;/h3&gt;
&lt;p&gt;Codex 的本地配置目录是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;%USERPROFILE%\.codex\
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完整路径通常是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.codex\
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在这个目录下创建或编辑：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.codex\.env
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5.2 实际写入的配置&lt;/h3&gt;
&lt;p&gt;后续确认代理端口是 &lt;code&gt;10808&lt;/code&gt;，并让 Codex 直接设置。旧线程记录显示，当时创建了：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.codex\.env
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写入内容为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;HTTP_PROXY=http://127.0.0.1:10808
HTTPS_PROXY=http://127.0.0.1:10808
ALL_PROXY=socks5://127.0.0.1:10808
NO_PROXY=localhost,127.0.0.1,::1
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5.3 这几项的含义&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;HTTP_PROXY&lt;/code&gt;：
让普通 HTTP 请求走本机代理。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;HTTPS_PROXY&lt;/code&gt;：
让 HTTPS 请求走本机代理。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ALL_PROXY&lt;/code&gt;：
给支持通用代理变量的程序提供 SOCKS5 代理地址。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;NO_PROXY&lt;/code&gt;：
排除本机地址，避免访问 &lt;code&gt;localhost&lt;/code&gt;、&lt;code&gt;127.0.0.1&lt;/code&gt;、&lt;code&gt;::1&lt;/code&gt; 时也绕到代理里。&lt;/p&gt;
&lt;h3&gt;5.4 端口选择原则&lt;/h3&gt;
&lt;p&gt;代理端口不能照抄示例，必须使用自己代理软件的实际端口。&lt;/p&gt;
&lt;p&gt;常见客户端的端口位置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clash Verge / Clash Verge Rev：设置里的 &lt;code&gt;Mixed Port&lt;/code&gt;、&lt;code&gt;HTTP Port&lt;/code&gt;、&lt;code&gt;SOCKS Port&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Clash for Windows：&lt;code&gt;General&lt;/code&gt; 页面里的 &lt;code&gt;HTTP Port&lt;/code&gt;、&lt;code&gt;SOCKS Port&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mihomo Party / Meta 类客户端：设置里的 &lt;code&gt;服务端口&lt;/code&gt;、&lt;code&gt;混合端口&lt;/code&gt;、&lt;code&gt;HTTP 代理&lt;/code&gt;、&lt;code&gt;SOCKS5 代理&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;v2rayN：主界面底部或设置里的 &lt;code&gt;HTTP&lt;/code&gt;、&lt;code&gt;socks&lt;/code&gt; 端口，常见是 &lt;code&gt;10808&lt;/code&gt;、&lt;code&gt;10809&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;nekoray / sing-box GUI：&lt;code&gt;Preferences&lt;/code&gt; 或设置里的 &lt;code&gt;Local Port&lt;/code&gt;、&lt;code&gt;HTTP Proxy&lt;/code&gt;、&lt;code&gt;SOCKS Proxy&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优先级建议：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;有 &lt;code&gt;Mixed Port&lt;/code&gt; 时，优先使用 Mixed Port。&lt;/li&gt;
&lt;li&gt;没有 Mixed Port 时，优先使用 HTTP Port 配置 &lt;code&gt;HTTP_PROXY&lt;/code&gt; 和 &lt;code&gt;HTTPS_PROXY&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果只有 SOCKS5 端口，再配置 &lt;code&gt;ALL_PROXY=socks5://127.0.0.1:端口&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;5.5 修改后必须重启 Codex&lt;/h3&gt;
&lt;p&gt;修改 &lt;code&gt;.env&lt;/code&gt; 后，需要完全退出 Codex App，再重新打开。&lt;/p&gt;
&lt;p&gt;注意不是只关闭当前线程窗口，而是要让 Codex App 整个进程退出后重新启动，否则新的环境变量可能不会生效。&lt;/p&gt;
&lt;h2&gt;6. 方案二：禁用 WebSocket，强制走 HTTP&lt;/h2&gt;
&lt;p&gt;如果方案一仍然反复 Reconnecting，备用方案是修改：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.codex\config.toml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在文件最外层加入类似配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;model_provider = &quot;openai_http&quot;

[model_providers.openai_http]
name = &quot;OpenAI HTTP only&quot;
wire_api = &quot;responses&quot;
supports_websockets = false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这类配置的目的，是让 Codex 不走 WebSocket，改为 HTTP-only 的方式连接。&lt;/p&gt;
&lt;p&gt;重要注意事项：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果 &lt;code&gt;config.toml&lt;/code&gt; 里已经有 &lt;code&gt;model_provider&lt;/code&gt;，不要直接覆盖，应该先理解当前配置。&lt;/li&gt;
&lt;li&gt;修改前建议备份 &lt;code&gt;config.toml&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果正在使用自定义模型提供方、插件或特殊 provider，强行改 &lt;code&gt;model_provider&lt;/code&gt; 可能影响其他功能。&lt;/li&gt;
&lt;li&gt;修改后同样需要完全退出 Codex App，再重新打开。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. TUN 模式的取舍&lt;/h2&gt;
&lt;p&gt;也讨论过是否打开代理软件的 TUN 模式。&lt;/p&gt;
&lt;p&gt;TUN 可以理解为让代理软件通过虚拟网卡接管系统流量。相比只设置 HTTP/SOCKS 代理，TUN 对桌面应用、命令行工具、WebSocket、部分不读取系统代理的软件更有效。&lt;/p&gt;
&lt;h3&gt;7.1 优点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;兼容性更好，很多不认系统代理的程序也能被接管。&lt;/li&gt;
&lt;li&gt;对 Codex App 这类桌面应用的 Reconnecting 问题有时很有效。&lt;/li&gt;
&lt;li&gt;WebSocket、命令行、Git、桌面 App 的网络问题更容易被统一处理。&lt;/li&gt;
&lt;li&gt;DNS 处理更完整，有时能减少“浏览器能上，客户端连不上”的问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 缺点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;更容易影响全局网络。&lt;/li&gt;
&lt;li&gt;规则配置不当时，整个系统上网可能异常。&lt;/li&gt;
&lt;li&gt;可能影响局域网设备访问，比如 NAS、打印机、投屏、公司内网。&lt;/li&gt;
&lt;li&gt;可能和公司 VPN、安全软件、虚拟网卡、远程软件冲突。&lt;/li&gt;
&lt;li&gt;资源占用通常略高于普通系统代理。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.3 使用建议&lt;/h3&gt;
&lt;p&gt;建议先临时打开 TUN 测试：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开代理软件的 TUN 模式。&lt;/li&gt;
&lt;li&gt;完全退出 Codex App。&lt;/li&gt;
&lt;li&gt;重新打开 Codex App。&lt;/li&gt;
&lt;li&gt;观察 Reconnecting 是否消失。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果 TUN 打开后问题立刻消失，大概率说明根因是代理接管不完整。之后可以再决定长期打开 TUN，或继续使用 &lt;code&gt;.env&lt;/code&gt; 给 Codex 单独配置代理。&lt;/p&gt;
&lt;p&gt;如果 TUN 导致局域网、公司内网、远程桌面或其他软件异常，应优先关闭 TUN，改用 &lt;code&gt;.env&lt;/code&gt; 的单应用代理配置。&lt;/p&gt;
&lt;h2&gt;8. 验证方法&lt;/h2&gt;
&lt;p&gt;配置完成后，可以按下面顺序验证：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;完全退出 Codex App。&lt;/li&gt;
&lt;li&gt;确认代理软件正在运行，并且端口 &lt;code&gt;10808&lt;/code&gt; 处于监听状态。&lt;/li&gt;
&lt;li&gt;重新打开 Codex App。&lt;/li&gt;
&lt;li&gt;打开一个已有线程或新建线程。&lt;/li&gt;
&lt;li&gt;观察是否仍然出现 &lt;code&gt;Reconnecting 1/5 ~ 5/5&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;连续打开几次不同线程，确认不是偶发成功。&lt;/li&gt;
&lt;li&gt;如果只在某些网络环境下复现，例如公司网络、校园网、特定 Wi-Fi，应切换网络再对比。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;可以用 PowerShell 查看常见代理端口是否监听：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;netstat -ano | findstr &quot;:7890 :7891 :7897 :1080 :10808 :10809&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也可以查看所有监听端口：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Get-NetTCPConnection -State Listen | Sort-Object LocalPort
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;9. 回滚方法&lt;/h2&gt;
&lt;p&gt;如果配置后出现问题，可以按下面方式回滚。&lt;/p&gt;
&lt;h3&gt;9.1 回滚 &lt;code&gt;.env&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;如果只新增了代理变量，可以删除或临时重命名：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.codex\.env
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例如重命名为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.codex\.env.bak
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后完全退出 Codex App 并重新打开。&lt;/p&gt;
&lt;h3&gt;9.2 回滚 &lt;code&gt;config.toml&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;如果修改过 &lt;code&gt;config.toml&lt;/code&gt;，应恢复修改前的备份。&lt;/p&gt;
&lt;p&gt;如果只是加入了 HTTP-only provider，可以删除这段：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;model_provider = &quot;openai_http&quot;

[model_providers.openai_http]
name = &quot;OpenAI HTTP only&quot;
wire_api = &quot;responses&quot;
supports_websockets = false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但如果 &lt;code&gt;config.toml&lt;/code&gt; 中还有其他 provider 配置，删除前要确认没有影响其他配置块。&lt;/p&gt;
&lt;h2&gt;10. 决策建议&lt;/h2&gt;
&lt;p&gt;优先推荐顺序：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先确认代理端口是否正确。&lt;/li&gt;
&lt;li&gt;先使用 &lt;code&gt;.env&lt;/code&gt; 给 Codex 单独配置代理。&lt;/li&gt;
&lt;li&gt;仍然 Reconnecting 时，临时打开 TUN 测试。&lt;/li&gt;
&lt;li&gt;如果 TUN 有效但不适合长期打开，再考虑 HTTP-only 配置。&lt;/li&gt;
&lt;li&gt;如果 HTTP-only 方案影响现有 provider 或插件，应谨慎回滚。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;不建议一开始就同时改 &lt;code&gt;.env&lt;/code&gt;、&lt;code&gt;config.toml&lt;/code&gt; 和 TUN。一次只改一个变量，更容易判断哪一步真正生效。&lt;/p&gt;
&lt;h2&gt;11. 当前可复用结论&lt;/h2&gt;
&lt;p&gt;最终落地的是方案一：给 Codex 配置代理环境变量，端口为 &lt;code&gt;10808&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;当时写入的关键配置是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;HTTP_PROXY=http://127.0.0.1:10808
HTTPS_PROXY=http://127.0.0.1:10808
ALL_PROXY=socks5://127.0.0.1:10808
NO_PROXY=localhost,127.0.0.1,::1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果以后再次遇到 Codex App 每次打开都 Reconnecting，可以先检查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.codex\.env&lt;/code&gt; 是否仍存在。&lt;/li&gt;
&lt;li&gt;代理软件当前端口是否还是 &lt;code&gt;10808&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;代理软件是否正在运行。&lt;/li&gt;
&lt;li&gt;Codex App 是否已完全退出并重新打开。&lt;/li&gt;
&lt;li&gt;是否启用了 TUN，或当前网络是否阻断 WebSocket。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果端口已经变了，最可能的修复就是把 &lt;code&gt;.env&lt;/code&gt; 里的 &lt;code&gt;10808&lt;/code&gt; 改成当前代理软件实际端口。&lt;/p&gt;
</content:encoded><category>Codex</category><author>Zachary</author></item><item><title>RustDesk 开源版自建中继服务器：阿里云轻量服务器 + 1Panel 部署</title><link>https://blog.993216.xyz/posts/rustdesk-1panel-selfhost/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/rustdesk-1panel-selfhost/</guid><description>记录在阿里云轻量服务器上通过 1Panel 部署 RustDesk 开源版自托管服务器，并配置 Windows 与 Android 客户端的完整流程。</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;RustDesk 开源版自建中继服务器：阿里云轻量服务器 + 1Panel 部署教程&lt;/h1&gt;
&lt;h2&gt;1. 概述&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;教程目标：在阿里云轻量应用服务器上安装 1Panel，通过 1Panel 应用商店部署 RustDesk 开源版自托管服务器，把 Windows 电脑和 Android 手机接入自己的 ID/中继网络，用于远程桌面连接。&lt;/li&gt;
&lt;li&gt;需要准备：
&lt;ul&gt;
&lt;li&gt;一台有公网 IP 的 Linux 云服务器，建议选择 Ubuntu 22.04 LTS、Debian 11/12 或 1Panel 官方支持的主流 Linux 发行版。&lt;/li&gt;
&lt;li&gt;服务器 &lt;code&gt;root&lt;/code&gt; 或具备 sudo 权限的账号。&lt;/li&gt;
&lt;li&gt;本地电脑上的 SSH 工具，例如 Finalshell、PuTTY、Windows Terminal、PowerShell OpenSSH。&lt;/li&gt;
&lt;li&gt;RustDesk 客户端安装包，Windows 端和 Android 端均从 RustDesk 官网下载。&lt;/li&gt;
&lt;li&gt;服务器公网 IP 或已解析到该服务器的域名。&lt;/li&gt;
&lt;li&gt;1Panel 安装后输出的面板访问地址、用户名、密码和安全入口。&lt;/li&gt;
&lt;li&gt;RustDesk 服务端生成的 &lt;code&gt;id_ed25519.pub&lt;/code&gt; 公钥内容。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 详细步骤&lt;/h2&gt;
&lt;h3&gt;步骤 1：购买并初始化阿里云轻量应用服务器&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;打开阿里云控制台，进入轻量应用服务器购买页面进行购买，具体可参考上一篇文章。&lt;/li&gt;
&lt;li&gt;购买完成后，在轻量应用服务器控制台打开目标实例，进入服务器详情页，重置 &lt;code&gt;root&lt;/code&gt; 密码。&lt;/li&gt;
&lt;li&gt;在服务器详情页执行重启，等待实例状态恢复为运行中。&lt;/li&gt;
&lt;li&gt;记录服务器公网 IP，后续步骤用 &lt;code&gt;&amp;lt;服务器公网IP&amp;gt;&lt;/code&gt; 代替。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 2：在阿里云轻量服务器防火墙放行端口&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;打开阿里云轻量应用服务器控制台，进入目标服务器详情页，点击顶部或左侧的“防火墙”页签。&lt;/li&gt;
&lt;li&gt;点击“添加规则”，添加 &lt;code&gt;TCP&lt;/code&gt; 协议端口 &lt;code&gt;22&lt;/code&gt;，来源 IP 填 &lt;code&gt;0.0.0.0/0&lt;/code&gt; 或你的固定公网 IP。&lt;/li&gt;
&lt;li&gt;点击“添加规则”，添加 1Panel 面板访问端口；如果你后续使用安装输出里的 &lt;code&gt;13065&lt;/code&gt;，就添加 &lt;code&gt;TCP 13065&lt;/code&gt;，如果安装输出是其他端口，就添加安装输出中的端口。&lt;/li&gt;
&lt;li&gt;点击“添加规则”，添加 RustDesk 服务端端口 &lt;code&gt;TCP 21115&lt;/code&gt;、&lt;code&gt;TCP 21116&lt;/code&gt;、&lt;code&gt;TCP 21117&lt;/code&gt;、&lt;code&gt;TCP 21118&lt;/code&gt;、&lt;code&gt;TCP 21119&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;点击“添加规则”，添加 RustDesk 服务端端口 &lt;code&gt;UDP 21116&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;保存规则后，在防火墙规则列表确认这些规则处于启用状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 3：通过 SSH 安装 1Panel&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;打开 PuTTY，在 &lt;code&gt;Host Name (or IP address)&lt;/code&gt; 输入 &lt;code&gt;&amp;lt;服务器公网IP&amp;gt;&lt;/code&gt;，&lt;code&gt;Port&lt;/code&gt; 输入 &lt;code&gt;22&lt;/code&gt;，点击 &lt;code&gt;Open&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;首次连接时，在 PuTTY 的 &lt;code&gt;Security Alert&lt;/code&gt; 弹窗中点击 &lt;code&gt;Accept&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;login as:&lt;/code&gt; 输入 &lt;code&gt;root&lt;/code&gt;，按回车，继续输入服务器密码并按回车。&lt;/li&gt;
&lt;li&gt;登录成功后，在命令行执行 1Panel 官方在线安装命令：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;bash -c &quot;$(curl -sSL https://resource.1panel.pro/v2/quick_start.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;按安装脚本提示完成配置，安装完成后复制终端输出的面板访问地址，格式通常类似 &lt;code&gt;http://&amp;lt;服务器公网IP&amp;gt;:&amp;lt;端口&amp;gt;/&amp;lt;安全入口&amp;gt;&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;在本地浏览器打开安装输出的面板访问地址，输入安装输出的 1Panel 用户名和密码，完成首次登录。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 4：在 1Panel 应用商店部署 RustDesk&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;登录 1Panel 后，点击左侧菜单“应用商店”。&lt;/li&gt;
&lt;li&gt;在应用商店搜索框输入 &lt;code&gt;RustDesk&lt;/code&gt;，打开 RustDesk 应用详情页，点击“安装”。&lt;/li&gt;
&lt;li&gt;在安装表单中确认应用名称、端口、存储路径和其他必填参数；如果页面提供“端口外部访问”或同类开关，勾选该开关。&lt;/li&gt;
&lt;li&gt;在安装表单中把服务端 IP、域名或监听地址填为 &lt;code&gt;&amp;lt;服务器公网IP&amp;gt;&lt;/code&gt; 或你的域名；如果页面要求监听所有网卡，可填 &lt;code&gt;0.0.0.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;点击“确认”或“安装”，等待 RustDesk 应用状态变为“已启动”。&lt;/li&gt;
&lt;li&gt;进入 1Panel 的“应用商店”下的“已安装”页面，打开 RustDesk 应用详情，找到挂载的数据目录。&lt;/li&gt;
&lt;li&gt;在 RustDesk 数据目录中打开 &lt;code&gt;id_ed25519.pub&lt;/code&gt;，完整复制文件里的公钥字符串，保存到本地记事本，后续客户端配置要使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 5：安装并配置 Windows 客户端&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;打开 &lt;code&gt;https://rustdesk.com/&lt;/code&gt;，进入下载页，下载 Windows 客户端安装包。&lt;/li&gt;
&lt;li&gt;在被控 Windows 电脑上运行 RustDesk 客户端，点击主界面左下角的“安装”或 &lt;code&gt;Install&lt;/code&gt;，将 RustDesk 安装为系统服务。&lt;/li&gt;
&lt;li&gt;在 RustDesk 主界面点击 ID 旁边的菜单按钮，进入“网络”或 &lt;code&gt;Network&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;点击“解锁网络设置”，按系统提示授权。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;ID Server&lt;/code&gt; 输入 &lt;code&gt;&amp;lt;服务器公网IP&amp;gt;&lt;/code&gt; 或已解析的域名。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;Relay Server&lt;/code&gt; 输入 &lt;code&gt;&amp;lt;服务器公网IP&amp;gt;&lt;/code&gt; 或已解析的域名；如果客户端版本支持自动推断，也可以先留空，连接不稳定时再显式填写。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;API Server&lt;/code&gt; 保持空白。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;Key&lt;/code&gt; 输入框粘贴 &lt;code&gt;id_ed25519.pub&lt;/code&gt; 文件里的完整公钥字符串。&lt;/li&gt;
&lt;li&gt;点击“应用”或“确定”，回到 RustDesk 主界面，查看左下角状态是否变为“就绪”或 &lt;code&gt;Ready&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 6：安装并配置 Android 客户端&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;在 Android 手机上打开 &lt;code&gt;https://rustdesk.com/&lt;/code&gt;，下载官方 Android APK 或进入官方提供的应用商店入口安装 RustDesk。&lt;/li&gt;
&lt;li&gt;打开 Android RustDesk，点击左上角菜单，进入“ID/中继服务器”或同类网络设置页面。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;ID Server&lt;/code&gt; 输入 &lt;code&gt;&amp;lt;服务器公网IP&amp;gt;&lt;/code&gt; 或已解析的域名。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;Relay Server&lt;/code&gt; 输入 &lt;code&gt;&amp;lt;服务器公网IP&amp;gt;&lt;/code&gt; 或已解析的域名；如果客户端版本支持自动推断，也可以先留空，连接不稳定时再显式填写。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;API Server&lt;/code&gt; 保持空白。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;Key&lt;/code&gt; 输入框粘贴 &lt;code&gt;id_ed25519.pub&lt;/code&gt; 文件里的完整公钥字符串。&lt;/li&gt;
&lt;li&gt;保存配置，返回主界面，确认状态显示为“就绪”或 &lt;code&gt;Ready&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 7：配置无人值守访问&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;在被控 Windows 电脑上打开 RustDesk，进入“设置”。&lt;/li&gt;
&lt;li&gt;进入“安全”页面，点击“解锁安全设置”。&lt;/li&gt;
&lt;li&gt;在“密码”或“永久密码”区域设置一个固定访问密码。&lt;/li&gt;
&lt;li&gt;打开 Windows 任务管理器，进入“启动应用”页签，确认 RustDesk 启动项为“已启用”。&lt;/li&gt;
&lt;li&gt;从另一台 Windows 电脑或 Android 手机输入被控端 RustDesk ID，点击连接，输入固定访问密码，确认可以进入远程桌面。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. 核心概念解释&lt;/h2&gt;
&lt;h3&gt;RustDesk 自托管服务器&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：RustDesk 自托管不是把完整远程桌面流量都固定拉到一台云服务器上，而是部署两类服务：&lt;code&gt;hbbs&lt;/code&gt; 负责 ID、会合、信令和 NAT 穿透协调，&lt;code&gt;hbbr&lt;/code&gt; 负责在直连失败时中继流量。客户端会先联系 ID 服务器，能打洞直连时优先直连，打洞失败时再走中继服务器。&lt;/li&gt;
&lt;li&gt;教程为什么要这样做：自建 &lt;code&gt;hbbs&lt;/code&gt; 和 &lt;code&gt;hbbr&lt;/code&gt; 可以让自己的设备使用固定、可控的会合和中继入口，减少对公共服务器的依赖，也方便在多台自有设备之间保持一致配置。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ID Server、Relay Server、API Server 和 Key&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：&lt;code&gt;ID Server&lt;/code&gt; 指向 &lt;code&gt;hbbs&lt;/code&gt;，用于设备发现和连接协商；&lt;code&gt;Relay Server&lt;/code&gt; 指向 &lt;code&gt;hbbr&lt;/code&gt;，用于转发无法直连的会话；&lt;code&gt;API Server&lt;/code&gt; 主要用于专业版登录和 Web Console 功能；&lt;code&gt;Key&lt;/code&gt; 是服务端公钥，不是许可证密钥。&lt;/li&gt;
&lt;li&gt;教程为什么要这样做：开源版小规模部署通常只需要 ID Server 和 Key，Relay Server 可以由 RustDesk 推断；教程中显式填写 Relay Server 是为了降低新手排错成本。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;端口放行&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：RustDesk 开源自托管核心端口包括 &lt;code&gt;21115-21117&lt;/code&gt; 与 &lt;code&gt;21116/UDP&lt;/code&gt;；&lt;code&gt;21118&lt;/code&gt; 和 &lt;code&gt;21119&lt;/code&gt; 主要用于 WebSocket/Web 客户端场景；&lt;code&gt;21114&lt;/code&gt; 是专业版 HTTP/API 相关端口。阿里云轻量应用服务器控制台的防火墙只控制入流量，默认未开放的端口需要手动添加规则。&lt;/li&gt;
&lt;li&gt;教程为什么要这样做：RustDesk 客户端显示“未就绪”时，常见原因是云厂商防火墙或服务器内部防火墙没有放行 &lt;code&gt;21116 TCP/UDP&lt;/code&gt;、&lt;code&gt;21117 TCP&lt;/code&gt; 等端口。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1Panel 应用商店部署&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：1Panel 是服务器运维面板，应用商店会用容器方式安装和管理应用。通过应用商店安装 RustDesk，可以减少手写 Docker Compose、systemd 服务和数据目录挂载的步骤。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;原生命令安装路线&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：视频演示中使用 RustDesk 文档里的原生命令/脚本安装方式，直接在服务器上安装 &lt;code&gt;hbbs&lt;/code&gt;、&lt;code&gt;hbbr&lt;/code&gt; 并生成公钥；这条路线不依赖 1Panel 应用商店。&lt;/li&gt;
&lt;li&gt;教程为什么要这样做：本教程不把原生命令作为主步骤，但把它作为替代路线记录下来；当 1Panel 应用商店不可用、应用版本滞后或用户更熟悉 systemd 时，可以改用官方文档中的脚本或 Docker 方式。&lt;/li&gt;
&lt;li&gt;核验状态：版本敏感，视频里的第三方脚本地址和镜像加速地址需要在复用前重新核对。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Tools</category><author>Zachary</author></item><item><title>2026 年阿里云学生 300 元抵扣金购买 2 核 2G 云服务器</title><link>https://blog.993216.xyz/posts/aliyun-student-cloud-server-2026/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/aliyun-student-cloud-server-2026/</guid><description>记录阿里云学生权益、300 元抵扣金和 2 核 2G 云服务器购买流程。</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;2026 年阿里云学生 300 元抵扣金购买 2 核 2G 云服务器教程&lt;/h1&gt;
&lt;h2&gt;1. 概述&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;教程目标：用学生认证后的 300 元无门槛抵扣金购买阿里云轻量应用服务器或 ECS 活动套餐。&lt;/li&gt;
&lt;li&gt;需要准备：
&lt;ul&gt;
&lt;li&gt;阿里云账号，并完成个人实名认证。&lt;/li&gt;
&lt;li&gt;当前有效的真实高校学生身份材料；认证信息应按页面要求如实填写。&lt;/li&gt;
&lt;li&gt;可扫码认证和支付的支付宝。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 详细步骤&lt;/h2&gt;
&lt;h3&gt;步骤 1：打开学生权益入口并进入申请&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：打开 &lt;code&gt;https://www.aliyun.com/benefit/select/gaoxiao&lt;/code&gt;，在“云工开物 / 阿里云高校用云支持计划”页面找到“我是学生”区域，点击“立即申请”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 2：完成学生认证并领取 300 元抵扣金&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在弹出的学生认证页面中，按页面要求填写真实入学时间、学校、专业或学籍相关信息；如果页面要求支付宝扫码验证，使用本人支付宝完成扫码；认证通过后回到“我是学生”区域，再点击“立即申请”或“立即领取”，直到页面显示 300 元抵扣金领取成功。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 3：进入学生用券购买专区&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：打开 &lt;code&gt;https://www.aliyun.com/benefit/select/gaoxiao&lt;/code&gt;，登录领取抵扣金的同一个阿里云账号，向下滚动到学生用券专区或云服务器活动区域，选择云服务器或轻量应用服务器相关卡片。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 4：选择 2 核 2G 服务器活动规格&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：如果页面展示“轻量应用服务器 2核2G 200M”卡片，点击该卡片上的“立即购买”；如果目标是购买一年期服务器，在同一活动页查找“2核2G / 1年”规格卡片并点击“立即购买”；如果页面只显示半年、1 个月、3 个月或其他规格，选择实际需要的规格后进入购买弹窗。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 5：配置系统镜像和套餐&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在购买弹窗中选择地域；在镜像区域选择系统镜像，例如 &lt;code&gt;Ubuntu 22.04&lt;/code&gt;；在套餐配置区域确认 vCPU 为 2 核、内存为 2 GB、系统盘容量和公网带宽符合页面显示；数据盘没有需求时保持 &lt;code&gt;0 GiB&lt;/code&gt; 或不增加数据盘。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 6：设置购买时长、数量和续费选项&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在购买弹窗中选择购买时长；购买数量保持 &lt;code&gt;1&lt;/code&gt;；如果不打算到期自动续费，取消勾选“到期自动续费”或“启用自动续费”；在优惠券区域勾选已领取的 300 元抵扣金。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 7：确认订单金额并支付&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在购买弹窗底部查看“应付费用”；如果应付金额显示 &lt;code&gt;¥0.00&lt;/code&gt; 或符合预期金额，点击“立即购买”；在订单确认页勾选服务协议和镜像协议，点击“去支付”或“支付”；在支付页完成支付。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 8：进入控制台查看服务器&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：支付完成后打开轻量应用服务器控制台 &lt;code&gt;https://swas.console.aliyun.com/&lt;/code&gt; 或 ECS 控制台 &lt;code&gt;https://ecs.console.aliyun.com/&lt;/code&gt;，选择对应地域，在实例列表中确认新购买的服务器状态为运行中或创建中。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 9：设置或重置服务器登录密码&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在实例列表中找到新服务器，点击服务器名称进入详情页；在操作区选择“重置密码”或“重置实例密码”；输入强密码并确认；如果页面提示需要重启实例，按页面提示重启；将密码保存到本地安全密码管理器。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 10：连接服务器&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在轻量应用服务器控制台点击“远程连接”，选择 Workbench 一键连接；如果使用 SSH 客户端，复制服务器公网 IP，使用 &lt;code&gt;root@公网IP&lt;/code&gt; 或页面显示的默认登录名连接，并输入刚设置的密码。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 11：使用备选活动入口&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：如果学生用券专区没有目标规格，打开 &lt;code&gt;https://www.aliyun.com/daily-act/ecs/activity_selection&lt;/code&gt; 查看定时活动；如果需要长期折扣入口，打开 &lt;code&gt;https://www.aliyun.com/minisite/goods&lt;/code&gt;，点击页面中的折扣券领取按钮，再在对应套餐中查看实际折扣和最终应付金额。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. 核心概念解释&lt;/h2&gt;
&lt;h3&gt;云服务器&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：云服务器是云厂商提供的远程计算资源，用户通过控制台创建实例，再通过 Workbench、SSH 或远程桌面连接使用。它和本地电脑不同，主要价值在于长期在线、可远程访问、可按规格购买 CPU、内存、磁盘和公网能力。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;系统镜像&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：系统镜像是服务器初始化时安装的操作系统，例如 Ubuntu、Debian、CentOS Stream、Alibaba Cloud Linux。系统镜像只提供基础系统，应用环境需要后续自行安装。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;登录密码和 SSH 密钥&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：云服务器不会提供可查看的默认密码。Linux 实例常见默认登录名为 &lt;code&gt;root&lt;/code&gt;，但直接使用 root 有安全风险；SSH 密钥比密码更适合长期管理。&lt;/li&gt;
&lt;li&gt;教程为什么要这样做：购买完成后必须设置或重置登录凭证，才能通过 Workbench 或 SSH 实际使用服务器。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>VPS</category><author>Zachary</author></item><item><title>IP 地址、网络掩码、网段、网关、路由和 DNS 的关系</title><link>https://blog.993216.xyz/posts/domain-dns-network-basics/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/domain-dns-network-basics/</guid><description>梳理一次网络访问中 IP、掩码、网段、网关、路由、DNS、端口和 TLS 之间的关系。</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这一组概念属于“网络访问路径”的基础。可以先把一次网站访问拆成两条链路来记。&lt;/p&gt;
&lt;p&gt;第一条是寻址和转发路径：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;域名
=&amp;gt; DNS 查到 IP
=&amp;gt; 本机用 IP + 掩码判断目标是否同网段
=&amp;gt; 路由表决定本地直连还是交给网关
=&amp;gt; 如果要交给网关，先用 ARP 找到网关的 MAC 地址
=&amp;gt; 交换机按 MAC 地址转发到网关或下一台设备
=&amp;gt; 路由器按路由表继续转发
=&amp;gt; 出口设备可能做 NAT
=&amp;gt; 数据到达目标网络
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第二条是应用访问路径：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;目标 IP 可达
=&amp;gt; TCP 或 UDP 建立对应通信
=&amp;gt; 端口把连接交给目标主机上的具体服务
=&amp;gt; 如果是 HTTPS，TLS 用证书确认身份并加密
=&amp;gt; HTTP/HTTPS 传输真正的网页、API、文件或消息
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;再压缩成一句话：DNS 负责把名字查成 IP；IP 地址标识网络层通信目标或接口地址；掩码和网段决定能否本地直连；路由决定下一跳；网关是某些路由的下一站；ARP 和 MAC 负责本地链路上的下一跳交付；NAT 可能在出口改写地址和端口；协议规定双方怎么说话；端口区分同一台机器上的不同服务；证书和 TLS 负责 HTTPS 场景下的身份验证和加密。&lt;/p&gt;
&lt;h2&gt;物理连接和 Wi-Fi 只是前提&lt;/h2&gt;
&lt;p&gt;电脑要访问网络，第一步不是 DNS，也不是 IP，而是先要接入某种网络介质。&lt;/p&gt;
&lt;p&gt;常见接入方式包括：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;有线网卡 + 网线 + 交换机/路由器端口
无线网卡 + Wi-Fi + 无线 AP/家用路由器
虚拟网卡 + VPN/Docker/虚拟机网络
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果网线没有插好、Wi-Fi 没连上、网卡被禁用，后面的 IP、DNS、网关、路由都谈不上。Windows 右下角网络图标出现红叉，或者设置里显示“网络电缆被拔出”“未连接”，通常就是这一层的问题。&lt;/p&gt;
&lt;p&gt;但反过来，网络图标显示已连接，也不等于一定能访问互联网。它只说明电脑已经接入了某个本地网络。接下来还要看有没有正确的 IP、掩码、网关、DNS、路由、防火墙和出口 NAT。&lt;/p&gt;
&lt;h2&gt;IP 地址&lt;/h2&gt;
&lt;p&gt;IP 地址是网络层通信里的地址，作用类似“收件地址”。当你的电脑访问一个网站时，浏览器最终不是直接向 &lt;code&gt;example.com&lt;/code&gt; 这个文本发数据，而是先得到一个 IP 地址，再把数据包发向那个 IP。&lt;/p&gt;
&lt;p&gt;更准确地说，IP 地址通常标识的是网络层通信目标或某个网络接口地址，而不是永远一对一标识“一台真实机器”。原因是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一台设备可以有多个 IP，例如有线网卡一个、无线网卡一个、虚拟网卡一个、IPv4 一个、IPv6 一个。&lt;/li&gt;
&lt;li&gt;一个网站域名可以解析到多个 IP，例如 CDN、多机房、多运营商线路。&lt;/li&gt;
&lt;li&gt;一个公网 IP 后面可能通过 NAT、反向代理或负载均衡对应多台真实服务器。&lt;/li&gt;
&lt;li&gt;一个云服务器、容器或虚拟机也可能同时有内网 IP、公网 IP、IPv6、临时地址等。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;IPv4 地址常写成四段数字，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;192.168.1.23
8.8.8.8
203.0.113.10
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;IPv6 地址更长，常写成十六进制分组，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;2400:3200::1
2001:4860:4860::8888
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但 IP 地址本身只说明“目标地址是什么”，不单独说明“目标和我是不是在同一个局域网”“该从哪个出口发出去”。这些问题要靠网络掩码、网段、网关和路由一起判断。&lt;/p&gt;
&lt;p&gt;常见误区：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;192.168.x.x&lt;/code&gt;、&lt;code&gt;10.x.x.x&lt;/code&gt;、&lt;code&gt;172.16.x.x&lt;/code&gt; 到 &lt;code&gt;172.31.x.x&lt;/code&gt; 通常是内网地址，不能直接从公网访问。&lt;/li&gt;
&lt;li&gt;云服务器的公网 IP 可以写进域名的 &lt;code&gt;A&lt;/code&gt; 记录；家里电脑的内网 IP 不能直接写进公网 DNS 让别人访问。&lt;/li&gt;
&lt;li&gt;示例地址不是可用公网地址。本文中的 &lt;code&gt;203.0.113.x&lt;/code&gt;、&lt;code&gt;198.51.100.x&lt;/code&gt; 属于文档示例地址，不表示真实可访问的公网目标。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为什么 &lt;code&gt;192.168.x.x&lt;/code&gt; 通常是内网地址：因为互联网标准专门保留了几段 IPv4 地址给私有网络使用，其中就包括 &lt;code&gt;192.168.0.0/16&lt;/code&gt;。这些地址不会在公网互联网的全局路由表里被正常转发。家用路由器、公司内网、虚拟机、Docker 等可以在自己的内部网络里重复使用这些地址，不需要向运营商或注册机构申请唯一公网 IP。&lt;/p&gt;
&lt;p&gt;这也是为什么很多家庭路由器默认地址是 &lt;code&gt;192.168.1.1&lt;/code&gt; 或 &lt;code&gt;192.168.0.1&lt;/code&gt;：路由器在家里创建了一个私有局域网，给手机、电脑、电视分配 &lt;code&gt;192.168.x.x&lt;/code&gt; 这类地址；然后路由器自己再通过运营商给的公网地址或上级网络地址访问互联网。内网设备出网时，常见做法是通过 NAT 把多个内网地址共享成一个公网出口。&lt;/p&gt;
&lt;p&gt;这和 DNS 的关系是：DNS 解析只负责给出某个名字对应的目标地址，但它不知道你心里想访问的是“哪台真实设备”。如果 DNS 返回的是公网 IP，公网用户通常能按互联网路由去找；如果 DNS 返回的是内网 IP，只有和这个内网 IP 处在同一私有网络，或通过 VPN/隧道进入该网络的用户，才可能访问到正确目标。&lt;/p&gt;
&lt;h2&gt;DHCP&lt;/h2&gt;
&lt;p&gt;很多电脑不是手动配置 IP，而是通过 DHCP 自动获得网络配置。&lt;/p&gt;
&lt;p&gt;DHCP 常见会分配这些信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;IP 地址
子网掩码
默认网关
DNS 服务器
租约时间
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;家庭网络里，DHCP 服务器通常就是家用路由器。公司网络里，可能是专门的 DHCP 服务器、防火墙、三层交换机或网关设备。云服务器、容器、虚拟机也常通过类似机制获得地址。&lt;/p&gt;
&lt;p&gt;如果 DHCP 正常，Windows 里执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ipconfig /all
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通常能看到当前网卡的 IPv4 地址、子网掩码、默认网关和 DNS 服务器。&lt;/p&gt;
&lt;p&gt;如果 DHCP 失败，常见信号是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;IPv4 地址为空
没有默认网关
IPv4 地址以 169.254. 开头
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;169.254.0.0/16&lt;/code&gt; 是链路本地地址范围。它通常表示电脑没有从 DHCP 成功拿到正常地址，只能在本地链路上做非常有限的通信。此时你可能看到网卡“已连接”，但仍然无法正常访问互联网。&lt;/p&gt;
&lt;h2&gt;网络掩码&lt;/h2&gt;
&lt;p&gt;网络掩码用来告诉设备：一个 IP 地址里，前面哪一部分表示“网络”，后面哪一部分表示“主机”。换句话说，网络掩码决定“哪些 IP 算同一个网段”。&lt;/p&gt;
&lt;p&gt;最常见的写法有两种。&lt;/p&gt;
&lt;p&gt;第一种是点分十进制掩码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;255.255.255.0
255.255.0.0
255.255.255.128
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第二种是 CIDR 前缀长度：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/24
/16
/25
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;它们可以互相对应：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;255.255.255.0   = /24
255.255.0.0     = /16
255.255.255.128 = /25
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以 &lt;code&gt;192.168.1.23/24&lt;/code&gt; 为例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/24&lt;/code&gt; 表示前 24 位是网络部分。&lt;/li&gt;
&lt;li&gt;对 IPv4 来说，前 24 位刚好对应前三段，也就是 &lt;code&gt;192.168.1&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;所以 &lt;code&gt;192.168.1.23/24&lt;/code&gt; 所在网段是 &lt;code&gt;192.168.1.0/24&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;这个网段里常见可用主机地址是 &lt;code&gt;192.168.1.1&lt;/code&gt; 到 &lt;code&gt;192.168.1.254&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为什么需要掩码：单看 &lt;code&gt;192.168.1.23&lt;/code&gt;，你不知道它认为谁是“邻居”。配上 &lt;code&gt;/24&lt;/code&gt; 后，它才知道 &lt;code&gt;192.168.1.50&lt;/code&gt; 是同网段，&lt;code&gt;192.168.2.50&lt;/code&gt; 不是同网段。&lt;/p&gt;
&lt;p&gt;掩码配错的影响很直接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;掩码太大，电脑可能把本来在同一局域网的设备误判成外网目标，错误交给网关。&lt;/li&gt;
&lt;li&gt;掩码太小，电脑可能把本来应该交给网关的目标误判成本地直连，然后在本地网络里找不到它。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;网段&lt;/h2&gt;
&lt;p&gt;网段就是由“网络地址 + 掩码”定义出来的一组 IP 地址。例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;192.168.1.0/24
10.0.0.0/8
172.16.0.0/12
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以 &lt;code&gt;192.168.1.0/24&lt;/code&gt; 为例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;网络地址：&lt;code&gt;192.168.1.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;掩码：&lt;code&gt;255.255.255.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;地址范围：&lt;code&gt;192.168.1.0&lt;/code&gt; 到 &lt;code&gt;192.168.1.255&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;常见可分配主机地址：&lt;code&gt;192.168.1.1&lt;/code&gt; 到 &lt;code&gt;192.168.1.254&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;广播地址：&lt;code&gt;192.168.1.255&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;同一个网段内的设备通常可以直接二层通信。例如你的电脑是 &lt;code&gt;192.168.1.23/24&lt;/code&gt;，打印机是 &lt;code&gt;192.168.1.50/24&lt;/code&gt;，它们都在 &lt;code&gt;192.168.1.0/24&lt;/code&gt;，电脑一般可以直接找打印机。&lt;/p&gt;
&lt;p&gt;不同网段通常不能直接通信。例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;电脑：192.168.1.23/24
目标：192.168.2.50/24
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;电脑会判断 &lt;code&gt;192.168.2.50&lt;/code&gt; 不在自己的 &lt;code&gt;192.168.1.0/24&lt;/code&gt; 网段，于是不会直接发给目标，而是把数据交给网关。&lt;/p&gt;
&lt;h2&gt;局域网和网段的区别&lt;/h2&gt;
&lt;p&gt;局域网和网段不是一回事，也不是“一个代表内网、一个代表公网”。&lt;/p&gt;
&lt;p&gt;局域网强调的是一个相对局部的网络环境，通常由同一个家庭、办公室、机房机柜、实验室、虚拟网络或公司内部网络管理。它是一个偏“物理或管理范围”的概念：哪些设备在同一个本地网络里，由同一套路由器、交换机、无线 AP、防火墙或云 VPC 管。&lt;/p&gt;
&lt;p&gt;网段强调的是一组 IP 地址范围，是一个偏“地址和路由”的概念。例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;192.168.1.0/24
10.0.0.0/16
203.0.113.0/24
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;所以更准确的关系是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;内网可以有网段，例如家里的 &lt;code&gt;192.168.1.0/24&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;公网也可以有网段，例如某个云厂商或运营商拥有的一段公网地址。&lt;/li&gt;
&lt;li&gt;一个局域网里可以只有一个网段，也可以有多个网段。&lt;/li&gt;
&lt;li&gt;一个网段通常对应一个二层广播域或一个三层子网，但在复杂网络里还会涉及 VLAN、路由、防火墙、VPN 等设计。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;家庭网络里最常见的情况是“一个局域网约等于一个内网网段”：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;家庭局域网：由家里的路由器和 Wi-Fi 管理
常见网段：192.168.1.0/24
路由器/网关：192.168.1.1
手机：192.168.1.20
电脑：192.168.1.23
电视：192.168.1.50
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;因为家庭网络通常很简单，所以很多人会把“局域网”“内网”“192.168.1.0/24 网段”混着说。但在公司或云网络里，这种说法就不够准确了。&lt;/p&gt;
&lt;p&gt;例如一个公司局域网可能包含多个内网网段：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;办公电脑网段：10.10.1.0/24
打印机网段：10.10.2.0/24
服务器网段：10.10.10.0/24
访客 Wi-Fi 网段：10.10.99.0/24
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;它们都属于公司内网，但不是同一个网段。办公电脑要访问服务器，通常要经过三层交换机、路由器或防火墙转发。&lt;/p&gt;
&lt;p&gt;公网同样有网段。例如云服务器拿到的一个公网 IP，它可能属于云厂商分配的一段公网地址。公网网段会被互联网路由系统传播，私有网段则不会在公网中正常路由。&lt;/p&gt;
&lt;p&gt;因此可以这样记：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;局域网：一组本地设备组成的网络环境。
网段：一组按 IP 地址和掩码划出来的地址范围。
内网：不直接暴露在公网的私有网络环境。
公网：可在互联网中全局路由访问的网络地址空间。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;一句话总结：内网有网段，公网也有网段；局域网通常使用内网网段，但“局域网”不是“网段”的同义词。&lt;/p&gt;
&lt;h2&gt;网关&lt;/h2&gt;
&lt;p&gt;网关通常指默认网关，也就是“离开当前网段时，数据包先交给谁”。在家庭网络里，默认网关通常就是路由器的内网地址，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;电脑 IP：192.168.1.23
掩码：255.255.255.0
默认网关：192.168.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当电脑访问 &lt;code&gt;192.168.1.50&lt;/code&gt; 时：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;192.168.1.23/24 和 192.168.1.50/24 同网段
=&amp;gt; 直接在局域网里找 192.168.1.50
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当电脑访问 &lt;code&gt;8.8.8.8&lt;/code&gt; 时：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;8.8.8.8 不在 192.168.1.0/24
=&amp;gt; 交给默认网关 192.168.1.1
=&amp;gt; 由路由器继续转发到互联网
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里有一个关键点：在常见以太网主机的默认网关配置里，网关本身通常必须在你的本地网段内。因为你的电脑要先能直接找到网关，才能把出网流量交给它。比如电脑是 &lt;code&gt;192.168.1.23/24&lt;/code&gt;，默认网关一般可以是 &lt;code&gt;192.168.1.1&lt;/code&gt;，但不应该写成 &lt;code&gt;192.168.2.1&lt;/code&gt;，否则电脑连网关都直连不到。&lt;/p&gt;
&lt;p&gt;这个说法针对的是最常见的主机以太网场景。更特殊的点到点链路、静态路由、Proxy ARP、隧道或运营商网络配置可能有例外，但初学排障时先按“默认网关要能被本机直连”理解最稳。&lt;/p&gt;
&lt;h2&gt;路由和网关的关系&lt;/h2&gt;
&lt;p&gt;路由和网关的关系可以这样理解：路由是规则，网关是某些路由规则指定的下一跳设备。&lt;/p&gt;
&lt;p&gt;你的电脑不是看到一个目标 IP 就直接乱发，它会先查自己的路由表。路由表里每条规则大概都在回答这个问题：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;如果目标 IP 属于这个范围，下一步应该怎么走？
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中有些规则的答案是“直接从本机网卡发出去”，有些规则的答案是“交给某个网关”。这个“某个网关”就是下一跳。&lt;/p&gt;
&lt;p&gt;以家庭网络为例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;电脑 IP：192.168.1.23/24
默认网关：192.168.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;电脑的路由表可以简化理解为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;去 192.168.1.0/24     =&amp;gt; 直接从本地网卡发，不经过网关
去 0.0.0.0/0          =&amp;gt; 交给网关 192.168.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当访问 &lt;code&gt;192.168.1.50&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;目标 192.168.1.50 匹配 192.168.1.0/24
=&amp;gt; 这是本地网段
=&amp;gt; 电脑直接在局域网里找 192.168.1.50
=&amp;gt; 不需要交给默认网关
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当访问 &lt;code&gt;8.8.8.8&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;目标 8.8.8.8 不匹配 192.168.1.0/24
=&amp;gt; 匹配默认路由 0.0.0.0/0
=&amp;gt; 交给默认网关 192.168.1.1
=&amp;gt; 由路由器继续转发
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;所以“网关”不是一个神秘概念，它本质上是本机能直接到达的一台路由设备。你的电脑把自己不知道怎么直接到达的目标，先交给这台设备处理。&lt;/p&gt;
&lt;p&gt;默认网关是最常见的网关。它对应默认路由：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;0.0.0.0/0 via 192.168.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;0.0.0.0/0&lt;/code&gt; 表示“所有 IPv4 地址”。但这并不是说所有流量都无条件交给默认网关，因为路由选择遵循更具体规则优先。比如本地网段 &lt;code&gt;192.168.1.0/24&lt;/code&gt; 比 &lt;code&gt;0.0.0.0/0&lt;/code&gt; 更具体，所以访问同网段设备会优先走本地直连。&lt;/p&gt;
&lt;p&gt;在简单家庭网络里，通常只有一个默认网关，也就是家用路由器。它同时扮演几个角色：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;局域网网关：内网设备出网先交给它。&lt;/li&gt;
&lt;li&gt;路由器：决定下一步把包转发到哪里。&lt;/li&gt;
&lt;li&gt;NAT 设备：把多个内网地址转换成一个公网出口地址。&lt;/li&gt;
&lt;li&gt;DHCP 服务器：给手机、电脑自动分配 IP、掩码、网关、DNS。&lt;/li&gt;
&lt;li&gt;有时也是 DNS 转发器：电脑把 DNS 查询交给路由器，路由器再转发给运营商或公共 DNS。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但在复杂网络里，路由和网关不会总是这么简单。一个设备可以有多条路由，指向多个不同网关。例如公司网络或 VPN 场景：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;去 10.10.0.0/16       =&amp;gt; 交给公司 VPN 网关 10.8.0.1
去 192.168.1.0/24     =&amp;gt; 本地直连
去 0.0.0.0/0          =&amp;gt; 交给家里路由器 192.168.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这种情况下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;访问公司内网 &lt;code&gt;10.10.5.20&lt;/code&gt;，走 VPN 网关。&lt;/li&gt;
&lt;li&gt;访问家里打印机 &lt;code&gt;192.168.1.50&lt;/code&gt;，本地直连。&lt;/li&gt;
&lt;li&gt;访问普通网站 IP，走家里默认网关。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这就是为什么有时“开了 VPN 后某些网站打不开”“Docker 容器和公司内网网段冲突”“能访问互联网但访问不了公司服务器”：问题往往不是 DNS，而是路由表里某条规则把流量交给了错误的网关，或者两个网段重叠导致系统不知道该走哪边。&lt;/p&gt;
&lt;p&gt;可以用一句话总结：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;路由决定“目标该怎么走”；网关是“某条路由选择的下一跳”。
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;路由&lt;/h2&gt;
&lt;p&gt;路由是“到某个目标网络，下一步该往哪里发”的规则。设备里通常有一张路由表。路由表可以很复杂，但初学先理解三类就够：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;本地网段路由：去 192.168.1.0/24，直接从本地网卡发
默认路由：其他不知道去哪的目标，交给默认网关 192.168.1.1
特殊路由：去某个特定网段，交给某个特定下一跳
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认路由通常写成：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;0.0.0.0/0 via 192.168.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 Windows 里执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;route print
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以查看本机路由表。IPv4 路由表里如果看到：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;网络目标        网络掩码          网关
0.0.0.0         0.0.0.0           192.168.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就可以理解为：所有没有更精确规则匹配的 IPv4 目标，都交给 &lt;code&gt;192.168.1.1&lt;/code&gt; 这个默认网关。&lt;/p&gt;
&lt;p&gt;路由匹配遵循“最长前缀优先”。也就是越具体的规则优先级越高。例如同时存在：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;10.0.0.0/8 via 192.168.1.1
10.1.2.0/24 via 192.168.1.254
0.0.0.0/0 via 192.168.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;访问 &lt;code&gt;10.1.2.33&lt;/code&gt; 时，会优先匹配 &lt;code&gt;10.1.2.0/24&lt;/code&gt;，因为它比 &lt;code&gt;10.0.0.0/8&lt;/code&gt; 更具体。&lt;/p&gt;
&lt;p&gt;路由不只存在于家用路由器里。你的电脑、手机、云服务器、Docker 容器、公司 VPN、云厂商 VPC 都有路由概念。很多“能解析域名但打不开网站”的问题，实际上不是 DNS 错，而是路由、防火墙、NAT、端口或服务器问题。&lt;/p&gt;
&lt;h2&gt;ARP、MAC 地址和交换机&lt;/h2&gt;
&lt;p&gt;IP 和路由解决的是“目标网络层地址怎么走”，但本地链路上真正把数据帧交给下一台设备时，还需要 MAC 地址。&lt;/p&gt;
&lt;p&gt;MAC 地址是以太网等二层网络中使用的地址。交换机主要根据 MAC 地址表转发以太网帧，而不是根据域名或公网 IP 转发。&lt;/p&gt;
&lt;p&gt;以电脑访问公网网站为例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;电脑 IP：192.168.1.23
默认网关：192.168.1.1
网站 IP：203.0.113.10（示例地址）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;电脑发现网站 IP 不在本地网段，于是三层目标仍然是网站 IP，但下一跳是默认网关。为了把数据交给默认网关，电脑需要知道 &lt;code&gt;192.168.1.1&lt;/code&gt; 对应的 MAC 地址。&lt;/p&gt;
&lt;p&gt;这一步通常通过 ARP 完成：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;电脑广播：谁是 192.168.1.1？请告诉 192.168.1.23。
网关回应：192.168.1.1 的 MAC 是 xx-xx-xx-xx-xx-xx。
电脑缓存：192.168.1.1 -&amp;gt; xx-xx-xx-xx-xx-xx。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows 里可以执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;arp -a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看当前 ARP 缓存。如果你刚执行过：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ping 192.168.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通常会在 &lt;code&gt;arp -a&lt;/code&gt; 中看到默认网关 IP 对应的 MAC 地址。&lt;/p&gt;
&lt;p&gt;这里很容易混淆一件事：访问外网时，IP 包的目的 IP 是网站服务器；以太网帧的目的 MAC 通常是默认网关。也就是说：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;三层目的 IP：网站服务器 IP
二层目的 MAC：默认网关 MAC
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;交换机收到这个帧后，按 MAC 地址表把它转发到连接默认网关的端口。网关收到后，再解开二层帧，看里面的 IP 包，然后按路由表继续转发。&lt;/p&gt;
&lt;p&gt;补充限制：ARP 是 IPv4 常见机制。IPv6 不使用 ARP，而使用邻居发现协议 NDP。所以如果你的网络主要走 IPv6，&lt;code&gt;arp -a&lt;/code&gt; 不能完整解释 IPv6 的邻居发现过程。&lt;/p&gt;
&lt;h2&gt;DNS&lt;/h2&gt;
&lt;p&gt;DNS 负责把人类容易记的名字转换成网络需要的记录。最常见的是把域名查成 IP：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;example.com -&amp;gt; A 记录 -&amp;gt; IPv4 地址
example.com -&amp;gt; AAAA 记录 -&amp;gt; IPv6 地址
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;DNS 和网关、路由的关系是先后关系，不是替代关系：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;你输入 https://example.com
=&amp;gt; DNS 查询 example.com 的 IP
=&amp;gt; 得到 IP
=&amp;gt; 系统查看路由表，判断这个 IP 怎么走
=&amp;gt; 发现不在本地网段，交给默认网关
=&amp;gt; 网关继续转发到互联网
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;所以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DNS 解决“名字对应哪个 IP 或记录”。&lt;/li&gt;
&lt;li&gt;网络掩码解决“目标 IP 是否和我在同一个网段”。&lt;/li&gt;
&lt;li&gt;网关解决“离开本地网段时先交给谁”。&lt;/li&gt;
&lt;li&gt;路由解决“去某个目标网络下一跳是谁”。&lt;/li&gt;
&lt;li&gt;ARP/MAC 解决“本地链路上下一跳的二层地址是什么”。&lt;/li&gt;
&lt;li&gt;协议解决“双方按什么规则通信”。&lt;/li&gt;
&lt;li&gt;端口解决“到达同一台机器后交给哪个服务进程”。&lt;/li&gt;
&lt;li&gt;证书和 TLS 解决“HTTPS 连接中如何验证身份并加密通信”。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果 DNS 配错，常见表现是域名查不到 IP，或者查到错误 IP。&lt;/p&gt;
&lt;p&gt;如果网关配错，常见表现是能访问同局域网设备，但不能访问互联网。&lt;/p&gt;
&lt;p&gt;如果掩码配错，常见表现是设备误判哪些地址属于本地网段，导致本来该交给网关的流量被当成本地直连，或者本来能直连的设备被错误交给网关。&lt;/p&gt;
&lt;p&gt;如果路由配错，常见表现是某些网段能访问，某些网段不能访问，尤其常见于 VPN、Docker、虚拟机、云服务器和多网卡环境。&lt;/p&gt;
&lt;p&gt;DNS 返回的 IP 也不是永远固定的。大型网站常有多地址、CDN、运营商调度和 IPv4/IPv6 差异，同一域名不同时间、地区、DNS 服务器返回结果可能不同。因此不要把某次 &lt;code&gt;nslookup&lt;/code&gt; 查到的 IP 当成长期固定答案。&lt;/p&gt;
&lt;h2&gt;协议&lt;/h2&gt;
&lt;p&gt;协议就是通信规则。两台设备能互相发包还不够，双方还必须约定“数据怎么组织、怎么开始、怎么结束、出错怎么办、字段是什么意思”。这些约定就是协议。&lt;/p&gt;
&lt;p&gt;可以按层次理解几个常见协议：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;IP：负责把数据包从一个 IP 地址送向另一个 IP 地址。
TCP：在 IP 之上提供可靠连接，常用于 HTTP/HTTPS、SSH、数据库等。
UDP：在 IP 之上提供较轻量的数据报传输，常用于 DNS、QUIC、实时音视频等。
DNS：把域名查成 IP 或其他记录。
HTTP：浏览器和网站服务器之间传输网页、API 响应等内容的应用协议。
TLS：给上层应用提供加密和身份验证，HTTPS 就是 HTTP over TLS。
HTTPS：不是一个完全独立于 HTTP 的新东西，可以理解为 HTTP + TLS。
SSH：远程登录服务器的协议，常用 TCP 22 端口。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;协议和端口不是一回事。协议规定“怎么说话”，端口负责“找哪个服务”。通常大家会说 &lt;code&gt;HTTPS 使用 443 端口&lt;/code&gt;，这只是默认约定；理论上 HTTPS 服务也可以开在 &lt;code&gt;8443&lt;/code&gt;，HTTP 服务也可以开在 &lt;code&gt;8080&lt;/code&gt;。但如果使用非默认端口，访问时通常要明确写出来，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://example.com:8443
http://example.com:8080
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;常见误区是把“端口号”当成“协议本身”。例如 &lt;code&gt;443&lt;/code&gt; 端口通常跑 HTTPS，但端口号本身不会自动保证里面一定是 HTTPS；真正决定双方能不能通信的，是客户端和服务端是否在这个端口上使用同一种协议。&lt;/p&gt;
&lt;h2&gt;端口&lt;/h2&gt;
&lt;p&gt;端口是同一台机器上区分不同网络服务的编号。IP/路由负责把包送到目标网络层地址，TCP/UDP 端口负责把连接或数据报交给目标主机上的具体服务进程。&lt;/p&gt;
&lt;p&gt;可以这样理解：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;IP 地址：把快递送到哪栋楼
端口：送到这栋楼里的哪个房间
协议：房间里的人按什么语言和规则交流
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;一个服务器可以同时运行多个服务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;22/tcp   =&amp;gt; SSH 远程登录
80/tcp   =&amp;gt; HTTP 网站
443/tcp  =&amp;gt; HTTPS 网站
3306/tcp =&amp;gt; MySQL
5432/tcp =&amp;gt; PostgreSQL
6379/tcp =&amp;gt; Redis
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;所以 &lt;code&gt;203.0.113.10:443&lt;/code&gt; 和 &lt;code&gt;203.0.113.10:22&lt;/code&gt; 是同一个示例 IP 上的两个不同入口。浏览器访问 &lt;code&gt;https://example.com&lt;/code&gt; 时，如果 URL 里没有写端口，浏览器会按协议选择默认端口：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http://example.com  =&amp;gt; 默认 TCP 80
https://example.com =&amp;gt; 默认 TCP 443
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;端口号范围是 &lt;code&gt;0&lt;/code&gt; 到 &lt;code&gt;65535&lt;/code&gt;。常见分类可以粗略记成：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;0-1023：系统端口 / well-known ports，常见服务默认端口多在这里
1024-49151：用户端口 / registered ports
49152-65535：动态或私有端口 / ephemeral ports
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;客户端访问网站时，服务端通常监听固定端口，例如 &lt;code&gt;443&lt;/code&gt;；客户端自己也会临时分配一个本地随机高位端口。例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;你的电脑：192.168.1.23:52344
访问目标：203.0.113.10:443（示例地址）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里的 &lt;code&gt;52344&lt;/code&gt; 是客户端临时端口，用来区分本机同时发起的多个连接；&lt;code&gt;443&lt;/code&gt; 是服务端 HTTPS 服务端口。&lt;/p&gt;
&lt;h2&gt;防火墙、NAT 和端口转发&lt;/h2&gt;
&lt;p&gt;端口还会和防火墙、NAT、端口转发纠缠在一起。&lt;/p&gt;
&lt;p&gt;防火墙负责允许或拒绝某些流量。例如服务器安全组只开放 &lt;code&gt;22&lt;/code&gt; 和 &lt;code&gt;443&lt;/code&gt;，那么即使 DNS 解析正确、路由也通，访问 &lt;code&gt;3306&lt;/code&gt; 端口仍然会失败。&lt;/p&gt;
&lt;p&gt;NAT 常见于家庭路由器。家里多台设备使用 &lt;code&gt;192.168.x.x&lt;/code&gt; 内网地址出网时，路由器会把它们的连接转换成公网出口地址和不同端口。这样多个内网设备能共享一个公网出口。&lt;/p&gt;
&lt;p&gt;一个典型的出网 NAT 可以这样理解：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;内网电脑：192.168.1.23:52344
访问目标：203.0.113.10:443（示例地址）
出口改写后：公网出口IP:某个端口 -&amp;gt; 203.0.113.10:443
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;目标服务器回包时，并不知道你家里的 &lt;code&gt;192.168.1.23&lt;/code&gt;。它只会回给看到的公网出口地址和端口。出口路由器或防火墙再根据 NAT 会话表，把回包还原并转发给内网电脑：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;公网出口IP:某个端口
=&amp;gt; 查 NAT 会话表
=&amp;gt; 还原到 192.168.1.23:52344
=&amp;gt; 送回内网电脑
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这解释了为什么 NAT 不是简单的“把地址换一下”：它还要记录会话，才能知道返回流量应该交给哪台内网设备。&lt;/p&gt;
&lt;p&gt;端口转发是 NAT 的反向用法之一：把公网入口的某个端口转发到内网某台机器的某个端口。例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;公网 IP:8443  =&amp;gt;  192.168.1.100:443
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这表示外部访问你家公网 IP 的 &lt;code&gt;8443&lt;/code&gt; 端口时，路由器把流量转给内网机器 &lt;code&gt;192.168.1.100&lt;/code&gt; 的 &lt;code&gt;443&lt;/code&gt; 端口。&lt;/p&gt;
&lt;p&gt;这也解释了为什么“把家里电脑的 &lt;code&gt;192.168.1.100&lt;/code&gt; 写进公网 DNS”没用：公网用户无法直接路由到这个内网地址。你需要的是公网入口、端口转发或隧道方案，而不是只改 DNS。&lt;/p&gt;
&lt;p&gt;NAT 在私网访问公网时很常见，但不是所有网络路径都必须 NAT。拥有公网 IPv4 地址、IPv6 全局地址、专线、隧道或代理出口时，路径可能不同。&lt;/p&gt;
&lt;h2&gt;证书、TLS 和 HTTPS&lt;/h2&gt;
&lt;p&gt;证书通常指 SSL/TLS 证书。现在更准确的说法是 TLS 证书，只是很多产品页面仍然沿用 SSL 这个历史名称。&lt;/p&gt;
&lt;p&gt;在 HTTPS 访问中，证书主要解决两个问题：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;身份验证：证明你访问的服务器有权代表这个域名。
加密协商：帮助浏览器和服务器建立加密连接，防止通信内容被旁路读取或篡改。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当浏览器访问：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://blog.example.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;大致过程是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;DNS 先把 &lt;code&gt;blog.example.com&lt;/code&gt; 查成 IP。&lt;/li&gt;
&lt;li&gt;路由和网关把连接送到目标 IP 的 &lt;code&gt;443&lt;/code&gt; 端口。&lt;/li&gt;
&lt;li&gt;浏览器和服务器进行 TLS 握手。&lt;/li&gt;
&lt;li&gt;服务器出示证书。&lt;/li&gt;
&lt;li&gt;浏览器检查证书是否由可信 CA 签发、是否在有效期内、证书里的域名是否覆盖 &lt;code&gt;blog.example.com&lt;/code&gt;、证书链是否完整。&lt;/li&gt;
&lt;li&gt;检查通过后，双方协商出加密密钥。&lt;/li&gt;
&lt;li&gt;后续 HTTP 内容在 TLS 加密通道里传输，也就是 HTTPS。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;证书不是 DNS 记录，也不是端口。它依赖域名，但作用在 HTTPS 连接阶段。DNS 正确只能让浏览器找到目标 IP；证书正确才能让浏览器信任这个 HTTPS 连接。&lt;/p&gt;
&lt;p&gt;几个常见错误：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DNS 已经解析正确，但浏览器提示证书不安全：这通常是 TLS/证书问题，不是 DNS 问题。&lt;/li&gt;
&lt;li&gt;证书只覆盖 &lt;code&gt;example.com&lt;/code&gt;，不覆盖 &lt;code&gt;blog.example.com&lt;/code&gt;：访问子域名可能报证书域名不匹配。&lt;/li&gt;
&lt;li&gt;证书过期：DNS 和端口都正常，浏览器仍会报安全警告。&lt;/li&gt;
&lt;li&gt;Cloudflare 开启代理后，浏览器看到的是 Cloudflare 边缘证书；Cloudflare 到源站之间是否也加密，取决于 SSL/TLS 模式和源站证书配置。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以 Cloudflare 为例，用户浏览器到 Cloudflare 边缘节点是一段 TLS；Cloudflare 到你的源站服务器又是另一段连接。&lt;code&gt;Full&lt;/code&gt;、&lt;code&gt;Full (strict)&lt;/code&gt; 等模式影响的是 Cloudflare 到源站这段如何验证证书。尤其是 &lt;code&gt;Full (strict)&lt;/code&gt; 要求源站证书有效，否则可能出现 526 这类证书错误。&lt;/p&gt;
&lt;h2&gt;一个完整访问例子&lt;/h2&gt;
&lt;p&gt;假设你的电脑网络配置如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;IP 地址：192.168.1.23
网络掩码：255.255.255.0，也就是 /24
网段：192.168.1.0/24
默认网关：192.168.1.1
DNS 服务器：1.1.1.1
网关 MAC：aa-bb-cc-dd-ee-ff（示例）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你在浏览器输入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://blog.example.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;整个过程可以拆成：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;浏览器把 &lt;code&gt;blog.example.com&lt;/code&gt; 交给系统解析。&lt;/li&gt;
&lt;li&gt;系统向 DNS 服务器 &lt;code&gt;1.1.1.1&lt;/code&gt; 查询 &lt;code&gt;blog.example.com&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;DNS 返回一个 IP，例如文档示例地址 &lt;code&gt;203.0.113.10&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;电脑用自己的 IP 和掩码判断：&lt;code&gt;203.0.113.10&lt;/code&gt; 不在 &lt;code&gt;192.168.1.0/24&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;电脑查路由表，发现默认路由指向 &lt;code&gt;192.168.1.1&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;电脑用 ARP 查询或读取缓存，得到默认网关 &lt;code&gt;192.168.1.1&lt;/code&gt; 的 MAC 地址。&lt;/li&gt;
&lt;li&gt;电脑封装数据：三层目的 IP 是 &lt;code&gt;203.0.113.10&lt;/code&gt;，二层目的 MAC 是默认网关 MAC。&lt;/li&gt;
&lt;li&gt;交换机按 MAC 表把帧送到默认网关所在端口。&lt;/li&gt;
&lt;li&gt;路由器收到帧后取出 IP 包，查路由表，把流量转发到运营商网络或上级路由器。&lt;/li&gt;
&lt;li&gt;家庭或企业出口设备可能执行 NAT，把内网源地址和端口改写成公网出口地址和端口。&lt;/li&gt;
&lt;li&gt;数据经过互联网到达目标服务器或目标服务前面的 CDN/负载均衡。&lt;/li&gt;
&lt;li&gt;因为 URL 是 &lt;code&gt;https://&lt;/code&gt;，浏览器默认连接目标的 TCP &lt;code&gt;443&lt;/code&gt; 端口。&lt;/li&gt;
&lt;li&gt;服务器在 &lt;code&gt;443&lt;/code&gt; 端口上提供 HTTPS 服务，双方进行 TLS 握手。&lt;/li&gt;
&lt;li&gt;服务器出示证书，浏览器检查证书是否可信、是否覆盖 &lt;code&gt;blog.example.com&lt;/code&gt;、是否过期。&lt;/li&gt;
&lt;li&gt;TLS 握手成功后，浏览器通过加密通道发送 HTTP 请求。&lt;/li&gt;
&lt;li&gt;目标服务器返回 HTTP 响应。&lt;/li&gt;
&lt;li&gt;回包回到 NAT 出口设备时，出口设备根据 NAT 会话表还原到 &lt;code&gt;192.168.1.23:客户端临时端口&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;内网交换机根据 MAC 表把帧送回电脑网卡。&lt;/li&gt;
&lt;li&gt;浏览器收到响应并显示网页。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果访问失败，可以按这个顺序排查：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. 物理网线或 Wi-Fi 是否已连接？
2. 本机有没有正常 IP、掩码、默认网关和 DNS？
3. DNS 有没有解析到目标 IP？
4. 本机路由表决定目标走哪条路？
5. 默认网关是否可达，ARP 是否能解析到网关 MAC？
6. 网关或出口是否能访问互联网？
7. NAT、防火墙、安全组、代理是否允许该流量？
8. 目标服务器端口是否开放，服务是否运行正确协议？
9. HTTPS 证书是否有效、域名是否匹配、证书链是否完整？
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Windows 最小排障命令表&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;想确认什么&lt;/th&gt;
&lt;th&gt;命令&lt;/th&gt;
&lt;th&gt;重点看什么&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;本机是否拿到网络配置&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ipconfig /all&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;IPv4 地址、子网掩码、默认网关、DNS 服务器、物理地址&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;域名能否解析&lt;/td&gt;
&lt;td&gt;&lt;code&gt;nslookup example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;使用的 DNS 服务器、返回的 A/AAAA 记录&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;默认网关是否可达&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ping &amp;lt;默认网关IP&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;是否有回复、延迟是否异常&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;默认网关的 MAC 是否已解析&lt;/td&gt;
&lt;td&gt;&lt;code&gt;arp -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;默认网关 IP 对应的 MAC 地址&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;本机路由表如何决定下一跳&lt;/td&gt;
&lt;td&gt;&lt;code&gt;route print&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.0.0.0/0&lt;/code&gt; 默认路由、VPN/Docker/虚拟网卡路由&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;到目标经过哪些三层跳点&lt;/td&gt;
&lt;td&gt;&lt;code&gt;tracert -d &amp;lt;域名或IP&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;第 1 跳是否通常为网关，后续是否中断或绕路&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;tracert&lt;/code&gt; 里的 &lt;code&gt;*&lt;/code&gt; 不一定表示网络断了。有些路由器不会返回 TTL 超时消息，或者会限制 ICMP 响应，因此 &lt;code&gt;tracert&lt;/code&gt; 只能辅助判断路径，不能单独作为最终结论。&lt;/p&gt;
&lt;h2&gt;和域名托管到 Cloudflare 的关系&lt;/h2&gt;
&lt;p&gt;购买域名并托管到 Cloudflare，主要解决的是 DNS 层问题：让 Cloudflare 成为这个域名的权威 DNS，然后在 Cloudflare 里配置 &lt;code&gt;A&lt;/code&gt;、&lt;code&gt;AAAA&lt;/code&gt;、&lt;code&gt;CNAME&lt;/code&gt;、&lt;code&gt;MX&lt;/code&gt;、&lt;code&gt;TXT&lt;/code&gt; 等记录。&lt;/p&gt;
&lt;p&gt;但 Cloudflare DNS 记录最终仍然会指向某个 IP 或另一个域名。后面的网络连接仍然要经过掩码、网段、网关和路由判断。&lt;/p&gt;
&lt;p&gt;例如你在 Cloudflare 添加：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;类型：A
名称：blog
内容：203.0.113.10（文档示例地址）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这表示：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;blog.example.com 解析到 203.0.113.10
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;访问者电脑拿到 &lt;code&gt;203.0.113.10&lt;/code&gt; 后，仍要通过自己的路由表和默认网关把流量发出去。DNS 只负责告诉访问者“目标地址是多少”，不负责保证网络路径、服务器服务、端口开放和 HTTPS 配置一定正常。&lt;/p&gt;
&lt;p&gt;如果这条记录在 Cloudflare 中是 &lt;code&gt;DNS only&lt;/code&gt;，访问者会直接连接源站 IP。如果这条记录开启了 &lt;code&gt;Proxied&lt;/code&gt;，访问者通常先连接 Cloudflare 边缘节点，Cloudflare 再按配置回源到源站。这时 DNS、路由、端口、HTTP/HTTPS、TLS 证书仍然都存在，只是连接被拆成了“访问者到 Cloudflare”和“Cloudflare 到源站”两段。&lt;/p&gt;
&lt;h2&gt;最小记忆表&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;概念&lt;/th&gt;
&lt;th&gt;解决的问题&lt;/th&gt;
&lt;th&gt;例子&lt;/th&gt;
&lt;th&gt;常见错误&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;物理/Wi-Fi 连接&lt;/td&gt;
&lt;td&gt;是否接入了本地网络&lt;/td&gt;
&lt;td&gt;网线、Wi-Fi、虚拟网卡&lt;/td&gt;
&lt;td&gt;以为图标已连接就一定能上网&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DHCP&lt;/td&gt;
&lt;td&gt;自动获得网络配置&lt;/td&gt;
&lt;td&gt;IP、掩码、网关、DNS&lt;/td&gt;
&lt;td&gt;忽略 &lt;code&gt;169.254.x.x&lt;/code&gt; 这类异常地址&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP 地址&lt;/td&gt;
&lt;td&gt;网络层目标或接口地址&lt;/td&gt;
&lt;td&gt;&lt;code&gt;192.168.1.23&lt;/code&gt;、&lt;code&gt;8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;把内网 IP 当公网 IP 用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;网络掩码&lt;/td&gt;
&lt;td&gt;哪部分是网络，哪部分是主机&lt;/td&gt;
&lt;td&gt;&lt;code&gt;255.255.255.0&lt;/code&gt;、&lt;code&gt;/24&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;掩码配错导致误判同网段&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;网段&lt;/td&gt;
&lt;td&gt;哪些 IP 属于同一个网络&lt;/td&gt;
&lt;td&gt;&lt;code&gt;192.168.1.0/24&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;以为 IP 前三段相同就永远同网段&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;网关&lt;/td&gt;
&lt;td&gt;出本网段先交给谁&lt;/td&gt;
&lt;td&gt;&lt;code&gt;192.168.1.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;网关不在常规本地网段&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;路由&lt;/td&gt;
&lt;td&gt;去某个网络下一跳是谁&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.0.0.0/0 via 192.168.1.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;VPN、多网卡、Docker 路由冲突&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ARP/MAC&lt;/td&gt;
&lt;td&gt;本地链路上下一跳是谁&lt;/td&gt;
&lt;td&gt;&lt;code&gt;192.168.1.1 -&amp;gt; aa-bb-...&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;以为交换机按公网 IP 转发&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS&lt;/td&gt;
&lt;td&gt;名字对应哪个 IP 或记录&lt;/td&gt;
&lt;td&gt;&lt;code&gt;example.com -&amp;gt; A/AAAA&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;以为 DNS 能解决服务器、防火墙或路由问题&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;协议&lt;/td&gt;
&lt;td&gt;双方按什么规则通信&lt;/td&gt;
&lt;td&gt;HTTP、TLS、SSH、DNS&lt;/td&gt;
&lt;td&gt;以为端口号等于协议&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;端口&lt;/td&gt;
&lt;td&gt;同一台机器上的哪个服务&lt;/td&gt;
&lt;td&gt;&lt;code&gt;443&lt;/code&gt;、&lt;code&gt;22&lt;/code&gt;、&lt;code&gt;3306&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DNS 正确但服务端口没开放&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;防火墙/NAT&lt;/td&gt;
&lt;td&gt;哪些流量允许通过，内外地址如何转换&lt;/td&gt;
&lt;td&gt;安全组、端口转发、NAT 会话表&lt;/td&gt;
&lt;td&gt;只改 DNS，不开放端口或不做转发&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;证书/TLS&lt;/td&gt;
&lt;td&gt;HTTPS 身份验证和加密&lt;/td&gt;
&lt;td&gt;&lt;code&gt;blog.example.com&lt;/code&gt; 的证书&lt;/td&gt;
&lt;td&gt;DNS 正确但证书过期或域名不匹配&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded><category>网络</category><author>Zachary</author></item><item><title>购买低价数字 .xyz 域名并托管到 Cloudflare</title><link>https://blog.993216.xyz/posts/xyz-domain-spaceship-cloudflare/</link><guid isPermaLink="true">https://blog.993216.xyz/posts/xyz-domain-spaceship-cloudflare/</guid><description>记录从 Spaceship 购买数字 .xyz 域名，并把权威 DNS 切换到 Cloudflare 托管的完整流程。</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1. 概述&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;教程目标：注册 Spaceship 账号，筛选并购买 6 到 9 位纯数字 &lt;code&gt;.xyz&lt;/code&gt; 域名，然后把域名的权威 DNS 从 Spaceship 默认 nameserver 切换到 Cloudflare，由 Cloudflare 管理 DNS。&lt;/li&gt;
&lt;li&gt;需要准备：
&lt;ul&gt;
&lt;li&gt;一个可用邮箱，用于注册 Spaceship 和 Cloudflare。&lt;/li&gt;
&lt;li&gt;一个可付款方式；视频画面中 Spaceship 结账页出现支付宝付款。&lt;/li&gt;
&lt;li&gt;Spaceship 入口：&lt;code&gt;https://www.spaceship.com/zh/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;域名批量查询工具：&lt;code&gt;https://www.west.cn/web/mi&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Cloudflare 控制台：&lt;code&gt;https://dash.cloudflare.com/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;想购买的 6 到 9 位纯数字 &lt;code&gt;.xyz&lt;/code&gt; 候选域名。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 详细步骤&lt;/h2&gt;
&lt;h3&gt;步骤 1：注册并登录 Spaceship 账号&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：打开 Spaceship 中文主页 &lt;code&gt;https://www.spaceship.com/zh/&lt;/code&gt;，点击右上角头像图标，选择注册入口；输入你自己的邮箱、用户名、密码等注册信息；注册完成后用刚创建的账号登录。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 2：在 Spaceship 直接搜索一个数字 &lt;code&gt;.xyz&lt;/code&gt; 域名&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在 Spaceship 首页域名搜索框或登录后的域名搜索页输入 &lt;code&gt;&amp;lt;6到9位纯数字&amp;gt;.xyz&lt;/code&gt;，例如 &lt;code&gt;&amp;lt;你的数字组合&amp;gt;.xyz&lt;/code&gt;；查看 &lt;code&gt;.xyz&lt;/code&gt; 搜索结果是否显示可注册；如果可注册，先不要急着付款，可以继续用批量工具筛选更多候选。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 3：打开批量查询工具筛选候选域名&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：打开西部数码批量查询工具 &lt;code&gt;https://www.west.cn/web/mi&lt;/code&gt;；在页面的“生成规则”输入框中组合规则；如果要自定义豹子号，点击“我的字典1”，输入需要的数字片段，保存后把字典名称改成容易识别的名称；在“域名后缀”区域勾选 &lt;code&gt;.xyz&lt;/code&gt;；点击“开始查询”；从显示可注册的结果里挑选候选域名。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 4：把候选域名带回 Spaceship 搜索并加入购物车&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：把批量查询工具里看中的候选域名复制到 Spaceship 搜索框重新搜索；只以 Spaceship 的实时搜索结果为准；看到可注册结果后点击该结果旁边的“加入购物车”，或者点击结果行里的“查看购物车”；再点右上角购物车图标进入购物车。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 5：在 Spaceship 结账并付款&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在 Spaceship 购物车中确认域名、年限、价格和续费价格；点击“继续”或“结账”；进入支付页面后选择可用付款方式；视频画面中使用“立即支付”并通过支付宝付款；付款完成后确认订单完成页面出现。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 6：进入 Spaceship 域名管理器&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：付款完成后点击 Spaceship 顶部导航的 &lt;code&gt;Launchpad&lt;/code&gt;；进入 &lt;code&gt;Domain Manager&lt;/code&gt; / “域名管理器”；在域名列表中找到刚购买的 &lt;code&gt;&amp;lt;你的数字域名&amp;gt;.xyz&lt;/code&gt;；点击该域名或右侧管理面板。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 7：在 Spaceship 打开名称服务器设置&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在 Spaceship 域名管理器中选中 &lt;code&gt;&amp;lt;你的数字域名&amp;gt;.xyz&lt;/code&gt;；打开右侧“名称服务器和 DNS”；点击“更改名称服务器”或进入“自定义名称服务器”区域；先停留在该页面，等待填入 Cloudflare 分配的两个 nameserver。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 8：在 Cloudflare 添加域名&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：打开 Cloudflare 控制台 &lt;code&gt;https://dash.cloudflare.com/&lt;/code&gt; 并登录；进入账户主页的“域”区域；点击“加入域”；在输入框中输入 &lt;code&gt;&amp;lt;你的数字域名&amp;gt;.xyz&lt;/code&gt;；按页面提示继续；如果页面要求选择 DNS 记录导入方式，保持默认的快速扫描或按你的实际需要手动输入。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 9：在 Cloudflare 继续到激活页面并复制 nameserver&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：在 Cloudflare 添加域名流程中检查扫描到的 DNS 记录；暂时没有网站解析记录时可以继续，但后续要补 DNS 记录；点击“继续前往激活”；复制 Cloudflare 页面分配给该域名的两个 &lt;code&gt;*.ns.cloudflare.com&lt;/code&gt; nameserver。不要照抄教程画面里的示例 nameserver，以你自己 Cloudflare 页面显示的两个值为准。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 10：回到 Spaceship 填入 Cloudflare nameserver&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：回到 Spaceship 的 &lt;code&gt;&amp;lt;你的数字域名&amp;gt;.xyz&lt;/code&gt; 名称服务器设置页；把 Cloudflare 给出的两个 &lt;code&gt;*.ns.cloudflare.com&lt;/code&gt; 分别填入“自定义名称服务器”输入框；点击保存名称服务器设置。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 11：回到 Cloudflare 检查 nameserver&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：回到 Cloudflare 当前域名的激活页面，点击“立即检查名称服务器”；等待 Cloudflare 检测到 registrar 侧 nameserver 已切换；稍后在 Cloudflare 域名列表中看到该域名状态变为“活动”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤 12：后续在 Cloudflare 添加 DNS 记录&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;具体操作：域名变为活动后，进入 Cloudflare 当前域名的 DNS 记录页，点击“添加记录”；根据你要搭建的网站或服务添加 &lt;code&gt;A&lt;/code&gt;、&lt;code&gt;AAAA&lt;/code&gt;、&lt;code&gt;CNAME&lt;/code&gt;、&lt;code&gt;TXT&lt;/code&gt;、&lt;code&gt;MX&lt;/code&gt; 等记录；如果只是完成托管，至少要知道当前还没有把域名指向任何网站服务器。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. 核心概念解释&lt;/h2&gt;
&lt;h3&gt;1.111B Class &lt;code&gt;.xyz&lt;/code&gt; 数字域名&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：1.111B Class 是 &lt;code&gt;.xyz&lt;/code&gt; 针对纯数字域名推出的一类特殊命名空间，覆盖 6 位、7 位、8 位、9 位数字组合，也就是从 &lt;code&gt;000000.xyz&lt;/code&gt; 到 &lt;code&gt;999999999.xyz&lt;/code&gt;。它和普通自由组合域名不同，重点是把“数字本身”当作可记忆资源，例如生日、电话号码片段、顺子、豹子号等。教程里说的低价数字 &lt;code&gt;.xyz&lt;/code&gt;，主要就是围绕这类域名展开。&lt;/li&gt;
&lt;li&gt;核验状态：版本敏感。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;域名注册商和 DNS 托管&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：域名注册商和 DNS 托管方是两个不同角色。注册商负责注册、续费、所有权记录、域名锁、联系方式、nameserver 设置等；DNS 托管方负责保存 DNS 记录并回答解析请求，例如这个域名的 &lt;code&gt;A&lt;/code&gt; 记录指向哪个 IP，&lt;code&gt;CNAME&lt;/code&gt; 指向哪个主机名，&lt;code&gt;TXT&lt;/code&gt; 用于什么验证。一个域名可以在 A 平台购买，但让 B 平台托管 DNS。&lt;/li&gt;
&lt;li&gt;教程为什么要这样做：教程在 Spaceship 购买域名，是因为它在视频当时对目标数字 &lt;code&gt;.xyz&lt;/code&gt; 域名价格低、支付方式方便；随后切到 Cloudflare，是为了用 Cloudflare 管理 DNS，并为后续建站、子域名、代理、缓存和安全功能打基础。这个流程把“买域名”和“管理解析”拆开，后续迁移、建站和添加子域名都更灵活。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Nameserver / 名称服务器&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：nameserver 是某个域名的权威 DNS 服务器。递归 DNS 在解析域名时，会沿着 DNS 层级找到这个域名当前授权给哪些 nameserver，然后向这些 nameserver 查询具体记录。注册商后台里的 nameserver 设置，决定了“谁有权回答这个域名的 DNS 记录”。因此，改 nameserver 不是添加一条普通 DNS 记录，而是在改变权威 DNS 托管方。&lt;/li&gt;
&lt;li&gt;教程为什么要这样做：Cloudflare 要成为这个域名的 DNS 托管方，必须让注册商把域名授权到 Cloudflare 分配的两个 nameserver。教程让你从 Cloudflare 复制两个 &lt;code&gt;*.ns.cloudflare.com&lt;/code&gt;，再填回 Spaceship 的自定义 nameserver，就是在完成这次授权切换。切换完成后，DNS 记录应在 Cloudflare 里管理，而不是继续依赖 Spaceship 默认 DNS。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Cloudflare full setup&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：Cloudflare full setup 指把整个域名接入 Cloudflare，由 Cloudflare 作为该域名的权威 DNS 托管方。它和只接入某个子域名、只使用代理服务或只做局部 CNAME 接入不同；full setup 下，Cloudflare 会管理这个域名下所有需要配置的 DNS 记录。&lt;/li&gt;
&lt;li&gt;教程为什么要这样做：教程的目标不是只让某一个页面能访问，而是把新买的域名作为后续个人导航站、博客、笔记站等项目的统一入口。用 full setup 后，你可以在 Cloudflare 里添加多个子域名，例如 &lt;code&gt;blog.&amp;lt;你的域名&amp;gt;&lt;/code&gt;、&lt;code&gt;note.&amp;lt;你的域名&amp;gt;&lt;/code&gt;、&lt;code&gt;nav.&amp;lt;你的域名&amp;gt;&lt;/code&gt;，并统一管理代理、SSL/TLS、安全规则和缓存策略。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;DNS 传播&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;概念解释：DNS 传播不是一个平台主动把结果推送到全网的过程，而是不同 DNS 缓存逐步过期并重新查询的过程。nameserver 改完后，注册局、递归 DNS、浏览器、操作系统、运营商 DNS 都可能有缓存；不同位置看到新 nameserver 的时间不一定一致。因此，刚保存后 Cloudflare 检查不到，并不一定代表配置错误。&lt;/li&gt;
&lt;li&gt;教程为什么要这样做：教程让你保存 Spaceship 的自定义 nameserver 后，回到 Cloudflare 点击“立即检查名称服务器”，这是为了让 Cloudflare 尝试确认域名是否已经授权给它。实际使用中，如果立刻检查失败，可以等待一段时间再试。若长时间不生效，再检查 nameserver 是否复制完整、是否多填旧 nameserver、是否开启 DNSSEC、是否保存到了正确域名。&lt;/li&gt;
&lt;li&gt;核验状态：版本敏感。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>域名</category><author>Zachary</author></item></channel></rss>