<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>云图 on 小甲哥の垃圾工厂</title><link>https://alecthw.github.io/tags/%E4%BA%91%E5%9B%BE/</link><description>Recent content in 云图 on 小甲哥の垃圾工厂</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Fri, 07 Aug 2026 03:48:19 +0000</lastBuildDate><atom:link href="https://alecthw.github.io/tags/%E4%BA%91%E5%9B%BE/index.xml" rel="self" type="application/rss+xml"/><item><title>机场/梯子推荐</title><link>https://alecthw.github.io/p/airport-recommend/</link><pubDate>Fri, 07 Aug 2026 09:24:13 +0800</pubDate><guid>https://alecthw.github.io/p/airport-recommend/</guid><description>&lt;img src="https://alecthw.github.io/p/airport-recommend/cover.jpg" alt="Featured image of post 机场/梯子推荐" /&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡非常时期，不存在绝对稳定的机场，不同地区不同运营商都会存在差别，建议先月付测试，找到自己合适的再考虑年付。目前唯一稳定的方案是 CCN(po0/rfc) 自建节点，但是费用很高，后面单独出个教程。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;分类推荐，每种就推荐两三个，供有不同需求的人参考。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;是否支持订阅链接，意味着是否能够使用 Surge/Stash/Egern/ShadowRocket 等三方客户端。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;💡极简总结（&lt;strong&gt;优惠码适时更新，请关注：&lt;/strong&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;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;/td&gt;
&lt;td&gt;云图机场&lt;/td&gt;
&lt;td&gt;金融级专线传输，高规格跨境专线与优质节点拓扑，晚高峰期依然低延迟、零丢包。价格适中，性价比之王。&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;&lt;a class="link" href="https://vip.ytjcok.org/#/register?code=dyGofOZw" target="_blank" rel="noopener"
&gt;🚀直达&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;88折：yt88&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;/td&gt;
&lt;td&gt;专业海外运营，八年行业经验，一流的技术，一流的服务。换了东家之后，稳定性提升很大&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;&lt;a class="link" href="http://huanyuyunbest.com/#/register?code=nzwnfjmd" target="_blank" rel="noopener"
&gt;🚀直达&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;85 折：HY888&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;/td&gt;
&lt;td&gt;一个月不到 1 块钱，老牌廉价机场，推荐作为备用防失联&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;&lt;a class="link" href="https://xn--4gq62f52gdss.ink/#/register?code=QFTTlbYU" target="_blank" rel="noopener"
&gt;🚀直达&lt;/a&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;TAG&lt;/td&gt;
&lt;td&gt;全球 250+ 节点、99+ 流媒体解锁，覆盖地区最广的机场，虽贵但好用&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;&lt;a class="link" href="https://558343.dedicated-afflink.com/#/auth/2neqgxFl" target="_blank" rel="noopener"
&gt;🚀直达&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;9 折：Christmas&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;当前强烈推荐&lt;strong&gt;云图机场&lt;/strong&gt;机场，基于 AnyTLS 协议，，稳定不炸，性价比之王！同时支持订阅链接和自研客户端。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;目录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="#%e7%89%b9%e5%88%ab%e6%8e%a8%e8%8d%90" &gt;特别推荐&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="#%e4%ba%91%e5%9b%be%e6%9c%ba%e5%9c%ba--%e9%87%91%e8%9e%8d%e7%ba%a7%e4%b8%93%e7%ba%bf%e6%80%a7%e4%bb%b7%e6%af%94%e4%b9%8b%e7%8e%8b" &gt;🔥云图机场 —— 金融级专线，性价比之王&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#%e5%af%b0%e5%ae%87%e4%ba%91%e6%9c%ba%e5%9c%ba--anytls-%e5%8d%8f%e8%ae%ae%e9%ab%98%e6%80%a7%e4%bb%b7%e6%af%94" &gt;🔥寰宇云机场 —— AnyTLS 协议，高性价比&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#%e8%bd%bb%e5%ba%a6%e4%bd%bf%e7%94%a8%e5%85%a5%e9%97%a8%e5%b0%9d%e9%b2%9c" &gt;轻度使用，入门尝鲜&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="#%e4%b8%80%e5%85%83%e6%9c%ba%e5%9c%ba--%e5%bb%89%e4%bb%b7%e7%9a%84%e4%b8%8d%e6%ad%bb%e7%a5%9e%e8%af%9d" &gt;🔥一元机场 —— 廉价的不死神话&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#%e5%85%a8%e7%90%83%e4%ba%91--iplciepl-%e4%b8%93%e7%ba%bf" &gt;🔥全球云 —— IPLC/IEPL 专线&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#%e6%9e%81%e8%bf%9e%e4%ba%91%e6%9c%ba%e5%9c%ba--%e4%b8%89%e7%bd%91%e6%89%8b%e6%90%93-bgp" &gt;🔥极连云机场 —— 三网手搓 BGP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#%e4%b8%ad%e5%ba%a6%e4%bd%bf%e7%94%a8%e8%81%8a%e5%a4%a9%e4%b8%8a%e7%bd%91" &gt;中度使用，聊天上网&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="#%e6%98%9f%e5%b2%9b%e6%a2%a6--%e9%ab%98%e6%80%a7%e4%bb%b7%e6%af%94%e6%96%b0%e6%9c%ba%e5%9c%ba" &gt;🔥星岛梦 —— 高性价比新机场&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#%e5%85%89%e9%80%9f%e4%ba%91--%e4%b8%ad%e8%bd%ac%e4%bc%98%e5%8c%96" &gt;🔥光速云 —— 中转优化&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#%e9%87%8d%e5%ba%a6%e4%bd%bf%e7%94%a8%e7%a8%b3%e5%ae%9a%e5%8f%af%e9%9d%a0" &gt;重度使用，稳定可靠&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="#tag--%e6%9c%ba%e5%9c%ba%e4%b8%ad%e7%9a%84%e6%8e%92%e5%a4%b4%e5%85%b5" &gt;🔥TAG —— 机场中的排头兵&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#nexitally--%e8%80%81%e7%89%8c%e6%9c%ba%e5%9c%ba%e4%bd%a9%e5%a5%87%e5%ae%b6%e5%a5%b6%e6%98%94" &gt;🔥Nexitally —— 老牌机场佩奇家、奶昔&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="#%e6%9c%80%e5%90%8e" &gt;最后&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="特别推荐"&gt;特别推荐
&lt;/h2&gt;&lt;p&gt;个人认为非常好用且性价比贼高的机场。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="云图机场--金融级专线性价比之王"&gt;🔥云图机场 —— 金融级专线，性价比之王
&lt;/h3&gt;&lt;div class="airport-card"&gt;&lt;div class="airport-rows"&gt;
&lt;div class="airport-row"&gt;&lt;button type="button" class="airport-coupon" data-code="yt88" aria-label="复制优惠码 yt88"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 大促 88 折&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;yt88&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;&lt;div class="airport-row"&gt;
&lt;a class="airport-cta" href="https://vip.ytjcok.org/#/register?code=dyGofOZw" target="_blank" rel="noopener nofollow"&gt;🚀 点我起飞，前往官网&lt;/a&gt;&lt;span class="airport-protocol"&gt;协议 &lt;strong&gt;AnyTLS&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="airport-row"&gt;
&lt;ul class="airport-features"&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;支持订阅链接，可在小火箭等第三方客户端使用&lt;/li&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;提供专属客户端&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;云图官方主打“金融级专线”，并针对国内三网进行线路优化。相比普通公网线路，更注重晚高峰时段的延迟、速度和连接稳定性。节点支持 ChatGPT、Netflix、TikTok 等常用服务，部分地区还提供原生 IP。&lt;/p&gt;
&lt;p&gt;同时提供一次性套餐和周期套餐，节点统一按 1 倍倍率计费，堪称性价比之王。主要流媒体和 AI 都已解锁。&lt;/p&gt;
&lt;p&gt;在当前多数机场封端（不支持订阅链接，仅支持指定客户端）的情况下，云图依然支持订阅链接，可在 ShadowRocket 小火箭、Surge、Quanx 等任意三分客户端中使用，有着一线机场的眼界和服务水平，Telegram 群客服答复及时。&lt;/p&gt;
&lt;p&gt;另外，这里有必要简单介绍下 AnyTLS。Reality 协议目前依然是行业标杆，拥有出色的稳定性。而新出现的 AnyTLS 可以说是 Reality 进化版，由 sing-box 团队开发并维护。AnyTLS 通过可自定义的 TLS Padding 机制增强流量的隐蔽性，检测难度更高，稳定性更强，同时保持良好的性能表现和广泛的兼容性。&lt;/p&gt;
&lt;p&gt;云图机场，带你一键穿云，揽尽天下。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🌟 核心优势 ⚡️ 金融级专线｜全线高规格专线传输，三网优化，高峰期依然极速稳定&lt;/li&gt;
&lt;li&gt;🟢 流媒体解锁｜完美解锁 ChatGPT、Netflix、TikTok 等主流服务及冷门原生 IP&lt;/li&gt;
&lt;li&gt;🟢 透明高性价比｜节点倍率统一 1 倍，绝无高倍扣费陷阱&lt;/li&gt;
&lt;li&gt;🟢 贴心售后保障｜支持多设备同时在线，工单 24 小时内快速响应服务&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/yuntu-plan1.avif"
loading="lazy"
alt="云图机场套餐"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/yuntu-plan2.avif"
loading="lazy"
alt="云图机场套餐"
&gt;&lt;/p&gt;
&lt;p&gt;测速如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/yuntu-speedtest.avif"
loading="lazy"
alt="云图机场测速"
&gt;&lt;/p&gt;
&lt;p&gt;流媒体解锁：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/yuntu-media.avif"
loading="lazy"
alt="云图机场流媒体解锁"
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="寰宇云机场--anytls-协议高性价比"&gt;🔥寰宇云机场 —— AnyTLS 协议，高性价比
&lt;/h3&gt;&lt;div class="airport-card"&gt;&lt;div class="airport-rows"&gt;
&lt;div class="airport-row"&gt;&lt;button type="button" class="airport-coupon" data-code="HY888" aria-label="复制优惠码 HY888"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 线路升级大促 85 折&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;HY888&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;&lt;div class="airport-row"&gt;
&lt;a class="airport-cta" href="http://huanyuyunbest.com/#/register?code=nzwnfjmd" target="_blank" rel="noopener nofollow"&gt;🚀 点我起飞，前往官网&lt;/a&gt;&lt;span class="airport-protocol"&gt;协议 &lt;strong&gt;AnyTLS&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="airport-row"&gt;
&lt;ul class="airport-features"&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;支持订阅链接，可在小火箭等第三方客户端使用&lt;/li&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;提供专属客户端&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;换东家之后，稳定性提升很多。基于 AnyTLS 协议搭建，专业海外运营，八年行业经验，一流的技术，一流的服务。&lt;/p&gt;
&lt;p&gt;提供 一次性套餐 和周期套餐 ，堪称性价比之王。 主要流媒体和 AI 都已解锁。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;⚡️ 极速稳定，拒绝卡顿：采用优质跨境路由与精选高速节点，直连+专线，晚高峰依然坚挺。测速拉满，带给您秒开网页、畅享 4K/8K 高清视频的极致体验。&lt;/li&gt;
&lt;li&gt;🌍 全球覆盖，随心切换：节点广泛覆盖香港、日本、新加坡、美国、台湾等核心地区。真正实现“寰球”互联，打破地域限制，世界触手可及。&lt;/li&gt;
&lt;li&gt;🔓 原生流媒体 &amp;amp; AI 完美解锁：轻松解锁 Netflix、Disney+、HBO Max、Spotify 等主流流媒体限制，同时完美支持 ChatGPT、Midjourney 等前沿 AI 工具的稳定访问。&lt;/li&gt;
&lt;li&gt;🛡 安全匿名，隐私无忧：采用最新强加密协议，全方位保护您的网络数据与个人隐私。无日志记录，让您安心在互联网上自由冲浪。&lt;/li&gt;
&lt;li&gt;📱 全平台兼容，极简上手：完美适配 iOS、Android、Windows、macOS 及各类软路由。全面兼容主流客户端（如 Clash、Shadowrocket、Surge、v2rayN 等），提供一键导入订阅，小白也能轻松连接。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/huanyu-plan.avif"
loading="lazy"
alt="寰宇云机场套餐"
&gt;&lt;/p&gt;
&lt;p&gt;Youtube 测速如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/huanyu-youtube.avif"
loading="lazy"
alt="寰宇云机场YouTube测速"
&gt;&lt;/p&gt;
&lt;p&gt;测速如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/huanyu-speedtest.avif"
loading="lazy"
alt="寰宇云机场测速"
&gt;&lt;/p&gt;
&lt;p&gt;流媒体解锁：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/huanyu-media.avif"
loading="lazy"
alt="寰宇云机场流媒体解锁"
&gt;&lt;/p&gt;
&lt;p&gt;AI 解锁：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/huanyu-ai.avif"
loading="lazy"
alt="寰宇云机场流媒体解锁"
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="轻度使用入门尝鲜"&gt;轻度使用，入门尝鲜
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;预算低&lt;/strong&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;偶尔看看 Youtube 等视频&lt;/li&gt;
&lt;li&gt;Telegram 聊天&lt;/li&gt;
&lt;li&gt;基本没有速度和时延要求&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="一元机场--廉价的不死神话"&gt;🔥一元机场 —— 廉价的不死神话
&lt;/h3&gt;&lt;div class="airport-card"&gt;&lt;div class="airport-rows"&gt;&lt;div class="airport-row"&gt;
&lt;a class="airport-cta" href="https://xn--4gq62f52gdss.ink/#/register?code=QFTTlbYU" target="_blank" rel="noopener nofollow"&gt;🚀 点我起飞，前往官网&lt;/a&gt;&lt;span class="airport-protocol"&gt;协议 &lt;strong&gt;VLESS&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="airport-row"&gt;
&lt;ul class="airport-features"&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;支持订阅链接，可在小火箭等第三方客户端使用&lt;/li&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;提供专属客户端&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;特点：好几年了，竟然还活着，廉价的不死神话，流量高，速度还行，但是不太稳定。&lt;/p&gt;
&lt;p&gt;有点小名气的低价机场，主打的就是一个价格低。晚高峰会有点卡，稳定性也不算高，不过 12CNY/Year、20CNY/2Year 的价格要什么自行车，主要是速度也还行，解锁 Netflix 和 Disney+，美国节点解锁 ChatGPT。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意:&lt;/strong&gt; 传家宝套餐由原来每月 &lt;code&gt;500G&lt;/code&gt;，变成每月 &lt;code&gt;50G&lt;/code&gt; 了，此时可以优先考虑[三分机场](#三分机场 —— 一天3分钱)了~~&lt;/p&gt;
&lt;p&gt;他家就买这个传家宝套餐就行了。至于俩稍微贵点的高流量套餐，可以拿来当二道贩子，封装个 APP 卖钱😜。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/onedollar-plan.avif"
loading="lazy"
alt="一元机场套餐"
&gt;&lt;/p&gt;
&lt;p&gt;节点以香港、日本、美国、新加坡为主，偶尔会出现土耳其等特别的节点。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/onedollar-speedtest.avif"
loading="lazy"
alt="一元机场测速"
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="全球云--iplciepl-专线"&gt;🔥全球云 —— IPLC/IEPL 专线
&lt;/h3&gt;&lt;div class="airport-card"&gt;&lt;div class="airport-rows"&gt;
&lt;div class="airport-row"&gt;&lt;button type="button" class="airport-coupon" data-code="qq88" aria-label="复制优惠码 qq88"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 新人 8 折优惠码&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;qq88&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;&lt;div class="airport-row"&gt;
&lt;a class="airport-cta" href="https://kaelthw.gcvipaff.com/#/?code=515drxRl" target="_blank" rel="noopener nofollow"&gt;🚀 点我起飞，前往官网&lt;/a&gt;&lt;span class="airport-protocol"&gt;协议 &lt;strong&gt;VLESS&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="airport-row"&gt;
&lt;ul class="airport-features"&gt;&lt;li&gt;&lt;span class="airport-feature-icon warn"&gt;!&lt;/span&gt;无法直接订阅地址，可以联系客服获取订阅地址&lt;/li&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;提供专属客户端&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;特点：全球云是一家专注提供出海专线加速与流媒体解锁服务的网络加速品牌。采用企业级 IPLC / IEPL 专线，并结合智能负载均衡与三网入口优化，尽量保障国内用户连接海外节点的速度与稳定性，晚高峰也有更好的表现。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;专线落地 + 高速解锁
原生机房线路，稳定低延迟
节点通常标示可解锁 Netflix / Disney+ / TikTok / ChatGPT 等（以节点标注为准）&lt;/li&gt;
&lt;li&gt;全球布局 + 多地区节点
覆盖香港、日本、新加坡、美国、英国、德国、法国、韩国、马来西亚、泰国、越南、菲律宾、土耳其等
60+ 节点，独立 IP 资源，带宽 3Gbps+，高峰冗余策略（参考 500Mbps 级别冗余）&lt;/li&gt;
&lt;li&gt;多平台支持 + 多设备同时用
支持 Shadowrocket / Clash / V2Ray / Trojan 等主流客户端生态（以订阅 / 配置为准）
适配 iOS / Android / Windows / macOS / 路由器
同一账号可多端使用，适合家庭与多设备用户（以套餐规则为准）&lt;/li&gt;
&lt;li&gt;售后与维护
支持提交工单与在线客服，响应快
海外团队持续维护节点网络，优化稳定性与抗干扰能力&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/quanqiu-plan.avif"
loading="lazy"
alt="全球云机场套餐"
&gt;&lt;/p&gt;
&lt;p&gt;测速如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/quanqiu-speedtest.avif"
loading="lazy"
alt="全球云机场测速"
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="极连云机场--三网手搓-bgp"&gt;🔥极连云机场 —— 三网手搓 BGP
&lt;/h3&gt;&lt;div class="airport-card"&gt;&lt;div class="airport-rows"&gt;
&lt;div class="airport-row"&gt;&lt;button type="button" class="airport-coupon" data-code="JLY888" aria-label="复制优惠码 JLY888"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 8 折优惠码&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;JLY888&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;&lt;div class="airport-row"&gt;
&lt;a class="airport-cta" href="https://a01.jlyvipaff.cc/#/?code=tILdRY17" target="_blank" rel="noopener nofollow"&gt;🚀 点我起飞，前往官网&lt;/a&gt;&lt;span class="airport-protocol"&gt;协议 &lt;strong&gt;VLESS&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="airport-row"&gt;
&lt;ul class="airport-features"&gt;&lt;li&gt;&lt;span class="airport-feature-icon no"&gt;✕&lt;/span&gt;不支持订阅链接，无法使用小火箭等第三方客户端&lt;/li&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;提供专属客户端&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;特点：广州电信 / 深圳移动 / 深圳联通三线接入（手搓 BGP）+IEPL 专线！！！新增 96 元 / 年 每月 60G 流量套餐，适合轻度用户（配合 8 折码更优惠）&lt;/p&gt;
&lt;p&gt;专线机场，由新加坡老牌运营团队操刀，线路配置上已经初具高端机场的雏形，三线接入给到了不同网络环境的优化，所有节点均标示可解锁流媒体（如 Netflix、Disney+、TikTok、ChatGPT 等）满足影音+办公双场景解锁，支持 Gemini 的节点也进行了标注，后续会持续优化节点解锁。背靠大厂资源专业性在线，保证线路稳定，八折优惠码已经附上。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/hyperlink-plan.avif"
loading="lazy"
alt="极连云机场套餐"
&gt;&lt;/p&gt;
&lt;p&gt;测速如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/hyperlink-speedtest.avif"
loading="lazy"
alt="极连云机场测速"
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="中度使用聊天上网"&gt;中度使用，聊天上网
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;预算有限&lt;/strong&gt;，愿意适当的为科学上网付费&lt;/li&gt;
&lt;li&gt;时不时看看 Youtube、Netflix、Disney+ 等流媒体&lt;/li&gt;
&lt;li&gt;Telegram 聊天，偶尔看看视频&lt;/li&gt;
&lt;li&gt;速度和时延不是特别敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="星岛梦--高性价比新机场"&gt;🔥星岛梦 —— 高性价比新机场
&lt;/h3&gt;&lt;div class="airport-card"&gt;&lt;div class="airport-info"&gt;开业最大优惠，新老用户、新开续费均可。长期有效。&lt;/div&gt;&lt;div class="airport-rows"&gt;
&lt;div class="airport-row"&gt;&lt;button type="button" class="airport-coupon" data-code="XDM888" aria-label="复制优惠码 XDM888"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 全场 88 折&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;XDM888&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;&lt;button type="button" class="airport-coupon" data-code="JF88" aria-label="复制优惠码 JF88"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 季付专属 88 折优惠卷&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;JF88&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;&lt;button type="button" class="airport-coupon" data-code="BN85" aria-label="复制优惠码 BN85"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 半年付专属 85 折优惠卷&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;BN85&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;&lt;button type="button" class="airport-coupon" data-code="NF80" aria-label="复制优惠码 NF80"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 年付专属 8 折优惠卷&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;NF80&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;&lt;button type="button" class="airport-coupon" data-code="LN70" aria-label="复制优惠码 LN70"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 两年付专属 7 折优惠卷&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;LN70&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;&lt;button type="button" class="airport-coupon" data-code="SN60" aria-label="复制优惠码 SN60"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 三年付专属 6 折优惠卷&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;SN60&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;&lt;div class="airport-row"&gt;
&lt;a class="airport-cta" href="https://kltw01.xdmvipaff.cc/#/register?code=O7VQztxS" target="_blank" rel="noopener nofollow"&gt;🚀 点我起飞，前往官网&lt;/a&gt;&lt;a class="airport-mirror" href="https://a01.sdmvipaff.cc/#/register?code=O7VQztxS" target="_blank" rel="noopener nofollow"&gt;🛰️ 备用入口&lt;/a&gt;&lt;a class="airport-mirror" href="https://sdm01.thundermouse.cc/#/register?code=O7VQztxS" target="_blank" rel="noopener nofollow"&gt;🛰️ 备用入口&lt;/a&gt;&lt;span class="airport-protocol"&gt;协议 &lt;strong&gt;VLESS&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="airport-row"&gt;
&lt;ul class="airport-features"&gt;&lt;li&gt;&lt;span class="airport-feature-icon no"&gt;✕&lt;/span&gt;不支持订阅链接，无法使用小火箭等第三方客户端&lt;/li&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;提供专属客户端&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;特点：新兴 IEPL 专线机场，专注于稳定流媒体验与跨境业务场景，高性价比机场，晚高峰速度稳定！&lt;/p&gt;
&lt;p&gt;IEPL 专线机场，基于高品质线路与 Trojan 等主流协议打造，专注于稳定流媒体验与跨境业务场景。全线支持解锁各大流媒体平台（如 Netflix、Disney+、YouTube 等）， 解锁 ChatGPT、Gemini 等 AI 服务 ，支持 TikTok 跨区，适合跨境电商、店群、直播运营、远程办公等高要求用户使用。&lt;/p&gt;
&lt;p&gt;套餐无倍率、不限速、不限制设备数量（合理使用前提），支持支付宝、USDT 多种付款方式。&lt;/p&gt;
&lt;p&gt;除港、台、日、美、新五大常规节点外，星岛梦还提供东南亚多国、韩国及多家欧美国家节点覆盖，价格亲民，月付低至 16 元起，还支持 1T 大流量永久不限时套餐，是专线圈中少见的高性价比选择。售后方面由多人客服团队轮流值班，配合海外技术团队长期维护，可视需求提供小火箭下载账号、TG 代注册等增值服务。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/thundermouse-plan.avif"
loading="lazy"
alt="星岛梦机场套餐"
&gt;&lt;/p&gt;
&lt;p&gt;测速如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/thundermouse-speedtest.avif"
loading="lazy"
alt="星岛梦机场测速"
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="光速云--中转优化"&gt;🔥光速云 —— 中转优化
&lt;/h3&gt;&lt;div class="airport-card"&gt;&lt;div class="airport-rows"&gt;
&lt;div class="airport-row"&gt;&lt;button type="button" class="airport-coupon" data-code="AMM" aria-label="复制优惠码 AMM"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 8 折优惠码&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;AMM&lt;/span&gt;
&lt;span class="airport-coupon-feedback"&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;&lt;div class="airport-row"&gt;
&lt;a class="airport-cta" href="https://kaelthw.gsyaff.com/#/?code=Hdf63iSY" target="_blank" rel="noopener nofollow"&gt;🚀 点我起飞，前往官网&lt;/a&gt;&lt;span class="airport-protocol"&gt;协议 &lt;strong&gt;VLESS&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="airport-row"&gt;
&lt;ul class="airport-features"&gt;&lt;li&gt;&lt;span class="airport-feature-icon no"&gt;✕&lt;/span&gt;不支持订阅链接，无法使用小火箭等第三方客户端&lt;/li&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;提供专属客户端&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;特点：定价实惠便宜机场梯子工具，月付17元110G，极具性价比，最低可至0.15元/GB。全部节点线路采用隧道中转优化及高速专线，可选择全球节点，提供最优质线路。&lt;/p&gt;
&lt;p&gt;节点数量完善至 60+ 独立 IP，带宽 2GB 以上，高峰期冗余 500M。
海外技术团队运营安全稳定不会跑路优质机场。
原生 IP 所有套餐均支持 Netflix、TVB、TikTok 等国外流媒体解锁。
支持提交工单、在线客服，响应快速，教程网站与软件完善；
常用地区：香港|台湾|日本|新加坡|马来西亚|美国|韩国|越南|菲律宾|泰国|德国|法国|英国&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/lightspeed-plan.avif"
loading="lazy"
alt="光速云机场套餐"
&gt;&lt;/p&gt;
&lt;p&gt;测速如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/lightspeed-speedtest.avif"
loading="lazy"
alt="光速云机场测速"
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="重度使用稳定可靠"&gt;重度使用，稳定可靠
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;不在乎价格&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Netflix、Disney+ 等流媒体重度依赖&lt;/li&gt;
&lt;li&gt;长期看不能直连的 Emby 公益服&lt;/li&gt;
&lt;li&gt;Telegram 上看视频&lt;/li&gt;
&lt;li&gt;办公强依赖&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;em&gt;&lt;strong&gt;低时延&lt;/strong&gt;&lt;/em&gt;要求&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="tag--机场中的排头兵"&gt;🔥TAG —— 机场中的排头兵
&lt;/h3&gt;&lt;div class="airport-card"&gt;&lt;div class="airport-rows"&gt;
&lt;div class="airport-row"&gt;&lt;button type="button" class="airport-coupon expired" disabled aria-label="已过期的优惠码"&gt;
&lt;span class="airport-coupon-desc"&gt;🏷️ 9 折优惠码&lt;/span&gt;
&lt;span class="airport-coupon-code"&gt;Christmas&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;&lt;div class="airport-row"&gt;
&lt;a class="airport-cta" href="https://558343.dedicated-afflink.com/#/auth/2neqgxFl" target="_blank" rel="noopener nofollow"&gt;🚀 点我起飞，前往官网&lt;/a&gt;&lt;span class="airport-protocol"&gt;协议 &lt;strong&gt;Shadowsocks&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="airport-row"&gt;
&lt;ul class="airport-features"&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;支持订阅链接，可在小火箭等第三方客户端使用&lt;/li&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;提供专属客户端&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;特点：比较贵，节点覆盖面广，速度较快，稳定。有&lt;strong&gt;游戏专用节点&lt;/strong&gt;，游戏加速效果不错。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;特别提醒：该机场禁用了 22 端口，这点对开发者不太友好，尤其影响 Git SSH，如果你是开发者则慎重购买。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;全球 250+ 节点、99+ 流媒体解锁，线路是全 BGP-IEPL 广港 + BGP-IEPL 沪日中转，全球 90+ 国家地区节点，&lt;strong&gt;地区覆盖范围是最广的&lt;/strong&gt;，什么奇奇怪怪的国家地区都有，就连南极、美国星链也有。想象以下，发帖回帖，地区显示南极😁！&lt;/p&gt;
&lt;p&gt;同样的 Netflix、Disney+ 等流媒体，该解锁的都解锁了，ChatGPT 也是。&lt;/p&gt;
&lt;p&gt;他家有一个特别套餐，154CNY/Year，总共 200G 流量，用作备用防失联特别好，或者需要一些罕见地区的时候。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/tagss-plan-sp.avif"
loading="lazy"
alt="TAG特殊套餐"
&gt;&lt;/p&gt;
&lt;p&gt;其他套餐价格如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/tagss-plan.avif"
loading="lazy"
alt="TAG套餐"
&gt;&lt;/p&gt;
&lt;p&gt;电信测速，可以参考下。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/tagss-speedtest.avif"
loading="lazy"
alt="TAG测速"
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="nexitally--老牌机场佩奇家奶昔"&gt;🔥Nexitally —— 老牌机场佩奇家、奶昔
&lt;/h3&gt;&lt;div class="airport-card"&gt;&lt;div class="airport-rows"&gt;&lt;div class="airport-row"&gt;
&lt;a class="airport-cta" href="https://nxonearth.com/signupbyemail.aspx?MemberCode=5753cb7ae8b241a0bf7a55ae3330f8bc20210411040001" target="_blank" rel="noopener nofollow"&gt;🚀 点我起飞，前往官网&lt;/a&gt;&lt;a class="airport-mirror" href="https://naiixi.com/signupbyemail.aspx?MemberCode=5753cb7ae8b241a0bf7a55ae3330f8bc20210411040001" target="_blank" rel="noopener nofollow"&gt;🛰️ 备用入口&lt;/a&gt;&lt;span class="airport-protocol"&gt;协议 &lt;strong&gt;AnyTLS / SS(日落) / Trojan(日落)&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="airport-row"&gt;
&lt;ul class="airport-features"&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;支持订阅链接，可在小火箭等第三方客户端使用&lt;/li&gt;&lt;li&gt;&lt;span class="airport-feature-icon ok"&gt;✓&lt;/span&gt;提供专属客户端&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;特点：昂贵，稳定，流量还行，速度快，晚高峰也稳定有速度。出问题的时候，也是自己把自己折腾挂了。&lt;/p&gt;
&lt;p&gt;2026年6月将全面切换到 AnyTLS 协议。&lt;/p&gt;
&lt;p&gt;官网打不开的话先挂个别的代理。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://www.duyaoss.com/" target="_blank" rel="noopener"
&gt;毒药&lt;/a&gt;推荐中的第一名，佩奇家中转线路的高端机场，稳定性和速度都非常错，价格高昂，但是对于追求稳定性的用户也还能接受。&lt;/p&gt;
&lt;p&gt;这也是我个人主要使用的，已经使用三年了，目前应该是第四年。&lt;/p&gt;
&lt;p&gt;Netflix、Disney+ 等流媒体，该解锁的都解锁了，ChatGPT 也是可以正常用的。&lt;/p&gt;
&lt;p&gt;有自己的傻瓜客户端，可以登录后一键连接。&lt;/p&gt;
&lt;p&gt;套餐情况：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Smart Access：每月 500G 流量，价格受汇率影响，约为 117CNY/Month，约 594CNY/Year，约 1102CNY/Year&lt;/li&gt;
&lt;li&gt;Smart Access Air：每月 200G 流量，价格是 Smart Access 的一半多点，但是&lt;code&gt;限量提供，能不能买到看缘分，买到后可以一直续费&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/nexitally-plan.avif"
loading="lazy"
alt="Nexitally套餐"
&gt;&lt;/p&gt;
&lt;p&gt;毒药的电信测速，可以参考下。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/alecthw/images/refs/heads/master/avif/nexitally-speedtest.avif"
loading="lazy"
alt="Nexitally 测速（来自毒药）"
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="最后"&gt;最后
&lt;/h2&gt;&lt;p&gt;对于刚接触科学上网的朋友，建议先买个廉价的梯子体验个把月，确认自己是否有科学上网的需求、以及科学上网的依赖度有多大，如果确实有需求再考虑换高价稳定的梯子。&lt;/p&gt;
&lt;p&gt;对于海淘的朋友，如果只看看商品不亲自购买，一元机场、三分机场这种完全够用，别信海淘群里那种倒卖的，说不定卖给你的就是这种。&lt;/p&gt;</description></item><item><title>AdGuardHome + mosdns + openclash 打造自由的家庭/办公室网络</title><link>https://alecthw.github.io/p/fuck-gfw/</link><pubDate>Sat, 25 Nov 2023 20:32:18 +0800</pubDate><guid>https://alecthw.github.io/p/fuck-gfw/</guid><description>&lt;img src="https://alecthw.github.io/p/fuck-gfw/cover.jpg" alt="Featured image of post AdGuardHome + mosdns + openclash 打造自由的家庭/办公室网络" /&gt;&lt;p&gt;🔥🔥🔥：稳定好用的机场/梯子 &lt;a class="link" href="https://558343.dedicated-afflink.com/#/auth/2neqgxFl" target="_blank" rel="noopener"
&gt;TAG 全球250+节点、99+流媒体解锁&lt;/a&gt;，更多参考&lt;a class="link" href="https://alecthw.github.io/p/airport-recommend/" &gt;机场推荐&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;👉 首先推广下自己编译的 OpenWrt &lt;strong&gt;旁路由极简版&lt;/strong&gt;，专为&lt;strong&gt;旁路由&lt;/strong&gt;而制作。 👍👍👍&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;编译脚本以及个人修改的组件依赖全开源，Github Actions 在线编译，安全可靠无后门。&lt;/li&gt;
&lt;li&gt;基于 &lt;a class="link" href="https://github.com/coolsnowwolf/lede" target="_blank" rel="noopener"
&gt;lede&lt;/a&gt; 源码&lt;/li&gt;
&lt;li&gt;默认配置 DHCPv6 Client 接口 lan6。&lt;/li&gt;
&lt;li&gt;默认配置好了 AdGuardHome 、 mosdns 和 openclash （或 ssrp ）的搭配运行配置。&lt;/li&gt;
&lt;li&gt;openclash 预置 clash_meta 内核。&lt;/li&gt;
&lt;li&gt;mosdns 使用了 &lt;a class="link" href="https://github.com/alecthw/mosdns" target="_blank" rel="noopener"
&gt;自己的修改版&lt;/a&gt;，支持 MMDB GeoIP 匹配。&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;版本&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;th style="text-align: center"&gt;下载地址&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;x86&lt;/td&gt;
&lt;td&gt;包含 ssrp 和 openclash，&lt;a class="link" href="https://github.com/alecthw/openwrt-actions/blob/master/user/lede-common-x86-amd64/README.md" target="_blank" rel="noopener"
&gt;详细说明&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;a class="link" href="https://github.com/alecthw/openwrt-actions/releases/tag/lede-common-x86-amd64" target="_blank" rel="noopener"
&gt;下载&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;x86 openclash 专版&lt;/td&gt;
&lt;td&gt;仅包含 openclash，注意此固件默认不劫持 53 端口，&lt;a class="link" href="https://github.com/alecthw/openwrt-actions/blob/master/user/lede-openclash-x86-amd64/README.md" target="_blank" rel="noopener"
&gt;详细说明&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;a class="link" href="https://github.com/alecthw/openwrt-actions/releases/tag/lede-openclash-x86-amd64" target="_blank" rel="noopener"
&gt;下载&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;r2s&lt;/td&gt;
&lt;td&gt;包含 ssrp 和 openclash，&lt;a class="link" href="https://github.com/alecthw/openwrt-actions/blob/master/user/lede-common-r2s-arm64/README.md" target="_blank" rel="noopener"
&gt;详细说明&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;a class="link" href="https://github.com/alecthw/openwrt-actions/releases/tag/lede-common-r2s-arm64" target="_blank" rel="noopener"
&gt;下载&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;n1&lt;/td&gt;
&lt;td&gt;包含 ssrp 和 openclash，&lt;a class="link" href="https://github.com/alecthw/openwrt-actions/blob/master/user/lede-common-n1-arm64/README.md" target="_blank" rel="noopener"
&gt;详细说明&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;a class="link" href="https://github.com/alecthw/openwrt-actions/releases/tag/lede-common-n1-arm64" target="_blank" rel="noopener"
&gt;下载&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;注意，旁路由固件默认未开启DHCP，旁路由固件默认未开启DHCP，旁路由固件默认未开启DHCP！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;所以，如果不在控制台修改IP，请修改电脑的IP访问，然后可以在网页修改。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="前言"&gt;前言
&lt;/h2&gt;&lt;p&gt;CN网络的阻断方式主要有两个部分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GFW 阻断&lt;/li&gt;
&lt;li&gt;DNS 污染&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GFW 阻断就是我们常说的&lt;code&gt;被墙了&lt;/code&gt;，即使是DNS没有被污染，也无法访问到。&lt;/p&gt;
&lt;p&gt;DNS 污染即让你访问网站时，无法获得域名对应的IP地址，从而导致无法访问到网站。DNS 污染在移动宽带中尤为典型，即使自定义了DNS 服务器，也会被拦截污染。&lt;/p&gt;
&lt;p&gt;要实现科学上网，必须同时解决&lt;code&gt;GFW 阻断&lt;/code&gt;和&lt;code&gt;DNS 污染&lt;/code&gt;，并且两者配合以提高网络访问体验。&lt;/p&gt;
&lt;p&gt;代理中的DNS知识，可以参考 Sukka 的这篇文章&lt;a class="link" href="https://blog.skk.moe/post/what-happend-to-dns-in-proxy/" target="_blank" rel="noopener"
&gt;《浅谈在代理环境中的 DNS 解析行为》&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="路由器科学上网和终端科学上网的区别"&gt;路由器科学上网和终端科学上网的区别
&lt;/h3&gt;&lt;p&gt;路由器上配置透明代理，和在终端PC上直接通过客户端，最主要的区别是 DNS 解析。&lt;/p&gt;
&lt;h4 id="pc终端上"&gt;PC终端上
&lt;/h4&gt;&lt;p&gt;通常有以下几个步骤&lt;/p&gt;
&lt;ol&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;第3步里的配置系统代理，通常有&lt;code&gt;http&lt;/code&gt;和&lt;code&gt;sock5&lt;/code&gt;两种。&lt;/p&gt;
&lt;p&gt;此时，打开浏览器访问一个网站：&lt;/p&gt;
&lt;p&gt;当使用&lt;code&gt;http&lt;/code&gt;代理时，浏览器不会在本地进行 DNS 解析，请求的域名会作为 http 报文的一部分直接发给代理服务器（科学上网客户端），DNS 完全在代理服务器（科学上网客户端）上处理。&lt;/p&gt;
&lt;p&gt;当使用&lt;code&gt;sock5&lt;/code&gt;代理时，&lt;code&gt;sock5&lt;/code&gt;支持UDP，DNS 解析会封装在&lt;code&gt;sock5&lt;/code&gt;之中，发给代理服务器（科学上网客户端）处理，浏览器拿到 IP 地址后，在发起连接。&lt;/p&gt;
&lt;h4 id="路由器上配置透明代理"&gt;路由器上配置透明代理
&lt;/h4&gt;&lt;p&gt;此时，科学上网客户端运行在路由器上，PC 终端是看不见代理的，所以叫透明代理。PC 终端上，请求的发起的流程照旧，先进行 DNS 解析，拿到 IP 后再发起请求。&lt;/p&gt;
&lt;p&gt;在这种情况下，对于路由器上运行的科学上网客户端来说，域名和 IP 是两个请求，有的会内置 Mapping 机制（例如 Clash），用来还原 IP 到域名。&lt;/p&gt;
&lt;p&gt;这种情况下，优惠DNS配置就相对比较重要了，否则针对部署的CDN的网站不能做到最优访问。&lt;/p&gt;
&lt;h2 id="正文开始配置--dns-优化"&gt;正文开始：配置 &amp;amp; DNS 优化
&lt;/h2&gt;&lt;p&gt;本文主要考虑的是自由的局域网环境，所以只介绍路由器上科学上网配置。&lt;/p&gt;
&lt;p&gt;首先分析下要实现的目标：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;双栈网络
&lt;ul&gt;
&lt;li&gt;国内网络使用 IPV4 &amp;amp; IPV6 双栈&lt;/li&gt;
&lt;li&gt;科学上网仅使用 IPV4&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;国内外分流&lt;/li&gt;
&lt;li&gt;DNS分流
&lt;ul&gt;
&lt;li&gt;国内域名由国内 DNS 服务器解析&lt;/li&gt;
&lt;li&gt;国外域名经过代理由国外 DNS 服务器&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="国内外和应用分流"&gt;国内外和应用分流
&lt;/h3&gt;&lt;p&gt;这个没啥好多说的，按文档配置规则就行。也可参考文末给出的示例配置。&lt;/p&gt;
&lt;h3 id="dns-优化目标"&gt;DNS 优化目标
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;广告过滤：使用 AdGuardHome&lt;/li&gt;
&lt;li&gt;DNS分流：使用 mosdns
&lt;ul&gt;
&lt;li&gt;其中，境外网站屏蔽 IPV6 应答&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;如果使用 openclash，DNS 必须经过 clash 内核，以使 DNS 完成 IP &amp;lt;&amp;ndash;&amp;gt; Domain 的 mapping&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PS: mosdns 使用 &lt;a class="link" href="https://github.com/alecthw/mosdns" target="_blank" rel="noopener"
&gt;alecthw 修改版&lt;/a&gt;，支持 MMDB GeoIP 匹配&lt;/p&gt;
&lt;h3 id="多级-dns-级联"&gt;多级 DNS 级联
&lt;/h3&gt;&lt;pre class="mermaid"&gt;flowchart LR
A[AdGuardHome, Port 53, no cache] -- 主要 --&amp;gt; B[openclash, Port 7874]
B --&amp;gt; C[mosdns, Port 5335]
A -- 备用\n防止 openclash 为运行时网络无法访问 --&amp;gt; C&lt;/pre&gt;
&lt;p&gt;配置过程如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;修改了 dnsmasq 的默认端口号，用 AdGuardHome 监听53端口作为默认的DNS解析。&lt;/li&gt;
&lt;li&gt;AdGuardHome 可以监控的各个终端的 DNS 请求，并使用广告过滤和管控功能。&lt;/li&gt;
&lt;li&gt;openclash 作为 AdGuardHome 的上游。&lt;/li&gt;
&lt;li&gt;mosdns 作为 AdGuardHome 的上游备用服务器。&lt;/li&gt;
&lt;li&gt;openclash 中&lt;code&gt;本地 DNS 劫持&lt;/code&gt;设置为&lt;code&gt;停用&lt;/code&gt;，当 openclash 运行时，openclash 作为 AdGuardHome 的上游主要服务器&lt;code&gt;生效&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;openclash 复写设置中，启用自定义上游 DNS 服务器，并指定 mosdns 为唯一上游。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如此一来，最终的 DNS 请求由 mosdns 发出，请求会经过 openclash 分流，按请求的 DNS 服务器直连或走代理。DNS 请求整个流程如下：&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart TB
A((电脑/手机\n浏览器)) -- DNS 请求 --&amp;gt; B[路由器\nAdGuardHome]
B --&amp;gt; C[路由器\nopenclash DNS]
C --&amp;gt; D[路由器\nmosdns]
D --&amp;gt; E[路由器\nopenclash Proxy Client]
E -- 国外 DNS 服务器\n屏蔽ipv6应答 --&amp;gt; F[服务器\nProxy Server]
E -- 国内 DNS 服务器 --&amp;gt; N(Internet)
F --&amp;gt; N&lt;/pre&gt;
&lt;p&gt;如此，便实现了&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AdGuardHome 的管控和广告过滤&lt;/li&gt;
&lt;li&gt;mosdns 分流 DNS，并屏蔽非中国大陆 IP 的 IPV6 应答&lt;/li&gt;
&lt;li&gt;DNS 经过 clash 内核，迎合其 mapping 机制&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="配置示例"&gt;配置示例
&lt;/h3&gt;&lt;p&gt;👍 再次提醒，文章开始处的固件，所有配置已内置哦！&lt;/p&gt;
&lt;h4 id="dnsmasq"&gt;dnsmasq
&lt;/h4&gt;&lt;p&gt;&lt;img src="https://alecthw.github.io/p/fuck-gfw/dnsmasq.png"
width="1453"
height="84"
srcset="https://alecthw.github.io/p/fuck-gfw/dnsmasq_hu_8dde67a0bf170421.png 480w, https://alecthw.github.io/p/fuck-gfw/dnsmasq_hu_2fbd1d23ca5e75.png 1024w"
loading="lazy"
alt="dnsmasq"
class="gallery-image"
data-flex-grow="1729"
data-flex-basis="4151px"
&gt;&lt;/p&gt;
&lt;h4 id="adguardhome"&gt;AdGuardHome
&lt;/h4&gt;&lt;p&gt;&lt;img src="https://alecthw.github.io/p/fuck-gfw/adguardhome_1.png"
width="1424"
height="197"
srcset="https://alecthw.github.io/p/fuck-gfw/adguardhome_1_hu_c992170fd789b40b.png 480w, https://alecthw.github.io/p/fuck-gfw/adguardhome_1_hu_e1c7959fc01d8c59.png 1024w"
loading="lazy"
alt="adguardhome_1"
class="gallery-image"
data-flex-grow="722"
data-flex-basis="1734px"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/fuck-gfw/adguardhome_2.png"
width="1427"
height="440"
srcset="https://alecthw.github.io/p/fuck-gfw/adguardhome_2_hu_5f1e52ad9148103d.png 480w, https://alecthw.github.io/p/fuck-gfw/adguardhome_2_hu_a20efb7f925490ca.png 1024w"
loading="lazy"
alt="adguardhome_2"
class="gallery-image"
data-flex-grow="324"
data-flex-basis="778px"
&gt;&lt;/p&gt;
&lt;h4 id="openclash"&gt;openclash
&lt;/h4&gt;&lt;p&gt;&lt;img src="https://alecthw.github.io/p/fuck-gfw/openclash_1.png"
width="1731"
height="246"
srcset="https://alecthw.github.io/p/fuck-gfw/openclash_1_hu_a3039dd9bc0f1dce.png 480w, https://alecthw.github.io/p/fuck-gfw/openclash_1_hu_fec08253ff901336.png 1024w"
loading="lazy"
alt="openclash_1"
class="gallery-image"
data-flex-grow="703"
data-flex-basis="1688px"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/fuck-gfw/openclash_2.png"
width="1745"
height="293"
srcset="https://alecthw.github.io/p/fuck-gfw/openclash_2_hu_a5a424c0302e51b3.png 480w, https://alecthw.github.io/p/fuck-gfw/openclash_2_hu_eb90f14793ed65ab.png 1024w"
loading="lazy"
alt="openclash_2"
class="gallery-image"
data-flex-grow="595"
data-flex-basis="1429px"
&gt;&lt;/p&gt;
&lt;p&gt;注意删除默认的DNS配置，仅保留这一个即可。&lt;/p&gt;
&lt;h4 id="mosdns"&gt;mosdns
&lt;/h4&gt;&lt;p&gt;使用自定义配置，由于使用了 mmdb geoip 匹配，mosdns 必须使用 &lt;a class="link" href="https://github.com/alecthw/mosdns" target="_blank" rel="noopener"
&gt;alecthw 修改版&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;PS: 以下配置中的 &lt;a class="link" href="https://github.com/alecthw/chnlist/blob/release/mosdns/whitelist.list" target="_blank" rel="noopener"
&gt;cn-white.txt&lt;/a&gt;，来自项目 &lt;a class="link" href="https://github.com/alecthw/chnlist" target="_blank" rel="noopener"
&gt;chnlist&lt;/a&gt;，我编译的固件已内置并设置自动更新，其他固件需要手动下载。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt; 10
&lt;/span&gt;&lt;span class="lnt"&gt; 11
&lt;/span&gt;&lt;span class="lnt"&gt; 12
&lt;/span&gt;&lt;span class="lnt"&gt; 13
&lt;/span&gt;&lt;span class="lnt"&gt; 14
&lt;/span&gt;&lt;span class="lnt"&gt; 15
&lt;/span&gt;&lt;span class="lnt"&gt; 16
&lt;/span&gt;&lt;span class="lnt"&gt; 17
&lt;/span&gt;&lt;span class="lnt"&gt; 18
&lt;/span&gt;&lt;span class="lnt"&gt; 19
&lt;/span&gt;&lt;span class="lnt"&gt; 20
&lt;/span&gt;&lt;span class="lnt"&gt; 21
&lt;/span&gt;&lt;span class="lnt"&gt; 22
&lt;/span&gt;&lt;span class="lnt"&gt; 23
&lt;/span&gt;&lt;span class="lnt"&gt; 24
&lt;/span&gt;&lt;span class="lnt"&gt; 25
&lt;/span&gt;&lt;span class="lnt"&gt; 26
&lt;/span&gt;&lt;span class="lnt"&gt; 27
&lt;/span&gt;&lt;span class="lnt"&gt; 28
&lt;/span&gt;&lt;span class="lnt"&gt; 29
&lt;/span&gt;&lt;span class="lnt"&gt; 30
&lt;/span&gt;&lt;span class="lnt"&gt; 31
&lt;/span&gt;&lt;span class="lnt"&gt; 32
&lt;/span&gt;&lt;span class="lnt"&gt; 33
&lt;/span&gt;&lt;span class="lnt"&gt; 34
&lt;/span&gt;&lt;span class="lnt"&gt; 35
&lt;/span&gt;&lt;span class="lnt"&gt; 36
&lt;/span&gt;&lt;span class="lnt"&gt; 37
&lt;/span&gt;&lt;span class="lnt"&gt; 38
&lt;/span&gt;&lt;span class="lnt"&gt; 39
&lt;/span&gt;&lt;span class="lnt"&gt; 40
&lt;/span&gt;&lt;span class="lnt"&gt; 41
&lt;/span&gt;&lt;span class="lnt"&gt; 42
&lt;/span&gt;&lt;span class="lnt"&gt; 43
&lt;/span&gt;&lt;span class="lnt"&gt; 44
&lt;/span&gt;&lt;span class="lnt"&gt; 45
&lt;/span&gt;&lt;span class="lnt"&gt; 46
&lt;/span&gt;&lt;span class="lnt"&gt; 47
&lt;/span&gt;&lt;span class="lnt"&gt; 48
&lt;/span&gt;&lt;span class="lnt"&gt; 49
&lt;/span&gt;&lt;span class="lnt"&gt; 50
&lt;/span&gt;&lt;span class="lnt"&gt; 51
&lt;/span&gt;&lt;span class="lnt"&gt; 52
&lt;/span&gt;&lt;span class="lnt"&gt; 53
&lt;/span&gt;&lt;span class="lnt"&gt; 54
&lt;/span&gt;&lt;span class="lnt"&gt; 55
&lt;/span&gt;&lt;span class="lnt"&gt; 56
&lt;/span&gt;&lt;span class="lnt"&gt; 57
&lt;/span&gt;&lt;span class="lnt"&gt; 58
&lt;/span&gt;&lt;span class="lnt"&gt; 59
&lt;/span&gt;&lt;span class="lnt"&gt; 60
&lt;/span&gt;&lt;span class="lnt"&gt; 61
&lt;/span&gt;&lt;span class="lnt"&gt; 62
&lt;/span&gt;&lt;span class="lnt"&gt; 63
&lt;/span&gt;&lt;span class="lnt"&gt; 64
&lt;/span&gt;&lt;span class="lnt"&gt; 65
&lt;/span&gt;&lt;span class="lnt"&gt; 66
&lt;/span&gt;&lt;span class="lnt"&gt; 67
&lt;/span&gt;&lt;span class="lnt"&gt; 68
&lt;/span&gt;&lt;span class="lnt"&gt; 69
&lt;/span&gt;&lt;span class="lnt"&gt; 70
&lt;/span&gt;&lt;span class="lnt"&gt; 71
&lt;/span&gt;&lt;span class="lnt"&gt; 72
&lt;/span&gt;&lt;span class="lnt"&gt; 73
&lt;/span&gt;&lt;span class="lnt"&gt; 74
&lt;/span&gt;&lt;span class="lnt"&gt; 75
&lt;/span&gt;&lt;span class="lnt"&gt; 76
&lt;/span&gt;&lt;span class="lnt"&gt; 77
&lt;/span&gt;&lt;span class="lnt"&gt; 78
&lt;/span&gt;&lt;span class="lnt"&gt; 79
&lt;/span&gt;&lt;span class="lnt"&gt; 80
&lt;/span&gt;&lt;span class="lnt"&gt; 81
&lt;/span&gt;&lt;span class="lnt"&gt; 82
&lt;/span&gt;&lt;span class="lnt"&gt; 83
&lt;/span&gt;&lt;span class="lnt"&gt; 84
&lt;/span&gt;&lt;span class="lnt"&gt; 85
&lt;/span&gt;&lt;span class="lnt"&gt; 86
&lt;/span&gt;&lt;span class="lnt"&gt; 87
&lt;/span&gt;&lt;span class="lnt"&gt; 88
&lt;/span&gt;&lt;span class="lnt"&gt; 89
&lt;/span&gt;&lt;span class="lnt"&gt; 90
&lt;/span&gt;&lt;span class="lnt"&gt; 91
&lt;/span&gt;&lt;span class="lnt"&gt; 92
&lt;/span&gt;&lt;span class="lnt"&gt; 93
&lt;/span&gt;&lt;span class="lnt"&gt; 94
&lt;/span&gt;&lt;span class="lnt"&gt; 95
&lt;/span&gt;&lt;span class="lnt"&gt; 96
&lt;/span&gt;&lt;span class="lnt"&gt; 97
&lt;/span&gt;&lt;span class="lnt"&gt; 98
&lt;/span&gt;&lt;span class="lnt"&gt; 99
&lt;/span&gt;&lt;span class="lnt"&gt;100
&lt;/span&gt;&lt;span class="lnt"&gt;101
&lt;/span&gt;&lt;span class="lnt"&gt;102
&lt;/span&gt;&lt;span class="lnt"&gt;103
&lt;/span&gt;&lt;span class="lnt"&gt;104
&lt;/span&gt;&lt;span class="lnt"&gt;105
&lt;/span&gt;&lt;span class="lnt"&gt;106
&lt;/span&gt;&lt;span class="lnt"&gt;107
&lt;/span&gt;&lt;span class="lnt"&gt;108
&lt;/span&gt;&lt;span class="lnt"&gt;109
&lt;/span&gt;&lt;span class="lnt"&gt;110
&lt;/span&gt;&lt;span class="lnt"&gt;111
&lt;/span&gt;&lt;span class="lnt"&gt;112
&lt;/span&gt;&lt;span class="lnt"&gt;113
&lt;/span&gt;&lt;span class="lnt"&gt;114
&lt;/span&gt;&lt;span class="lnt"&gt;115
&lt;/span&gt;&lt;span class="lnt"&gt;116
&lt;/span&gt;&lt;span class="lnt"&gt;117
&lt;/span&gt;&lt;span class="lnt"&gt;118
&lt;/span&gt;&lt;span class="lnt"&gt;119
&lt;/span&gt;&lt;span class="lnt"&gt;120
&lt;/span&gt;&lt;span class="lnt"&gt;121
&lt;/span&gt;&lt;span class="lnt"&gt;122
&lt;/span&gt;&lt;span class="lnt"&gt;123
&lt;/span&gt;&lt;span class="lnt"&gt;124
&lt;/span&gt;&lt;span class="lnt"&gt;125
&lt;/span&gt;&lt;span class="lnt"&gt;126
&lt;/span&gt;&lt;span class="lnt"&gt;127
&lt;/span&gt;&lt;span class="lnt"&gt;128
&lt;/span&gt;&lt;span class="lnt"&gt;129
&lt;/span&gt;&lt;span class="lnt"&gt;130
&lt;/span&gt;&lt;span class="lnt"&gt;131
&lt;/span&gt;&lt;span class="lnt"&gt;132
&lt;/span&gt;&lt;span class="lnt"&gt;133
&lt;/span&gt;&lt;span class="lnt"&gt;134
&lt;/span&gt;&lt;span class="lnt"&gt;135
&lt;/span&gt;&lt;span class="lnt"&gt;136
&lt;/span&gt;&lt;span class="lnt"&gt;137
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 白名单模式&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 白名单 或 境外查询IP是geoip:CN，走国内&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;log&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;level&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;info&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/tmp/mosdns.log&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# mmdb&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;country&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;mmdb&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/etc/mosdns/rule/Country.mmdb&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# cn ip&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;whitelist&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;domain_set&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;files&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;/etc/mosdns/rule/cn-white.txt&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 广告域名列表 geosite:category-ads-all&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;geosite_ads&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;domain_set&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;files&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;/etc/mosdns/rule/reject-list.txt&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# hosts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;hosts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;hosts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;entries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;localhost 127.0.0.1&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 缓存&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;cache&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;cache&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;20480&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;lazy_cache_ttl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;86400&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;dump_file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/etc/mosdns/cache.dump&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;dump_interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1800&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 查询境外DNS&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;forward_global&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;forward&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;concurrent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;upstreams&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Google_dot&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;addr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tls://8.8.4.4&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enable_pipeline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Quad9_dot&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;addr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tls://9.9.9.9&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enable_pipeline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Cloudflare_dot&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;addr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tls://1.0.0.1&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enable_pipeline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;OpenDNS_dot&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;addr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tls://208.67.222.222&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enable_pipeline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 查询国内DNS&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;forward_china&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;forward&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;concurrent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;upstreams&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Ali_dot&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;addr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tls://223.5.5.5&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enable_pipeline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;DNSPod_dot&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;addr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tls://120.53.53.53&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enable_pipeline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 境外解析，优先IPV4&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;global_sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;qname $whitelist&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;return&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;prefer_ipv4&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;$forward_global&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;resp_ip_mmdb $country CN&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;drop_resp&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 国内解析，不设置过滤，作为fallback&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;china_sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;$forward_china&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 屏蔽解析&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;reject_sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;qname $geosite_ads&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;reject 3&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;qtype 12&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;reject 3&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# - matches: qtype 65&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# exec: reject 3&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 如果 primary 抛出错误，或返回但没有应答，或在 threshold 毫秒内无响应，则执行 secondary。&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 所以在 primary 中不能用 rejcet，reject 也是应答&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# Fallback&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;fallback&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;fallback&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;primary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;global_sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;secondary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;china_sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;threshold&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;150&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;always_standby&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;main_sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;$reject_sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;$hosts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;has_resp&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;accept&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;$cache&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;has_resp&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;accept&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;$fallback&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;has_resp&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ttl 10-600&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;udp_server&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;udp_server&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;main_sequence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0.0.0.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;5335&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id="防火墙劫持-53-端口可选"&gt;防火墙，劫持 53 端口（可选）
&lt;/h4&gt;&lt;p&gt;防止客户端自定义 DNS 服务器，从而绕过管控，可以在防火墙自定义规则配置劫持 53 端口 UDP 和 UDP。&lt;/p&gt;
&lt;p&gt;但是，如果客户端配置加密 DNS 就没法劫持。如果要限制，对于 DoT 和 DoQ 可以屏蔽 853 端口禁用，但是 DoH 就完全没办法。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 同时支持 iptables 和 ip6tables&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dns_redirect&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;cmd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-t nat -A PREROUTING -p &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt; --dport 53 -j REDIRECT --to-ports 53&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;chk&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$cmd&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sed -e &lt;span class="s1"&gt;&amp;#39;s/-A/-C/g&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$cmd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$chk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$2&lt;/span&gt; &lt;span class="nv"&gt;$chk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;ret&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$ret&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -ne &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$2&lt;/span&gt; &lt;span class="nv"&gt;$cmd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dns_redirect udp iptables
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dns_redirect tcp iptables
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt; -v ip6tables&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; dns_redirect udp ip6tables
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt; -v ip6tables&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; dns_redirect tcp ip6tables
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="作为主路由时使用的特别说明"&gt;作为主路由时使用的特别说明
&lt;/h2&gt;&lt;h3 id="主路由-dhcp-服务器"&gt;主路由 DHCP 服务器
&lt;/h3&gt;&lt;p&gt;DHCP 服务器设置中的 DNS 服务器，务必设置成旁路由，不要设置公共 DNS。&lt;/p&gt;
&lt;h3 id="主路由-ipv6"&gt;主路由 IPv6
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;不通告 IPv6 DNS 服务器，DNS 解析全部走 IPv4。&lt;/li&gt;
&lt;li&gt;通告 DNS 服务器为路由器自己，即路由器的链路本地地址。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="作为旁路由时使用的特别说明"&gt;作为旁路由时使用的特别说明
&lt;/h2&gt;&lt;h3 id="旁路由-dhcp-服务器"&gt;旁路由 DHCP 服务器
&lt;/h3&gt;&lt;p&gt;一般情况下建议禁用旁路由 DHCP 服务器，在主路由配置 DHCP 服务器，把网关设置成旁路由，或者通过静态分配指定不同客户端指向不同网关。&lt;/p&gt;
&lt;p&gt;DHCP 服务器设置中的 DNS 服务器，务必设置成旁路由，不要设置公共 DNS。&lt;/p&gt;
&lt;h3 id="旁路由-ipv6"&gt;旁路由 IPv6
&lt;/h3&gt;&lt;p&gt;主路由上请勿通告 IPv6 DNS 服务器（这里指 IPv6 地址的 DNS 服务器，如 2400:3200::1）。通过 IPv4 地址的 DNS 服务器解析域名，一样可以拿到 AAAA 记录，所以没必要开启 IPv6 地址的 DNS 服务器，开启反而会增加配置难度，影响 DNS 分流，并可能造成 DNS 泄露。&lt;/p&gt;
&lt;p&gt;如下查询示例，可以看到，通过 IPv4 DNS 服务器可以获得 IPv6 地址。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ nslookup www.iqiyi.com 223.5.5.5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Server: 223.5.5.5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Address: 223.5.5.5#53
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Non-authoritative answer:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;www.iqiyi.com canonical &lt;span class="nv"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; ipv6-static.dns.iqiyi.com.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Name: ipv6-static.dns.iqiyi.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Address: 101.227.12.45
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Name: ipv6-static.dns.iqiyi.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Address: 101.227.12.41
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Name: ipv6-static.dns.iqiyi.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Address: 240e:e1:a400:1c::22
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Name: ipv6-static.dns.iqiyi.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Address: 240e:e1:a400:1c::21
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Openwrt、iKuai、RouterOS 都是支持不通告 IPv6 DNS 的。如果你的主路由不支持，IPv6 DNS 可以填个无效地址，如 &lt;code&gt;::1&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>手把手教你科学上网 —— 手机篇（sing-box）</title><link>https://alecthw.github.io/p/singbox-help-mobile/</link><pubDate>Thu, 06 Aug 2026 10:16:19 +0800</pubDate><guid>https://alecthw.github.io/p/singbox-help-mobile/</guid><description>&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/cover.png" alt="Featured image of post 手把手教你科学上网 —— 手机篇（sing-box）" /&gt;&lt;h2 id="手机科学上网需要些什么"&gt;手机科学上网需要些什么
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;一部手机（废话）&lt;/li&gt;
&lt;li&gt;机场/梯子，术语叫代理、VPN，推荐购买 &lt;a class="link" href="https://vip.ytjcok.org/#/register?code=dyGofOZw" target="_blank" rel="noopener"
&gt;云图机场&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;客户端软件，文中使用 &lt;a class="link" href="https://github.com/SagerNet/sing-box" target="_blank" rel="noopener"
&gt;sing-box&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;打个比喻，客户端软件是车，机场/梯子是路，两个都有了才能跑。&lt;/p&gt;
&lt;h2 id="说在前面"&gt;说在前面
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;机场/梯子肯定是要花钱买的！这里给你推荐，但不售卖。&lt;/li&gt;
&lt;li&gt;Apple iOS 端安装需要外区账号，如果你没本事注册，就花几块钱买，后面会推荐购买平台。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="具体步骤"&gt;具体步骤
&lt;/h2&gt;&lt;p&gt;不讲原理，只说怎么用。原理可以去参考本博客其他文章。&lt;/p&gt;
&lt;h3 id="1-购买机场梯子"&gt;1. 购买机场/梯子
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;推荐购买：&lt;a class="link" href="https://vip.ytjcok.org/#/register?code=dyGofOZw" target="_blank" rel="noopener"
&gt;云图机场&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其他机场可能需要&lt;strong&gt;订阅转换&lt;/strong&gt;才能在 &lt;a class="link" href="https://github.com/SagerNet/sing-box" target="_blank" rel="noopener"
&gt;sing-box&lt;/a&gt; 上使用。&lt;/p&gt;
&lt;p&gt;以下内容是以云图机场为例，具体步骤大同小异。&lt;/p&gt;
&lt;p&gt;注册后，选择&lt;code&gt;商店&lt;/code&gt;购买，不同套餐一般都是流量不一样，按需购买。购买时间越长一般优惠越大，切合自己需求和经济能力购买。还有一次性流量不显示套餐，比较适合偶尔翻墙的人。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/yuntu-1.jpg"
width="2471"
height="1024"
srcset="https://alecthw.github.io/p/singbox-help-mobile/yuntu-1_hu_347b0302df4c72ef.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/yuntu-1_hu_8936ae899279a167.jpg 1024w"
loading="lazy"
alt="云图购买订阅"
class="gallery-image"
data-flex-grow="241"
data-flex-basis="579px"
&gt;&lt;/p&gt;
&lt;p&gt;购买完成后，回到&lt;code&gt;仪表盘&lt;/code&gt;，点击&lt;code&gt;一键订阅&lt;/code&gt;，再点击&lt;code&gt;复制订阅地址&lt;/code&gt;，保留好这个地址备用，一会儿再回来复制也行。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/yuntu-2.jpg"
width="2440"
height="1450"
srcset="https://alecthw.github.io/p/singbox-help-mobile/yuntu-2_hu_c8c96e958b10839e.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/yuntu-2_hu_3d256aefe2c65c94.jpg 1024w"
loading="lazy"
alt="云图订阅地址"
class="gallery-image"
data-flex-grow="168"
data-flex-basis="403px"
&gt;&lt;/p&gt;
&lt;h3 id="2-安装客户端软件"&gt;2. 安装客户端软件
&lt;/h3&gt;&lt;p&gt;本文推荐使用的是 &lt;a class="link" href="https://github.com/SagerNet/sing-box" target="_blank" rel="noopener"
&gt;sing-box&lt;/a&gt;，简单好用。&lt;/p&gt;
&lt;p&gt;安卓可以直接下载安装，iOS 需要&lt;strong&gt;外区账号&lt;/strong&gt;。&lt;/p&gt;
&lt;h4 id="android-安装"&gt;Android 安装
&lt;/h4&gt;&lt;p&gt;Github 官方下载地址：&lt;a class="link" href="https://github.com/SagerNet/sing-box/releases" target="_blank" rel="noopener"
&gt;https://github.com/SagerNet/sing-box/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;请选择 &lt;code&gt;SFA-{版本号}-universal.apk&lt;/code&gt; 下载，因为不是从商店安装的，手机可能会提示风险，一直允许就行。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/singbox-dl.jpg"
width="1514"
height="559"
srcset="https://alecthw.github.io/p/singbox-help-mobile/singbox-dl_hu_e55fe20e3069f8ed.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/singbox-dl_hu_6e4fbc54bb071c7.jpg 1024w"
loading="lazy"
alt="sing-box 下载"
class="gallery-image"
data-flex-grow="270"
data-flex-basis="650px"
&gt;&lt;/p&gt;
&lt;p&gt;如果下载太慢，可以使用如下下载加速网站，右键复制链接后，贴到输入框里点击下载。&lt;/p&gt;
&lt;p&gt;Github 下载加速：&lt;a class="link" href="https://mirror.ghproxy.com/" target="_blank" rel="noopener"
&gt;https://mirror.ghproxy.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/ghproxy.jpg"
width="2238"
height="911"
srcset="https://alecthw.github.io/p/singbox-help-mobile/ghproxy_hu_6a0e7e2b61f0b07b.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/ghproxy_hu_be2da9249a1cb019.jpg 1024w"
loading="lazy"
alt="Github 下载加速"
class="gallery-image"
data-flex-grow="245"
data-flex-basis="589px"
&gt;&lt;/p&gt;
&lt;h4 id="ios-安装"&gt;iOS 安装
&lt;/h4&gt;&lt;p&gt;由于 iOS 的封闭性，软件只能从 APP Store 安装，然而由于某些不可说的原因，国区商店是没有的，所以只能换&lt;strong&gt;非国区&lt;/strong&gt;下载。&lt;/p&gt;
&lt;h5 id="准备苹果外区账号"&gt;准备苹果外区账号
&lt;/h5&gt;&lt;p&gt;如果你有外区账号，可以跳过本节。&lt;/p&gt;
&lt;p&gt;如果你没有外区账号，自行注册外区账号比较复杂，推荐花 ￥6.6 直接购买一个，地区推荐选择美国。&lt;/p&gt;
&lt;p&gt;苹果外区账号购买：&lt;a class="link" href="https://www.bigplayers.com/shop/detail?id=77&amp;amp;inviteCode=A9245220" target="_blank" rel="noopener"
&gt;https://www.bigplayers.com/shop/detail?id=77&amp;inviteCode=A9245220&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;用外区账号登录 APP Store，务必按下图操作，否则有导致手机被锁的风险：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一定不要使用购买的账号登录 iCloud ！！！&lt;/strong&gt;
&lt;strong&gt;一定不要使用购买的账号登录 iCloud ！！！&lt;/strong&gt;
&lt;strong&gt;一定不要使用购买的账号登录 iCloud ！！！&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;设置--&amp;gt;头像--&amp;gt;媒体购买与订阅&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;li&gt;再点击一次击&lt;code&gt;媒体购买与订阅&lt;/code&gt;选择&lt;code&gt;不是xxx&lt;/code&gt;，输入账号登录&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/apple.jpg"
width="591"
height="1280"
srcset="https://alecthw.github.io/p/singbox-help-mobile/apple_hu_6b8cc2829ad6061f.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/apple_hu_c208ffb097efdf30.jpg 1024w"
loading="lazy"
alt="苹果切换账号"
class="gallery-image"
data-flex-grow="46"
data-flex-basis="110px"
&gt;&lt;/p&gt;
&lt;h5 id="安装-sing-box"&gt;安装 sing-box
&lt;/h5&gt;&lt;p&gt;回到 APP Store，直接搜索 &lt;a class="link" href="https://apps.apple.com/us/app/sing-box/id6451272673" target="_blank" rel="noopener"
&gt;sing-box&lt;/a&gt; 安装即可。&lt;/p&gt;
&lt;p&gt;注意看下 Logo 和开发商，别下错了。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/singbox-app-store.jpg"
width="997"
height="390"
srcset="https://alecthw.github.io/p/singbox-help-mobile/singbox-app-store_hu_f809b6863e4ef7cb.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/singbox-app-store_hu_171902bba29f2114.jpg 1024w"
loading="lazy"
alt="苹果商店里的sing-box"
class="gallery-image"
data-flex-grow="255"
data-flex-basis="613px"
&gt;&lt;/p&gt;
&lt;h3 id="3-使用-sing-box"&gt;3. 使用 sing-box
&lt;/h3&gt;&lt;p&gt;iOS 和 Android 的界面有稍许差别。&lt;/p&gt;
&lt;h4 id="android"&gt;Android
&lt;/h4&gt;&lt;p&gt;最下面选择 &lt;code&gt;Profiles&lt;/code&gt;，点击右下角添加图标，选择 &lt;code&gt;Create Manually&lt;/code&gt;。然后 Type 选择 &lt;code&gt;Remote&lt;/code&gt;，Name 可以任意填，URL 填入前面购买获取的订阅地址，最后点击 &lt;code&gt;Create&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/singbox-android-2.jpg"
width="1280"
height="900"
srcset="https://alecthw.github.io/p/singbox-help-mobile/singbox-android-2_hu_b2140695216b11c9.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/singbox-android-2_hu_19427158ab501de7.jpg 1024w"
loading="lazy"
alt="安卓添加订阅"
class="gallery-image"
data-flex-grow="142"
data-flex-basis="341px"
&gt;&lt;/p&gt;
&lt;p&gt;回到 &lt;code&gt;Dashboard&lt;/code&gt;，选择刚刚创建的 Profile，点击右下角的三角启动。&lt;/p&gt;
&lt;p&gt;首次启动会提示添加 VPN，按提示允许即可。第一次启动时间较长，耐心等待一会儿，直到出现下面第二张图的界面即可使用了。&lt;/p&gt;
&lt;p&gt;启动后默认是&lt;strong&gt;规则模式&lt;/strong&gt;（Rule，国内外自动分流，可以一直开着不关闭）。节点是&lt;strong&gt;自动选择&lt;/strong&gt;，也可按需手动选择。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/singbox-android-3.jpg"
width="1280"
height="675"
srcset="https://alecthw.github.io/p/singbox-help-mobile/singbox-android-3_hu_5d3d5fcd514a6046.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/singbox-android-3_hu_6c555988b0968f5c.jpg 1024w"
loading="lazy"
alt="安卓启动"
class="gallery-image"
data-flex-grow="189"
data-flex-basis="455px"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/singbox-android-1.jpg"
width="606"
height="1280"
srcset="https://alecthw.github.io/p/singbox-help-mobile/singbox-android-1_hu_777a60dd3c05485e.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/singbox-android-1_hu_4c91af9c4cbee145.jpg 1024w"
loading="lazy"
alt="安卓添加 VPN"
class="gallery-image"
data-flex-grow="47"
data-flex-basis="113px"
&gt;&lt;/p&gt;
&lt;h4 id="ios"&gt;iOS
&lt;/h4&gt;&lt;p&gt;iOS 需要先点击 &lt;code&gt;Install Network Extension&lt;/code&gt; 添加 VPN 到系统，如下图。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/singbox-ios-1.jpg"
width="591"
height="1280"
srcset="https://alecthw.github.io/p/singbox-help-mobile/singbox-ios-1_hu_12db9afeac9d7067.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/singbox-ios-1_hu_377e20cddd9a7384.jpg 1024w"
loading="lazy"
alt="iOS 添加 VPN"
class="gallery-image"
data-flex-grow="46"
data-flex-basis="110px"
&gt;&lt;/p&gt;
&lt;p&gt;最下面选择 &lt;code&gt;Profiles&lt;/code&gt;，点击 &lt;code&gt;Create&lt;/code&gt;。然后 Type 选择 &lt;code&gt;Remote&lt;/code&gt;，Name 可以任意填，URL 填入前面购买获取的订阅地址，最后点击 &lt;code&gt;Create&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/singbox-ios-2.jpg"
width="1280"
height="922"
srcset="https://alecthw.github.io/p/singbox-help-mobile/singbox-ios-2_hu_8ee25c28d7307a48.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/singbox-ios-2_hu_40b177bf0a811736.jpg 1024w"
loading="lazy"
alt="iOS 添加订阅"
class="gallery-image"
data-flex-grow="138"
data-flex-basis="333px"
&gt;&lt;/p&gt;
&lt;p&gt;第一次启动时间较长，耐心等待一会儿，直到出现下面第二章图的界面即可使用了。&lt;/p&gt;
&lt;p&gt;启动后默认是&lt;strong&gt;规则模式&lt;/strong&gt;（Rule，国内外自动分流，可以一直开着不关闭）。节点是&lt;strong&gt;自动选择&lt;/strong&gt;，也可按需手动选择。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/singbox-help-mobile/singbox-ios-3.jpg"
width="1280"
height="692"
srcset="https://alecthw.github.io/p/singbox-help-mobile/singbox-ios-3_hu_4a890bcf2f885809.jpg 480w, https://alecthw.github.io/p/singbox-help-mobile/singbox-ios-3_hu_5b0fbb94ab256d63.jpg 1024w"
loading="lazy"
alt="iOS 启动"
class="gallery-image"
data-flex-grow="184"
data-flex-basis="443px"
&gt;&lt;/p&gt;
&lt;h2 id="接下来可以干什么"&gt;接下来可以干什么
&lt;/h2&gt;&lt;p&gt;至此，Google、Youtube、Telegram 等等你都可以访问了，总之，自由了！&lt;/p&gt;
&lt;h2 id="最后"&gt;最后
&lt;/h2&gt;&lt;p&gt;有时候因为特殊原因，机场会刷新订阅地址，如果发现无法使用或者更新不了订阅，请到机场仪表盘重新复制新地址。&lt;/p&gt;
&lt;p&gt;👉: &lt;a class="link" href="https://alecthw.github.io/p/netflix-help/" &gt;看境外流媒体（Netflix、Disney+ 等）的详细教程&lt;/a&gt;&lt;/p&gt;</description></item><item><title>境外流媒体观看简单指南</title><link>https://alecthw.github.io/p/netflix-help/</link><pubDate>Sun, 19 May 2024 11:21:12 +0800</pubDate><guid>https://alecthw.github.io/p/netflix-help/</guid><description>&lt;img src="https://alecthw.github.io/p/netflix-help/cover.jpg" alt="Featured image of post 境外流媒体观看简单指南" /&gt;&lt;p&gt;🔥🔥🔥：稳定好用的机场/梯子 &lt;a class="link" href="https://558343.dedicated-afflink.com/#/auth/2neqgxFl" target="_blank" rel="noopener"
&gt;TAG 全球250+节点、99+流媒体解锁&lt;/a&gt;，更多参考&lt;a class="link" href="https://alecthw.github.io/p/airport-recommend/" &gt;机场推荐&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Nextflix, Disney+ 和 Prime Vedio 是有中文字幕的，推荐在新加坡区观看，账号本身不分区，科学上网节点选择新加坡即可。&lt;/p&gt;
&lt;h2 id="网络环境"&gt;网络环境
&lt;/h2&gt;&lt;p&gt;国外的大部分流媒体厂商，基本都禁止了大陆 IP，并且会检测 VPN。所以，一个能解锁流媒体的 VPN 是必备条件。&lt;/p&gt;
&lt;p&gt;目前大部分机场，基本都解锁了 Nextflix，其他的流媒体不是都解锁，购买时请注意下说明。&lt;a class="link" href="https://alecthw.github.io/p/airport-recommend/" &gt;机场推荐&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;手机科学上网教程可以参考：&lt;a class="link" href="https://alecthw.github.io/p/singbox-help-mobile/" &gt;手把手教你科学上网 —— 手机篇（sing-box）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;路由器科学上网教程可以参考：&lt;a class="link" href="https://alecthw.github.io/p/fuck-gfw/" &gt;AGuardHome + mosdns + openclash 打造自由的家庭/办公室网络&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="账号"&gt;账号
&lt;/h2&gt;&lt;p&gt;Nextflix 已经清退了大部分低价区用户，包括土区也无法使用了，在高价区自己订阅不划算，建议直接购买合租账号。&lt;/p&gt;
&lt;p&gt;这里推荐一个本人使用快四年的一个合租平台：&lt;a class="link" href="https://ihezu.zone/Ks3NUR" target="_blank" rel="noopener"
&gt;奈飞小铺&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;都是平台作为号主的自营车，稳定可靠，9 折优惠码: &lt;code&gt;letsfuckgfw&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/netflix-help/ihezu.jpg"
width="2560"
height="1194"
srcset="https://alecthw.github.io/p/netflix-help/ihezu_hu_312d8e333b91d083.jpg 480w, https://alecthw.github.io/p/netflix-help/ihezu_hu_c906b097a24b316b.jpg 1024w"
loading="lazy"
alt="奈飞小铺"
class="gallery-image"
data-flex-grow="214"
data-flex-basis="514px"
&gt;&lt;/p&gt;
&lt;h2 id="客户端"&gt;客户端
&lt;/h2&gt;&lt;p&gt;网页观看也是可以的，直截了当。&lt;/p&gt;
&lt;h3 id="ios"&gt;iOS
&lt;/h3&gt;&lt;p&gt;iOS 是需要外区账号的，获取外区账号可以参考：&lt;a class="link" href="https://alecthw.github.io/p/singbox-help-mobile/#%e5%87%86%e5%a4%87%e8%8b%b9%e6%9e%9c%e5%a4%96%e5%8c%ba%e8%b4%a6%e5%8f%b7" &gt;手把手教你科学上网/准备外区账号&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;使用外区账号下载对应客户端，用购买的合租账号登录即可。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;友情提醒，千万别用购买的账号登录 iCloud，否则有手机被锁的风险！&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="安卓"&gt;安卓
&lt;/h3&gt;&lt;h4 id="1-google-play-商店安装"&gt;1. Google Play 商店安装
&lt;/h4&gt;&lt;p&gt;推荐方式，先安装 谷歌框架 和 Google Play，然后在 Play 商店中安装。&lt;/p&gt;
&lt;p&gt;各个品牌手机安装谷歌框架，在 B 站都有教程，自己去搜下。&lt;/p&gt;
&lt;h4 id="2-apk-安装"&gt;2. APK 安装
&lt;/h4&gt;&lt;p&gt;YouTube 和 Nextflix APK 安装后打开软件，可能还会提示需要谷歌框架。&lt;/p&gt;
&lt;p&gt;下载 APK 可以使用 &lt;a class="link" href="https://apkpure.com/cn/" target="_blank" rel="noopener"
&gt;APKPure&lt;/a&gt;、&lt;a class="link" href="https://www.apkmirror.com/" target="_blank" rel="noopener"
&gt;APKMirror&lt;/a&gt; 等。&lt;/p&gt;
&lt;h3 id="电视端"&gt;电视端
&lt;/h3&gt;&lt;h4 id="apple-tv"&gt;Apple TV
&lt;/h4&gt;&lt;p&gt;同 iOS 手机端一样，需要外区账号，且激活设备时必须使用外区账号，否则没有 APP Store。因此，如果要使用 Apple TV，建议注册一个自己的外区账号。&lt;/p&gt;
&lt;p&gt;Apple TV 无法安装国内视频平台软件。&lt;/p&gt;
&lt;p&gt;当然，决定买 Apple TV 的时候，所有的问题应该都考虑到了。&lt;/p&gt;
&lt;h4 id="安卓盒子"&gt;安卓盒子
&lt;/h4&gt;&lt;p&gt;国产盒子看 Youtube 可以安装 &lt;a class="link" href="https://smarttubeapp.github.io/" target="_blank" rel="noopener"
&gt;SmartTube&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;国产电视盒子由于没有 Netflix 认证，即使安装了也看不了高清。&lt;/p&gt;
&lt;p&gt;所以建议直接购买境外版的电视盒子，通过 APK 安装国内视频平台软件，可以用得比较舒适。&lt;/p&gt;
&lt;p&gt;盒子的选择上推荐：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nvidia Shield TV: 有点贵，但是国内使用体验很好，虽然好几年没有出新，但是性能仍然过剩&lt;/li&gt;
&lt;li&gt;Chromecast GoogleTV&lt;/li&gt;
&lt;li&gt;小米盒子国际版&lt;/li&gt;
&lt;li&gt;FireTV&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些开机需要通过&lt;strong&gt;谷歌账号&lt;/strong&gt;激活，注册谷歌账号还是很容易的，但是此时还没进入系统不能安装软件，需要路由器能够科学上网才能正常激活。实在搞不定，购买的时候可以让店家帮忙激活，到手换成自己账号即可。&lt;/p&gt;</description></item><item><title>Vxlan 是否能让 GFW 放松一点？Vxlan 搭建科学上网实验</title><link>https://alecthw.github.io/p/fuck-gfw-vxlan/</link><pubDate>Fri, 01 Dec 2023 22:09:55 +0800</pubDate><guid>https://alecthw.github.io/p/fuck-gfw-vxlan/</guid><description>&lt;img src="https://alecthw.github.io/p/fuck-gfw-vxlan/cover.png" alt="Featured image of post Vxlan 是否能让 GFW 放松一点？Vxlan 搭建科学上网实验" /&gt;&lt;p&gt;🔥🔥🔥：稳定好用的机场/梯子 &lt;a class="link" href="https://558343.dedicated-afflink.com/#/auth/2neqgxFl" target="_blank" rel="noopener"
&gt;TAG 全球250+节点、99+流媒体解锁&lt;/a&gt;，更多参考&lt;a class="link" href="https://alecthw.github.io/p/airport-recommend/" &gt;机场推荐&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;VXLAN（Virtual eXtensible Local Area Network，虚拟扩展局域网），是由 IETF 定义的 NVO3（Network Virtualization over Layer 3）标准技术之一，是对传统 VLAN 协议的一种扩展。VXLAN 的特点是将 L2 的以太帧封装到 UDP 报文（即 L2 over L4）中，并在 L3 网络中传输。&lt;/p&gt;
&lt;p&gt;VXLAN 本质上是一种隧道技术，在源网络设备与目的网络设备之间的 IP 网络上，建立一条逻辑隧道，将用户侧报文经过特定的封装后通过这条隧道转发。&lt;/p&gt;
&lt;p&gt;关于 VXLAN，这里不展开讲，只需要知道两点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;它是一种隧道技术&lt;/li&gt;
&lt;li&gt;它在公有云中被广泛应用&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;更深入的了解，可以参考&lt;a class="link" href="https://support.huawei.com/enterprise/zh/doc/EDOC1100087027" target="_blank" rel="noopener"
&gt;什么是 VXLAN&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;既然是隧道，就可以用它来整活儿。由于被公有云广泛应用，猜测 GFW 对它的审查应该有所放松。记得曾经在某公司云服务的一场会议上，听其高管讲，共有云的跨国流量里，80% 的流量都是非法业务。&lt;/p&gt;
&lt;p&gt;既如此，如果用 VXLAN 来科学上网，效果会不会不错？&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;先说结论吧：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- 直接把 VXLAN 作为隧道翻墙是不可行的，经测试，由于 VXLAN 并不加密，GFW 的审查应该是会剥离 VXLAN 头部直接审查内部报文。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- 所以，即使经过了 VXLAN 隧道，把 VPS 作为网关，访问情况和国内直接访问一致。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="网络规划"&gt;网络规划
&lt;/h2&gt;&lt;p&gt;整体思路就是旁路由的思路，直接上图：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/fuck-gfw-vxlan/network.jpg"
width="996"
height="307"
srcset="https://alecthw.github.io/p/fuck-gfw-vxlan/network_hu_1520728c0cf4baf7.jpg 480w, https://alecthw.github.io/p/fuck-gfw-vxlan/network_hu_728cf9310f3d5b0f.jpg 1024w"
loading="lazy"
alt="network"
class="gallery-image"
data-flex-grow="324"
data-flex-basis="778px"
&gt;&lt;/p&gt;
&lt;p&gt;划重点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;VXLAN 是要双向配置的，所以本地和远端都必须是公网IP。&lt;/li&gt;
&lt;li&gt;本地使用 RouterOS 7，当时起个 Liunx 也可以，用 ROS 主要是为了方便配置策略路由来分流。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="开始配置"&gt;开始配置
&lt;/h2&gt;&lt;p&gt;以下涉及到公网的 IP 的，使用 &lt;code&gt;x&lt;/code&gt; 替换了一部分，复制命令时请自行替换。&lt;/p&gt;
&lt;p&gt;这里是新拉起了一个 Linode VPS 作为远端服务器，系统使用的是 Ubuntu 22.04。&lt;/p&gt;
&lt;h3 id="vps-准备工作"&gt;VPS 准备工作
&lt;/h3&gt;&lt;h4 id="1-禁用防火墙"&gt;1. 禁用防火墙
&lt;/h4&gt;&lt;p&gt;既然是实验，先禁用防火墙，避免其可能的影响。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl stop ufw.service
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl disable ufw.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id="2-开启转发"&gt;2. 开启转发
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vim /etc/sysctl.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;取消以下两行的注释&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;net.ipv4.ip_forward=1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;net.ipv6.conf.all.forwarding=1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再执行&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sysctl -p
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="routeros-准备工作"&gt;RouterOS 准备工作
&lt;/h3&gt;&lt;p&gt;RouterOS 的配置就不截 winbox 配置界面的图了，命令行和界面基本都能对上，直接贴命令行了。&lt;/p&gt;
&lt;h4 id="1-ip服务的安全策略先加上避免被爆破导致控制台疯狂输出登录失败日志"&gt;1. IP服务的安全策略先加上，避免被爆破，导致控制台疯狂输出登录失败日志
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip service &lt;span class="nb"&gt;set&lt;/span&gt; telnet &lt;span class="nv"&gt;address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip service &lt;span class="nb"&gt;set&lt;/span&gt; ftp &lt;span class="nv"&gt;address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip service &lt;span class="nb"&gt;set&lt;/span&gt; www &lt;span class="nv"&gt;address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip service &lt;span class="nb"&gt;set&lt;/span&gt; ssh &lt;span class="nv"&gt;address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip service &lt;span class="nb"&gt;set&lt;/span&gt; www-ssl &lt;span class="nv"&gt;address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip service &lt;span class="nb"&gt;set&lt;/span&gt; api &lt;span class="nv"&gt;address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip service &lt;span class="nb"&gt;set&lt;/span&gt; winbox &lt;span class="nv"&gt;address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip service &lt;span class="nb"&gt;set&lt;/span&gt; api-ssl &lt;span class="nv"&gt;address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id="2-配置上网这里是-pppoe-拨号"&gt;2. 配置上网，这里是 PPPOE 拨号
&lt;/h4&gt;&lt;p&gt;修改下接口名字&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/interface ethernet &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; find default-name&lt;span class="o"&gt;=&lt;/span&gt;ether1 &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ether1-wan
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/interface ethernet &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; find default-name&lt;span class="o"&gt;=&lt;/span&gt;ether2 &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ether2-lan
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;配置 PPPOE&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/interface pppoe-client add &lt;span class="nv"&gt;interface&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ether2-wan &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;pppoe-wan &lt;span class="nv"&gt;user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;user&amp;gt; &lt;span class="nv"&gt;password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;password&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;配置 DNS&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip dns &lt;span class="nb"&gt;set&lt;/span&gt; allow-remote-requests&lt;span class="o"&gt;=&lt;/span&gt;yes &lt;span class="nv"&gt;servers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;223.5.5.5,114.114.114.114
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="配置检查"&gt;配置检查
&lt;/h3&gt;&lt;h4 id="本地-ros-ping-vps"&gt;本地 ROS ping VPS
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@rostest&lt;span class="o"&gt;]&lt;/span&gt; &amp;gt; ping 172.233.142.x
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; SEQ HOST SIZE TTL TIME STATUS
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;0&lt;/span&gt; 172.233.142.x &lt;span class="m"&gt;56&lt;/span&gt; &lt;span class="m"&gt;47&lt;/span&gt; 184ms440us
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;1&lt;/span&gt; 172.233.142.x &lt;span class="m"&gt;56&lt;/span&gt; &lt;span class="m"&gt;47&lt;/span&gt; 184ms340us
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;2&lt;/span&gt; 172.233.142.x &lt;span class="m"&gt;56&lt;/span&gt; &lt;span class="m"&gt;47&lt;/span&gt; 184ms235us
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;sent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="nv"&gt;received&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; packet-loss&lt;span class="o"&gt;=&lt;/span&gt;0% min-rtt&lt;span class="o"&gt;=&lt;/span&gt;184ms235us avg-rtt&lt;span class="o"&gt;=&lt;/span&gt;184ms338us max-rtt&lt;span class="o"&gt;=&lt;/span&gt;184ms440u
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;可以看到网络是通的。&lt;/p&gt;
&lt;h4 id="vps-ping-本地-ros-的公网-ip"&gt;VPS ping 本地 ROS 的公网 IP
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root@localhost:~# ping 121.229.x.x
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PING 121.229.x.x &lt;span class="o"&gt;(&lt;/span&gt;121.229.x.x&lt;span class="o"&gt;)&lt;/span&gt; 56&lt;span class="o"&gt;(&lt;/span&gt;84&lt;span class="o"&gt;)&lt;/span&gt; bytes of data.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;64&lt;/span&gt; bytes from 121.229.x.x: &lt;span class="nv"&gt;icmp_seq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;40&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;186&lt;/span&gt; ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;64&lt;/span&gt; bytes from 121.229.x.x: &lt;span class="nv"&gt;icmp_seq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="nv"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;40&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;186&lt;/span&gt; ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;64&lt;/span&gt; bytes from 121.229.x.x: &lt;span class="nv"&gt;icmp_seq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="nv"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;40&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;186&lt;/span&gt; ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;--- 121.229.x.x ping statistics ---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;3&lt;/span&gt; packets transmitted, &lt;span class="m"&gt;3&lt;/span&gt; received, 0% packet loss, &lt;span class="nb"&gt;time&lt;/span&gt; 2002ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rtt min/avg/max/mdev &lt;span class="o"&gt;=&lt;/span&gt; 185.582/185.879/186.073/0.213 ms
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;可以看到网络是通的。&lt;/p&gt;
&lt;h3 id="vxlan-vps-配置"&gt;VXLAN: VPS 配置
&lt;/h3&gt;&lt;p&gt;以下分别为命令行和 netplan 的配置。&lt;/p&gt;
&lt;h4 id="命令行"&gt;命令行
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ip link add vxlan0 &lt;span class="nb"&gt;type&lt;/span&gt; vxlan &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; id &lt;span class="m"&gt;3000&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; remote 121.229.x.x &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; dstport &lt;span class="m"&gt;4789&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; 172.233.142.x &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; dev eth0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ip link &lt;span class="nb"&gt;set&lt;/span&gt; vxlan0 up
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ip addr add 192.168.99.2/24 dev vxlan0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;查看 vxlan0 接口&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root@localhost:~# ifconfig
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vxlan0: &lt;span class="nv"&gt;flags&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu &lt;span class="m"&gt;1450&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; inet 192.168.99.2 netmask 255.255.255.0 broadcast 0.0.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; inet6 fe80::ec90:6ff:fe88:372d prefixlen &lt;span class="m"&gt;64&lt;/span&gt; scopeid 0x20&amp;lt;link&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ether ee:90:06:88:37:2d txqueuelen &lt;span class="m"&gt;1000&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Ethernet&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; RX packets &lt;span class="m"&gt;0&lt;/span&gt; bytes &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;0.0 B&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; RX errors &lt;span class="m"&gt;0&lt;/span&gt; dropped &lt;span class="m"&gt;0&lt;/span&gt; overruns &lt;span class="m"&gt;0&lt;/span&gt; frame &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; TX packets &lt;span class="m"&gt;8&lt;/span&gt; bytes &lt;span class="m"&gt;544&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;544.0 B&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; TX errors &lt;span class="m"&gt;0&lt;/span&gt; dropped &lt;span class="m"&gt;0&lt;/span&gt; overruns &lt;span class="m"&gt;0&lt;/span&gt; carrier &lt;span class="m"&gt;0&lt;/span&gt; collisions &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;查看路由表，多了下面的内容，所有目的地址是 192.168.99.0/24 网络包要通过 vxlan0 转发：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root@localhost:~# ip route show
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;192.168.99.0/24 dev vxlan0 proto kernel scope link src 192.168.99.2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;查看 fdb。这个表项的意思是，默认的 VTEP 对端地址为 121.229.x.x。换句话说，原始报文经过 vxlan0 后会被内核添加上 VXLAN 头部，而外部 UDP 头的目的 IP 地址会被冠上 121.229.x.x。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root@localhost:~# bridge fdb show
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;00:00:00:00:00:00 dev vxlan0 dst 121.229.x.x via eth0 self permanent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id="netplan-配置文件"&gt;netplan 配置文件
&lt;/h4&gt;&lt;p&gt;命令行配置重启后会失效，放到 netplan 里配置持久化。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/netplan/99-vxlan-config.yaml&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;network&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;tunnels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;vxlan0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;mode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;vxlan&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;local&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;172.233.142&lt;/span&gt;&lt;span class="l"&gt;.x&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;remote&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;121.229&lt;/span&gt;&lt;span class="l"&gt;.x.x&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3000&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4789&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;addresses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="m"&gt;192.168.99.2&lt;/span&gt;&lt;span class="l"&gt;/24&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="vxlan-本地-ros-配置"&gt;VXLAN: 本地 ROS 配置
&lt;/h3&gt;&lt;p&gt;先创建 VXLAN，然后再把 VXLAN 接口和 LAN 口桥接。&lt;/p&gt;
&lt;h4 id="创建-vxlan"&gt;创建 VXLAN
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/interface vxlan add &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;vxlan0 &lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4789&lt;/span&gt; &lt;span class="nv"&gt;vni&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/interface vxlan vteps add &lt;span class="nv"&gt;interface&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;vxlan0 remote-ip&lt;span class="o"&gt;=&lt;/span&gt;172.233.142.x
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id="桥接-vxlan0-和-ether2-lan"&gt;桥接 vxlan0 和 ether2-lan
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/interface bridge add &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;br-lan
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/interface bridge port add &lt;span class="nv"&gt;bridge&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;br-lan &lt;span class="nv"&gt;interface&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ether2-lan
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/interface bridge port add &lt;span class="nv"&gt;bridge&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;br-lan &lt;span class="nv"&gt;interface&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;vxlan0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id="br-lan-配置-ip"&gt;br-lan 配置 IP
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/ip address add &lt;span class="nv"&gt;address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;192.168.99.1/24 &lt;span class="nv"&gt;interface&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;br-lan &lt;span class="nv"&gt;network&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;192.168.99.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这里配置的 IP 和 VPS 上给 vxlan0 接口配置的 IP 是相同网段的。&lt;/p&gt;
&lt;h3 id="测试-vxlan-隧道"&gt;测试 VXLAN 隧道
&lt;/h3&gt;&lt;p&gt;在 VPS 上 ping ROS 的 br-lan 接口的 IP&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root@localhost:~# ping 192.168.99.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PING 192.168.99.1 &lt;span class="o"&gt;(&lt;/span&gt;192.168.99.1&lt;span class="o"&gt;)&lt;/span&gt; 56&lt;span class="o"&gt;(&lt;/span&gt;84&lt;span class="o"&gt;)&lt;/span&gt; bytes of data.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;64&lt;/span&gt; bytes from 192.168.99.1: &lt;span class="nv"&gt;icmp_seq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;64&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;144&lt;/span&gt; ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;64&lt;/span&gt; bytes from 192.168.99.1: &lt;span class="nv"&gt;icmp_seq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="nv"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;64&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;144&lt;/span&gt; ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;64&lt;/span&gt; bytes from 192.168.99.1: &lt;span class="nv"&gt;icmp_seq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="nv"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;64&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;144&lt;/span&gt; ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;--- 192.168.99.1 ping statistics ---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;3&lt;/span&gt; packets transmitted, &lt;span class="m"&gt;3&lt;/span&gt; received, 0% packet loss, &lt;span class="nb"&gt;time&lt;/span&gt; 2003ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rtt min/avg/max/mdev &lt;span class="o"&gt;=&lt;/span&gt; 144.359/144.400/144.446/0.035 ms
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;在 ROS 上 ping VPS 的 vxlan0 接口的 IP&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@rostest&lt;span class="o"&gt;]&lt;/span&gt; &amp;gt; ping 192.168.99.2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; SEQ HOST SIZE TTL TIME STATUS
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;0&lt;/span&gt; 192.168.99.2 &lt;span class="m"&gt;56&lt;/span&gt; &lt;span class="m"&gt;64&lt;/span&gt; 144ms271us
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;1&lt;/span&gt; 192.168.99.2 &lt;span class="m"&gt;56&lt;/span&gt; &lt;span class="m"&gt;64&lt;/span&gt; 144ms647us
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;2&lt;/span&gt; 192.168.99.2 &lt;span class="m"&gt;56&lt;/span&gt; &lt;span class="m"&gt;64&lt;/span&gt; 144ms309us
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;sent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="nv"&gt;received&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; packet-loss&lt;span class="o"&gt;=&lt;/span&gt;0% min-rtt&lt;span class="o"&gt;=&lt;/span&gt;144ms271us g-rtt&lt;span class="o"&gt;=&lt;/span&gt;144ms409us max-rtt&lt;span class="o"&gt;=&lt;/span&gt;144ms647us
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;可以看到，VXLAN 已经互通了。&lt;/p&gt;
&lt;p&gt;在 VPS 上再查看一下 fdb，可以看到，本地网络的一些 MAC 地址已经学习过来了，摘取了部分：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;00:00:00:00:00:00 dev vxlan0 dst 121.229.x.x self permanent
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ac:82:26:xx:xx:xx dev vxlan0 dst 121.229.x.x self
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;26:99:ac:xx:xx:xx dev vxlan0 dst 121.229.x.x self
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;98:3f:60:xx:xx:xx dev vxlan0 dst 121.229.x.x self
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="在-vps-上配置-snat"&gt;在 VPS 上配置 snat
&lt;/h3&gt;&lt;p&gt;源地址 NAT 不多说了，不明白的自己查。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -t nat &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -A POSTROUTING &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -s 192.168.99.0/24 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -o eth0 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -j SNAT &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --to-source 172.233.142.x
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;配置完查看下，确保配置成功&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root@localhost:~# iptables -nL -t nat
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Chain POSTROUTING &lt;span class="o"&gt;(&lt;/span&gt;policy ACCEPT&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;target prot opt &lt;span class="nb"&gt;source&lt;/span&gt; destination
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SNAT all -- 192.168.99.0/24 0.0.0.0/0 to:172.233.142.x
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="pc-上网测试"&gt;PC 上网测试
&lt;/h2&gt;&lt;p&gt;把本地电脑的网络配置成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;地址: 192.168.99.200&lt;/li&gt;
&lt;li&gt;掩码: 255.255.255.0&lt;/li&gt;
&lt;li&gt;网关: 192.168.99.2&lt;/li&gt;
&lt;li&gt;DNS: 8.8.8.8&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在 VPS 上 ping 一下 &lt;code&gt;192.168.99.200&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root@localhost:~# ping 192.168.99.200
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PING 192.168.99.200 &lt;span class="o"&gt;(&lt;/span&gt;192.168.99.200&lt;span class="o"&gt;)&lt;/span&gt; 56&lt;span class="o"&gt;(&lt;/span&gt;84&lt;span class="o"&gt;)&lt;/span&gt; bytes of data.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;64&lt;/span&gt; bytes from 192.168.99.200: &lt;span class="nv"&gt;icmp_seq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;128&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;145&lt;/span&gt; ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;64&lt;/span&gt; bytes from 192.168.99.200: &lt;span class="nv"&gt;icmp_seq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="nv"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;128&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;144&lt;/span&gt; ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;64&lt;/span&gt; bytes from 192.168.99.200: &lt;span class="nv"&gt;icmp_seq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="nv"&gt;ttl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;128&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;143&lt;/span&gt; ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;--- 192.168.99.200 ping statistics ---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;3&lt;/span&gt; packets transmitted, &lt;span class="m"&gt;3&lt;/span&gt; received, 0% packet loss, &lt;span class="nb"&gt;time&lt;/span&gt; 1998ms
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rtt min/avg/max/mdev &lt;span class="o"&gt;=&lt;/span&gt; 143.159/144.091/144.858/0.703 ms
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;可以看到，VPS 和本地 PC 已经连通，并且还是相同网段的二层域。&lt;/p&gt;
&lt;p&gt;打开浏览器，打开 &lt;a class="link" href="https://ip.skk.moe/" target="_blank" rel="noopener"
&gt;https://ip.skk.moe/&lt;/a&gt; 测试下。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/fuck-gfw-vxlan/test-result.jpg"
width="888"
height="819"
srcset="https://alecthw.github.io/p/fuck-gfw-vxlan/test-result_hu_36d25b266a344fc2.jpg 480w, https://alecthw.github.io/p/fuck-gfw-vxlan/test-result_hu_52b61bbe2c1a0270.jpg 1024w"
loading="lazy"
alt="test-result"
class="gallery-image"
data-flex-grow="108"
data-flex-basis="260px"
&gt;&lt;/p&gt;
&lt;p&gt;从图中可知，IP 地址已经是 VPS 的公网IP，但是访问阻断情况和国内直接访问一致，并且还额外导致百度无法访问。&lt;/p&gt;
&lt;p&gt;再次测试，例如 Apple 等未被 GFW 封锁的网站都是可以正常访问的。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://alecthw.github.io/p/fuck-gfw-vxlan/Apple.jpg"
width="1352"
height="824"
srcset="https://alecthw.github.io/p/fuck-gfw-vxlan/Apple_hu_ba91d077102932e6.jpg 480w, https://alecthw.github.io/p/fuck-gfw-vxlan/Apple_hu_decad3a2e2e3b390.jpg 1024w"
loading="lazy"
alt="Apple"
class="gallery-image"
data-flex-grow="164"
data-flex-basis="393px"
&gt;&lt;/p&gt;
&lt;p&gt;由此可见：由于 VXLAN 并不加密，GFW 的审查应该是会剥离 VXLAN 头部直接审查内部报文，所以访问阻断的结果和国内一致。&lt;/p&gt;
&lt;h2 id="结论"&gt;结论
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;GFW 对 VXLAN 并不会放松审查，但是猜测：VXLAN 报文中含有被阻断的域名、IP，并不会直接导致 GFW 封锁 VPS 的 IP。&lt;/li&gt;
&lt;li&gt;由第1点，或许可以采用 VXLAN 报文作为外层包装，从而达到保护 VPS IP 的目的。毕竟各大机场基本都是通过国内公有云中转，而中转流量很大一部分应该跑在 VXLAN 之上。&lt;/li&gt;
&lt;li&gt;VXLAN 对性能的损失非常小，但由于 VXLAN 的配置需要双向公网 IP，没有公网 IP 的情况下，使用起来有两个思路：
&lt;ol&gt;
&lt;li&gt;作为外层包装协议，并不实际创建 VXLAN 隧道；&lt;/li&gt;
&lt;li&gt;使用国内公有云中转，国内外 VPS 直接配置 VXLAN 隧道；&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>