A Magic Tutorial ⭐️
这是一个面向萌新的科学上网不完全使用指北!
Note
👀 以下是杂谈和词汇表(比较长),请耐心阅读。
(如果比较懒,可以直接跳转到 ✨ 开始吧!)
🍥 在开始之前

Across the Great Wall we can reach every corner in the world.
1987 年 9 月 20 日 20 点 55 分,从北京向海外发出中国第一封电子邮件,揭开了中国大陆使用互联网的序幕。中国互联网在国际上的第一个声音就此发出。
Across the Great Wall we can reach every corner in the world.
这里不得不引用 Clouder 的话:
由于某些神秘的东方力量的影响,神州大地已与外界隔着一层可悲的厚障壁了。然而,邪恶的境外势力的糖衣炮弹总是蛊惑着数不胜数的懵懂少年,让他们时时不满足于四角的天空。
上帝或许将大门关上了,但城墙上仍有无数仁人志士留下的狗洞罅隙可供通行。猫抓老鼠的游戏经久不衰,然而在马伯庸设想的寂静之城真正到来前,我们依然能苟延残喘、岁月静好。
科学上网,从来都是难者不会、会者不难。在全球互联网上,有着大量的科学上网相关信息,然而在局域网上,你却很难见到。这先有鸡还是先有蛋的困局,也许只有靠口口相传方能打破。
📕 词汇表
突破网络审查或突破网络封锁,在中国大陆俗称翻墙、科学上网等,是指通过技术方式绕过网络审查的措施。在中国大陆,突破网络审查一般指突破防火长城,访问被其封锁的网站,实现此类功能软件通常被称作梯子.....(From Wikipedia)
读这段文字可能还是有点迷糊 🌀,我会在几个问题中带你了解这些词语。
Q: 为什么?它是如何运作的?
A: 因为有防火长城(Great FireWall, GFW),中华人民共和国的互联网审查系统,其监控所有经过国际网关的通讯,对认为不符合中国官方要求的传输内容,进行干扰、阻断、屏蔽。。
这里放张图可以让你直观地理解运作方式:

Topology of the Chinese firewall
(深色模式下看不清,可以在新标签页中打开。)
具体内容可以在科学上网后在 Wikipedia 上查看。(是的,Wikipedia 也被封锁了 🐢。)
Q: 科学上网是如何突破审查的?
A: 尽管现在的科学上网产业异常发达,各种各样的奇技淫巧令人目不暇接,其实本质上,都无非是代理:
比如目的地是 google.com,用户无法直接连接,但是用户可以把请求发给代理服务器,让在国外的代理服务器访问 google.com,再把收到的响应发给用户。这样就完成了一个连接。
原本 A 地到 B 地畅通无阻,可是,GFW 在两地之间造了一堵墙,只不过,A 地到 X 地尚可通行,X 地到 B 地畅通无阻,那么 X 地即为代理服务器。但这并不代表 A 地到 X 地永远可以通行,当墙发现你的行径之后,自会添砖加瓦。
实际上「墙」这种比喻并不合理,因为 GFW 是黑名单机制而非白名单。
在实际应用中,这两条传输线条中间可以有一些花样。比如经典的通过国内服务器中转、国外落地:
以上方式是在传输路径上躲避/突破 GFW 的审查。
还有一种躲避审查的方式是在代理协议上隐藏自己。代理协议通常会对请求进行加密和混淆来成功通过 GFW 的审查。同时代理协议还能提高访问速度和突破网站的区域限制(如 Netflix 等流媒体平台),使用户获得更好的体验。
你是一位快递员,为用户送包裹。用户给你了一个外包装写着
google.com
的包裹,在过安检的时候被拦了下来,不让运输。但是聪明的你修改了文字 / 又套了层壳,顺利通过。
代理协议五花八门,以下都是代理协议 🔮:
- Shadowsocks (SS)
- ShadowsocksR (SSR)
- Vmess
- Vless
- Trojan
- Hysteria
- ...
🌈 总结:
- 分成两种方式来谈比较方便理解,通常这两种方式会一起使用,各有各的功能和优点。
- 一般来说,这一切依然经过了 GFW 的审查,GFW 没有封锁代理服务器,用户就可以通过代理服务器作为「跳板」来访问目标。
(此外还有专线(IPLC, IEPL)等方法,不经过 GFW 直接连接海外,可以自己了解。)
🧩 其他词语:
- 节点: 包含代理服务器地址和协议、很多参数的一个对象。
- 订阅 / Subscription / Profile: 包含节点、分组、规则等的一个远程配置文件。可以方便地导入客户端,定时更新,也方便分享。
- 机场: 指提供科学上网服务的商家。通常提供多个节点,并且有订阅链接。
Q: 科学上网合法吗?
A: 仅从技术层面看,科学上网没有对 GFW 做任何的干预,完全被动地接受其蹂躏,似乎是不违法的。
然而从实际层面,你可以被判非法入侵计算机罪。但从更实际的角度看,有很大的概率你并不会被抓,因为科学上网的人数基数很大 💨。
但被抓了你也只能受着,说不定是网警年底冲业绩,大家都不容易,多一点理解,多一点包容,让世界多一点美好。毕竟,在制度性的规约下,恶是平庸的 (The Banality of Evil)。
关于科学上网的法理层面讨论,曾经有一系列我非常敬佩的文章。其中的第一篇是:个人使用 vpn"翻墙"是否违法?——基于规范性法律文件、案例以及相关计算机技术的分析与讨论。有兴趣的可以自行阅读。
(请注意,外交部、部分高校使用专线进行科学上网是合法的。)
天子犯法,不与庶民同罪。
✨ 开始吧!
进入正题。如何成为一个时尚潮流、与全球接轨的、具有国际化视野的、具备充分科学上网能力的好少年。 咳咳 👀。
工欲善其事,必先利其器。
下载与安装
首先你需要确定你使用的是什么系统和架构...... 不知道架构的就都试试,通常是第一个,咕咕咕。
系统 | 架构 | 下载 |
---|---|---|
Windows | x64 (exe) | FlClash-0.8.87-windows-amd64-setup.exe |
Windows | x64 (zip) | FlClash-0.8.87-windows-amd64.zip |
macOS | M series | FlClash-0.8.87-macos-arm64.dmg |
macOS | Intel | FlClash-0.8.87-macos-amd64.dmg |
Android | arm64-v8a | FlClash-0.8.87-android-arm64-v8a.apk |
Android | armeabi-v7a | FlClash-0.8.87-android-armeabi-v7a.apk |
Android | x86_64 | FlClash-0.8.87-android-x86_64.apk |
iOS / iPadOS | Any | Shadowrocket - AppStore |
导入订阅
对于 FlClash(Windows / macOS / Android):
复制链接:
https://server.w0l.top/awa/my-sub
转到 配置,点击右下角 “ + ”,选择 URL,粘贴链接,点击 提交 按钮。
对于 Shadowrocket(iOS / iPadOS):
复制链接:
https://server.w0l.top/awa/my-sub
点右上角 “ + ”,类型选择 “ Subscription ”,填入 URL,名称随便取一个即可。
开启代理
- FlClash ( Windows / macOS / Android ): 转到 仪表盘,点击右下角按钮。
- Shadowrocket ( iOS / iPadOS ): 主页最上方 “未连接” 右侧,打开开关。
然后打开 Google 试试吧!🎉
进阶
到这里,你已经可以科学上网了,下面会写一些技术上的进阶知识与操作。(以 Clash 为主,Shadowrocket 类似)
工作原理
我们可以把流量路径分为三层:
- Inbound 入站:由客户端到代理软件,比如:浏览器 -> Clash。
- Outbound 出站:由代理软件到远端服务器,比如:Clash -> 节点。
- 第三层:由远端服务器到目标服务器,比如:节点 -> Google。
入站
系统代理
当你运行应用时,应用会启动 Clash 内核。Clash 会在本地监听一个端口并根据配置文件开启 HTTP / SOCKS5 / ... 的简单代理,能让系统、程序使用。
在 Clash For Windows 中有一个选项叫做「系统代理」,FlClash 按下启动开关时也是一样的效果。当你打开这个选项时,代理软件就会修改系统设置中的代理选项,设置为 Clash 的入站。但是,系统设置中的代理往往只可设置为 HTTP 代理,而且这个 HTTP 代理只对浏览器有效。
这也就是为什么 Windows 明明设置了系统代理,访问 GitHub 也很快,但在终端里运行 git clone [repo]
却很慢的原因。与 Android / iOS 不同,这种代理并不是系统层的,在命令行下,执行 git 命令不会自动读取系统代理设置和环境变量。不过 git 提供手动设置 git config –global http.proxy example
,那要是在某些情况下没法手动设置呢?
TUN 模式
一些老用户可能了解过一款软件 SSTAP,这是很久前一个为了让某些游戏走代理而设计的软件,它的原理也就是 TAP 模式。所谓 TAP 模式其实就是在设备上安装一个虚拟的网络接口,从而使得系统所有的流量都能进入代理软件。
与 TAP 相比,TUN 工作在更高的网络层,不需要虚拟的 TAP 设备,也能实现跟 TAP 类似的效果。不仅如此,TUN 的性能也比 TAP 要好。
同时也可以解决 关机前忘记关掉,导致开机后打不开网页 的问题。
其他
其实还有一种方式:直接在路由器上运行代理。比如安装了 OpenClash 的软路由,手机、电脑直接连接无线网络 / 插网线,在设备上不需要安装任何软件,流量在软路由中被代理。
规则模式
访问国内网站时直连(不通过代理),速度更快。国外网站则相反。但总不可能每次都手动切换吧?或者我想屏蔽一些广告域名、让指定网站使用指定节点。这时规则模式就起到了很大的作用。
分流规则写在配置文件(订阅)内,大概长这样:
proxy-groups:
- name: "group1"
type: select
proxies:
- proxy1
- proxy2
- DIRECT
...
- name: "group2"
...
rules:
# 类型,参数,策略 (,no-resolve)
- DOMAIN-SUFFIX,google.com,group1 # 匹配域名后缀 google.com,使用 Google 策略组
- DOMAIN-KEYWORD,facebook,group2 # 匹配域名关键字 facebook,使用 group1 策略组
- IP-CIDR,192.168.0.0/16,DIRECT # 192.168 内网,直连
- GEOIP,CN,DIRECT # 中国的 IP 地址,直连
- ...
在使用规则模式时,Clash 会根据这些规则来将数据包路由到指定的代理服务器 / 策略组 / 直连等。
如我的配置文件中的策略组:
- 🚀 节点选择:手动选择使用的节点,通常用
♻️ 自动选择
就可以了。 - ♻️ 自动选择:自动选择延迟最低的节点。
type: url-test
- 🎯 直连
- 🌍 国外媒体:
- 从
🚀 节点选择
、♻️ 自动选择
、🎯 直连
和所有节点中选择节点。默认为🚀 节点选择
。 - 规则:匹配国外流媒体(Netflix、TikTok 等)。
- 从
- 🍎 Apple:
- (同上)
- 规则:匹配 Apple 网站和服务。
- 💬 Google FCM
- Ⓜ️ Microsoft
- 🐟 漏网之鱼:
- (同上)
- 规则:所有上述规则没有匹配到的,使用此策略组。
例子(顺便带上入站的过程):
- 你在浏览器中打开了 Netflix。
- 浏览器通过系统代理把流量转发到 Clash。
- Clash 开始匹配规则,命中
DOMAIN-SUFFIX,netflix.com,🌍 国外媒体
🌍 国外媒体
策略组 ->🚀 节点选择
策略组。🚀 节点选择
策略组 ->♻️自动选择
策略组。♻️自动选择
策略组 ->节点1
。- Clash 把流量发给
节点1
。
FAQ 常见问题
Q:电脑重启之后,打不开网页了。「未连接到互联网:代理服务器出现问题,或者地址有误。」
A:应该是 Clash 没有正常关闭,这里提供两种解决办法:
- (Windows) 设置 - 网络和 Internet - 代理,把“手动设置代理”下的开关关掉。
- 进入 Clash,打开代理,关闭代理。
- 下次关机前记得手动关闭 Clash
- (推荐) 直接使用 TUN 模式就好啦
(还有什么问题的话,先去 Google 搜一搜,或者在底下评论告诉我 awa)
拓展
这里是拓展内容,有兴趣的可以阅读一下。其实不用了解过多知识,到「进阶」篇就够用了,其他知识在网上也都搜得到。你可以跳过这部分,看看「结语」吧。
DNS 污染与 Fake IP
先简单介绍一下啥是 DNS:
DNS:域名系统(Domain Name System)。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 (说人话就是:将域名转换为 IP 地址)
由于大多数中国用户、路由器都使用阿里 DNS(223.5.5.5)与腾讯 DNSPod(119.29.29.29)等,国内可以直接操控其 DNS 解析。这种方式叫做 DNS 污染。GFW 不仅对特定的 IP 阻断,还对相当一部分域名进行 DNS 污染,所以我们还需要对 DNS 查询请求进行代理,通过节点查询国外权威 DNS 服务器(像干净的 Google DNS 的 8.8.8.8 被 GFW 阻断了,无法直连)。当然现在还有 TLS、DoH(DNS over HTTPS)、QUIC 等新型方式解决 DNS 污染。
(关于 DNS 污染还有很多抽象的大事,如 2014 年中国大陆网络异常事件 等。)
但每次请求都先判断,再请求远程服务器 DNS ,再返回解析结果,客户端再请求,再代理,这样一来二去就极大浪费了时间。于是,Fake IP 技术出现了。
所谓 Fake IP,也就是虚假的 IP。客户端进行的每次 DNS 请求,都会直接被代理软件劫持,然后代理软件不会先判断,而是立即返回一个假的 IP。于此同时,代理软件再去判断并请求真实的 IP,保存到自己的表中。而客户端向这个虚假的 IP 进行连接时,都会由代理软件直接从表中取出结果,然后对流量进行进一步处理。这样以来就节省了大约一半的时间。如果对更多技术细节感兴趣的话,可以去看 Sukka 的 浅谈在代理环境中的 DNS 解析行为。
但是这种方式也不是没有缺点,因为有着 DNS 缓存机制,把代理软件关掉后,客户端还是去请求这个虚假的 IP 地址,就得不到响应了。这时需要手动刷新系统 / 浏览器的 DNS 缓存才能解决。不过 Fake IP 比较常见的应用场景是在软路由上,毕竟软路由大部分时间都是 24 小时运行的,代理不会关,所以一般不会出现问题。
结语
还是 Clouder 的话:
现在,你已经穿越了新时代的防火长城,呼吸到了境外自由的空气,享受着地球村构想的实现,成为了一位世界公民。
也许你对外网充满了幻想,但一个残酷的事实是——这里同样是地球。这里同样充满了反智、营销、低俗、欺诈、暴力等等人性的黑暗面,国外也有审查,也有封禁,也有政治敏感。这里不是乌托邦,不是伊甸园,这里,只是「The Reality」。
你经历了重重关卡,过五关斩六将,终于完成了这趟旅途。但你也不必为此沾沾自喜,这没有什么,你学会了科学上网并不代表你高人一等,这只是一种生存技能。对于皇土以外的万千蛮洋,这就是他们常规、琐碎的生活。有的人穷尽一生都在找寻通往罗马的道路,而有的人出生就在罗马,这很正常。
科学上网,给予我们的不是自由,不是随心所欲,也不是精彩纷呈。这只是我们本就应得的,是全球互联时代的真实样貌。从柏拉图的昏暗洞穴中走出的我们,也不过是堪堪见到真正世界的样貌罢了。
当然,你可以拓展视野,真正成为一名国际化新青年。你可以方便地关注世界新闻,从多个不同角度(至少是国内和海外两个)看待问题,方便地获取各种网站上的资源,不用忍受时断时续的痛苦下载和被污染被阻断的传输链路。你可以与网友交谈,享受文化碰撞的头脑风暴。你可以尽情冲浪,弥补国内性压抑社会缺失的见识。你也可以谈古论今、挥斥方遒,只不过需要注意的,即使你科学上网,依然不代表你是匿名、安全的,Big Brother is still watching you.
互联网审查、GFW 的存在自然有其合理性与战略价值,这一点不可否认。但科学上网,同样有着非常重大的意义。我不想用「存在即合理」为这样的制度辩护,从我的主观情感出发,我就是明确反对这样的制度。某种角度上说,这何尝不是「闭关锁国」呢?讽刺的是,国外可以访问国内服务器,而国内无法访问国外服务器。这高高的城墙,单向阻隔着的正是其子民。
这场攻防的游戏也许会继续下去,维持一个微妙的平衡。未来究竟是海阔天空,还是 1984,光凭个人是无法预测的。被时代洪流裹挟着的我们,顾好自己就已经要竭尽全力了。
「人是生而自由,却无往不在枷锁之中。」无非是从一个铁屋走向另一个。但至少,我来过,我见过。
「自由从来不容易,不是一个姿态,一个手势,自由是永恒的克服重力,挣扎向上飞行。」某种意义上,我所追寻的并非自由,而仅仅是更多的选择、更多的体验。
没有什么,比告诉你四角的天空外还有璀璨的星河,而你却永远思而不得更令人痛苦的了。
更新于 2024/09/01。