杯子茶室

关注有趣的事物

翻墙指北 - 当我们在说翻墙,我们到底在讨论什么?

网络 0 评 43 度

介绍

这是一个发布于架设在海外服务器上的博客的文章,所以能看到这个文章的你大概率是已经翻了出来,或者是处于墙不是很高的环境下。2023年尾了,什么样的翻墙方式最为安全稳定?什么方式的体验最好?软路由、VPN、机场、自建节点、IPLC等等到底是什么,有什么意义?所谓的原生节点、地区解锁、Netflix解锁,这些又是什么意思?本篇文章一次性从原理开始讲解这些混乱的词汇,带你理清由翻墙引申而来的繁乱的概念。

墙是什么

我们这里讨论的墙的概念暂时只局限于一种现象,即为在中国大陆无法访问海外的部分正常运行与在线的网站或服务,双方的通讯受阻,而造成这个现象的一个实体我们称为墙。例如你在大陆访问YouTube,服务器提示无法访问网站,但你在大陆以外地区的朋友是可以访问Youtube的,就好像别人从他家出发可以畅通无阻的进入一个大卖场,但你从你家出发总会因为一些原因导致你找不到大卖场,或是被带去假的卖场,或者是去到了发现空无一物。这个试图阻止你访问大卖场的机制就是我们所讨论的墙。

墙的原理

为了保证全球化以来互联网的畅通,通信机关不可能阻断任何通往境外的网络请求,但是国家机关又需要阻止国民访问海外网站,避免民众接收过多不在他们预期内的消息。

DNS污染

于是,早在1998年的时候,国内的部分ISP便部署了DNS污染用于阻断部分海外网站的访问。如果你在2000年到2010年间使用过中国的互联网,估计遇到过这种情况:打开一些正常的网站会跳转到运营商的广告页面,刷新一下又会恢复正常。这种情况便是HTTPS加密技术还没有普及的时候,DNS污染欺骗你的浏览器将仿冒网站误认为你想要访问的网站造成的。若要做个比喻,DNS服务器就像是一个拥有地址本的服务人员,你可以询问他某一个店面的地址是什么,例如询问麦当劳在什么区什么街多少号,这样你就可以通过这个地址找到麦当劳了。但DNS污染就是这个服务人员告诉了你一个错误的地址,让你误以为那个地方就是麦当劳,等你去到了之后才发现空无一物或者是物不对版。这样的污染很容易规避,只需要更改DNS服务器就可以了,相当于换了一个问路人。于是GFW便想出了一个升级版的DNS污染方式,便是DNS劫持。

DNS劫持

DNS劫持就是无论你去询问哪一个DNS服务器,他都会将这个请求指向自己的DNS服务器,意思就是无论你问哪个问路人,他都会把信息拦截下来自己回答你的询问。这样就没办法通过更改DNS绕过污染了。有人会说那我自己拿个小本本记录下店铺对应的地址不就解决问题了吗,这便是Hosts文件翻墙原理,本质上就是在规避DNS劫持,直接访问真实的IP。虽然需要经常维护小本本(Hosts文件),以免店面换地址之后去到目标地址发现空无一物,但是这个方法是可以有效规避DNS劫持的。

URL探测与深度包探测

但墙自然看得到你的访问请求就是前往一个他们已经封禁了的网站,加密技术在早期的互联网并不普及,几乎所有的Web请求都是明文未加密的HTTP请求,这就好像使用明信片寄信一样,无论是帮忙邮递传送的人还是路过的人全部都能看到你的明信片信息。虽然你的地址写对了,但是墙可以通过记载在你明信片上面的,网站的名称判断你是否访问了他们封锁的网站,这个便是最早期的URL封锁,通过解析明文HTTP的URL判断是否应该丢弃这个连接。这样不会错误封锁到位于同一个地址的合法网站,可以不限地址地封锁他们想要封锁的网站。

即便到了后面的HTTPS加密传输,由于一个地址背后可能会有很多很多个网站,每个加密数据包都需要在证书上面记载自己的网站名称(SNI)才能判断数据包具体是前往哪个网站的。这像是即便不能打开封好的信件,信件上面也会有具体到寄送给哪个人或公司,以及他们的亲笔签名。墙自然可以通过判断这个公司名称或个人名称是否在封禁列表内,来丢弃相应的数据包。至此,所有直接访问网站的手段已经无法生效,需要真正的翻墙手段出马才能正常访问这些网站了。

VPN、代理、机场、IPLC、软路由翻墙……这些东西到底是什么?

终于进入到这个章节,其实这些词汇全都是翻墙圈子里面常用的词汇,一些词语是借用而来,一些是衍生而来。我在这里一一解释一下这些词语的意思:

  • VPN:虚拟私人网络,可以简单理解成一个连接两个地方的传送隧道,一般都可以通过加密实现隐蔽传输的功能。常见的VPN有L2TP、IPsec、OpenVPN以及最近几年发展起来的Wireguard。需要注意的是VPN技术最开始并不是为了躲避封锁而存在,而是作为一个重要的计算机网络技术,为了解决一些组网问题而诞生的。
  • 代理:即为代替你访问网站的一个服务,可以理解成一个帮助你转运实际信件的代理收件人,他在境外帮你转运需要传送的信件,你只需要发送给他就可以正常和网站通信了。现在的代理协议五花八门,但概念都是代理转发用户的请求,本质并无区别。最为常见的代理协议有Socks、HTTP代理,而加密代理则有HTTPS、ShadowSocks、V2ray派生的一系列代理协议以及Trojan。
  • 机场:一般指提供代理服务的商家,订阅机场后可以获取一组代理节点,方便用户直接使用代理服务不用去思考如何获取代理节点。
  • IPLC:一种线路的名称,原先是指「国际私用出租线路」(International Private Leased Circuit),在底层的实现上更为接近电话网专线,现在广义上便是国际专线网络的代名词,在翻墙用语中与IEPL的含义基本相同,都为国际专线。
  • 软路由翻墙:软路由是用软件实现的路由器,一般是一台普通电脑架构的主机搭配一个很多网口的网卡组合而成。软路由翻墙即为使用软路由进行翻墙,由于软路由可以运行普通电脑能运行的翻墙软件,软路由可以充当路由器,把翻墙软件的网络共享给下游的设备,帮助整个网络实现翻墙。这对于游戏主机、机顶盒、电视机、物联网设备等不便配置翻墙软件的设备来说有着相当重要的意义。而且也免去了每台设备都安装翻墙软件的繁琐操作,被许多人推崇着。
  • 原生节点/Netflix解锁/地区解锁:海外存在着一些例如Netflix、Hulu、Amazon Prime Video等流媒体平台,他们提供在线观看电视剧、电影的流媒体服务,而这些服务通常会根据使用者的来源IP判断使用者所在地,若使用者观看的节目并不允许授权平台在使用者所在地进行播放,这些平台就会阻止使用者观看相关的节目。此外,许多服务器提供商、VPN服务提供商的IP也被限制,所以催生了一系列专门用于解锁这些流媒体平台的方法,例如专有的原生节点、一些尚未被辨别出来的IP地址或是免费代理服务等等。
    许多VPN服务提供商和机场都提供流媒体解锁的节点,通常这也成为了他们的卖点之一。更有甚者会免费赠送相关流媒体平台的会员用来激励用户购买他们的服务。

以上名词只是翻墙圈子常见的部分名词,若你们感觉还有什么名词无法理解可以留言提出,我会尽可能讲解并仔细说明。以下将讲解如何实现最基本的翻墙(包括寻找代理节点、寻找VPN、自行架设以及购买机场与VPN服务),以及他们的优缺点。

翻墙的方法

以技术划分,现在有三种主要的翻墙方式:

  • 使用VPN技术进行翻墙
  • 使用代理技术进行翻墙
  • 使用跨境电信运营商的手机卡或是特殊服务直接访问国际互联网

本文只介绍前两种方法,第三种方法成本过高而且不适用于希望尽可能保护隐私的人士。

VPN和代理的区别

VPN全称是虚拟私人网络(Virtual private network)的简称,原本是为了在单一网络上面划分虚拟出多个不相干的网络而诞生的技术。最开始VPN是用于实现类似专线的效果,连接不同地区的内网的,而VPN加密只是一个可选的选项。但随着网络封锁逐日强劲,VPN逐渐变成了一种突破网络封锁的工具,但这只是他的其中一个应用,并不是原本设计的目的。

我们知道手机和电脑连接互联网需要通过Wifi或者网线先连接到路由器,然后路由器才会帮助这些设备通过运营商的网线连接到互联网。VPN本身只是一条网线,他将两台地理位置相异的机器连接起来,像是一个虚拟的网线一样。而真正实现VPN翻墙的是服务器的路由功能(虽然准确一些应该是防火墙功能),他就像路由器一样,将你的数据,通过他的运营商网线,发送到他的运营商的网络设备。

而代理则并非如此,代理不会将两台机器组网,融合为一个网络,代理服务器只会接收你的请求,帮助你转发到对应的服务器,然后再帮你转发返回到你的机器上。这期间你的电脑只是将信息发送给代理服务器,而没有和他进行组网,也没办法通过代理服务器路由数据包,只能由他协助转发数据包。

以一个比喻说明的话,VPN就像是一个通往服务器的传送门,他把两个空间直接连接在了一起,如果这个传送门连接了中国和美国,你当然可以通过传送门传送信件,但也可以用这个传送门干别的事情。而代理则是你只能发送信件给一个转运服务商,这个转运商会帮你把信件送给你指定的目标地址,并且带回他捎给你的信息,但是他没办法帮你运送信件以外的东西。

可以看到代理的功能相较于VPN简单得多,所以相应的方案也较为轻量化,而且在实际发展上,代理发展出来的伪装协议、混淆协议以及嵌套方式比VPN来的复杂许多,以下内容将会详细讲解。

VPN翻墙

虽然现在所说的VPN翻墙与代理翻墙近乎一致,但这里所描述的VPN翻墙仅局限于使用VPN技术进行翻墙,而非使用例如Shadowsocks、V2ray等代理技术进行翻墙。

VPN翻墙是VPN技术的派生用途,这项技术的原意是打通两个处于不同网络的设备,让他们如同在同一个网络内,实现互相直接访问。VPN技术在一些大型的网络内有着相当广泛的用途,在企业内也十分的常用,多数用来实现公司多地的内网互通。而这种技术也可以用于流量转发,将客户端的互联网访问流量全数转发给服务端网关,实现规避长城防火墙。早期的长城防火墙较少主动阻断VPN连接,便有人使用VPN技术进行翻墙。而现在多数协议的跨境VPN连接都会遭遇很严重的来自长城防火墙的阻断,其中最为严重的是PPTP和OpenVPN。现在仍然算是可用的VPN协议如下:

  • Wireguard
  • IPsec
  • SSL VPN(主要指SoftEther的SSLVPN)

其中抗封锁性最为优秀的是SSL VPN,但搭建起来最为复杂。由于许多企业也依赖IPSec维持跨境的日常业务,虽然在技术上这个协议已经是完全可识别可封锁,但是受限于客观因素为了避免误伤无辜而没有一刀切。至于Wireguard则是因为足够新和足够快才没有被长城防火墙完全阻断,但协议特征明显,也没有如IPSec的客观阻力,作为翻墙工具的话虽然运营商无法解析你加密之后的内容,但是无法隐藏你使用VPN的事实。

对于VPN,我会说如果你不明白VPN的实际用途,不然不建议自己搭建VPN用于翻墙,因为VPN容易被识别出来的特性并不适合用于翻墙。我这里所说的识别出来不等于你的信息会被墙完全解析,而是防火墙会识别出你的流量属于VPN流量,特征明显,从而封禁你的VPN服务器IP地址。但若是购买VPN服务,因为他们有大量的IP地址,可以使用不断更换服务器节点硬抗防火墙的封锁,这不失为一个良好的翻墙手段。

不存在稳定、快速、安全的免费VPN

众多免费的一揽子VPN软件我并不是特别推荐,一方面是这些VPN软件可能会保留你的日志,而且他们为了维持服务器和软件的运营成本也会投放大量的广告,使用体验极差;另一方面这些软件为了节约运营成本,服务器数量和质量十分低下,成千上万个用户共享寥寥几个节点。唯一一个我推荐免费VPN平台是VPNGate,这个平台的VPN服务器是世界各地的人们自愿架设,自愿维护的,但会公开所有连接的日志记录,不适合希望保护隐私的人。

但是,但是,免费VPN必然无法维持稳定的运营。多数的免费VPN是极小的团队为了赚取高额广告费而推出的,他们多数会赚了一笔之后马上关停节点(毕竟租用高带宽高流量的服务器十分昂贵)。部分公益VPN则更是难以保证稳定性,你需要非常频繁的更换节点以保证可用性。总的来说如果你只是希望暂时使用VPN服务的话,可以用用免费VPN,如果你的日常工作生活需要长期翻墙使用VPN的话请务必寻找一个更为稳定的方案。

如果你真的想要了解如何搭建VPN服务器,或者就是想要VPN打通内外的网络,本片篇幅明显不足以覆盖如此多的内容,之后我也会撰写文章讲解。

关于一些付费的VPN

搜索引擎一搜翻墙和VPN就能找到大量的VPN商家,而现在多数的VPN商家,如NordVPN和PureVPN有纳入Wireguard和IPSec作为他们的协议。若要用于翻墙用途,我建议尽可能挑选提供这两种协议的VPN商家,尽可能避免OpenVPN协议。

选择一家VPN除了考虑协议以外,如果你不想花费大量时间研究技术细节,必须考虑VPN是否易于配置,官方支持什么平台。此外,由于每个地区的网络情况有差异,为了保证购买之后不会因为无法使用VPN而导致财产损失,商家提不提供试用期或是无条件退款期就成为了一个非常重要的考量点。此外,若你缺乏境外付费手段例如外币信用卡、加密货币和Paypal,也需要考虑商家是否支持支付宝和微信付款。

需要注意的是,有些面向中国大陆的VPN例如PandaVPN使用的并不是VPN协议,而是类似Shadowsocks的代理协议,这类VPN也可以实现翻墙,而且抗封锁的性能也会好一些,但缺点便是少了一些VPN的特性。而且,这类商家的服务也会受限于使用的代理协议,而缺失某一方面的功能,具体待会移动到代理章节讲解。

我在这里并不会推荐某一个VPN,一般来说运营年份越多、规模越大、节点越多、使用的协议越为丰富为佳。但对于每个人来说因应家庭网络环境、使用设备和用户的技术,每个人适合的VPN商家都不一样。若要使用的话,可以关注我之后将会撰写的VPN商家挑选指南。

代理翻墙

代理技术是让一个代理服务器代替你访问某个网站,这个技术与VPN达成的效果相似,但是实现上却十分的不同。代理服务并不会让你接入一个虚拟的网络,而是直接去访问一个虚拟的服务,对于一些需要比较完整的网络环境才能做到的应用来说,代理服务可能无法承载这些应用的流量。例如很多代理并不支持UDP和ICMP协议的流量,而多数的VPN并不关心你的流量类型为何,只要包含IP信息就可以承载。

不过各类代理协议发展至今,所产生的复杂度和抗封锁能力已经远远超出了传统VPN,以至于一些打着翻墙噱头的VPN服务商暗地里使用的其实是代理协议(例如PandaVPN)。以下简单介绍一下常见的代理协议:

  • Socks5:socks5协议是一个泛用性极高但是没有任何加密的代理协议,socks包含三个版本:socks初版、socks4、socks5,现在基本只有socks5代理较为通用。由于没有安全性设置不包含加密,一般不会用于翻墙,但翻墙软件通常会将自己的协议翻译为socks5给浏览器或其他应用使用。
    socks5代理允许转发UDP流量,也允许简单的用户验证,唯用户验证信息以明文传输,一般在有安全性要求的场景中不会单独使用socks5。
  • HTTP/HTTPS代理:HTTP协议中的Connect方法支持转发TCP连接,但不支持UDP转发。与socks5类似,支持简单的用户验证。纯HTTP代理不包含加密,HTTPS代理则包含加密,且流量特征基本与HTTPS的SSL访问相同,故HTTPS其实是一种有效且抗封锁能力十分强大的代理协议(虽然并不算十分流行)
  • Shadowsocks(ss)协议:由Socks5启发而创作的加密代理协议,支持UDP,现在所流行的「Socks5-传输协议」的翻译模型便是来自于这款软件,支持许多加密协议,在不断地更新途中更是支持了许多混淆方法以及插件,是现阶段应用最广的安全代理协议之一,抗封锁性能优秀,但流量特征不算十分隐蔽,可以被探测出来。
  • Vmess/Vless协议(来源于V2ray工具包):来源于Project V工具包的代理协议,能够在TCP连接上面承载UDP协议,Vmess协议支持数种加密方式,但是是由客户端主动选择的。以及Vmess协议要求客户端和服务端的时间保持同步,这是vmess安全性设计的基础。而Vless则不要求时间保持同步,但是Vless与Socks5相似,并没有任何加密功能。
    Project V工具包所诞生的V2ray软件除了以上两个代理协议,也支持诸如Socks5、shadowsocks、http等代理协议,另外,这两个代理协议最常用的场景并不是单独使用,而是配合Project V内部的各种传输层协议组合使用,实现几乎是现阶段最为复杂与强大的代理工具组合,也开辟了另一条代理协议思路:嵌套协议。

    • 关于V2ray工具包相关的组合协议过于繁多,而且功能极为丰富,之后我会专门撰写文章仔细讲解。
  • Trojan协议:一种基于TLS的代理协议,支持将不属于Trojan代理的流量回落到正常的Web服务器。这个特性使Trojan服务器得以伪装成正常的网站,隐藏了代理的真实意图。
  • 一些我认为过时代理协议:

    • ShadowsocksR(SSR):混淆方式特征极大,十分容易分辨出SSR协议特征,并且几乎是只有翻墙才会使用这个协议(远古时期的SIM卡免流或许也会使用),所以封锁率极高,但加密并未得到破解,只是作为某些特殊用途的话仍然属于可用的代理协议,且性能相较于复杂的TLS代理仍然是较好的。
    • MTProto:MTProto已经无法在中国大陆使用,且这个协议只支持Telegram使用,局限性十分大。增强版的MTProto有MTProto-Fake-TLS,伪装成TLS协议以突破封锁,但配置繁琐且缺乏相关的文档,也缺乏通用性。
  • 一些我认为小众的代理协议:

    • NaiveProxy:思路与HTTPS代理几乎一致,直接使用现有的网络协议栈承载代理数据。
    • GOST-Relay:是代理工具包GOST提供的一种协议类型,可以代理TCP与UDP数据,也支持用户验证。

本文不会提及如何搭建如此多的代理服务器,因为代理服务器的组合繁多,每个类型的代理协议都有自己一套工具包,每一个的搭建与使用都可以撰写一篇篇幅中等的文章。之后将会逐篇讲解如何架设这些代理服务器。

免费代理服务器

由于开发以上代理协议(除了Socks和HTTP/HTTPS)的人士几乎都是中国人,网上能见到的免费SS节点、V2ray节点、Trojan节点几乎都是由中国人提供。有一些网站和平台会分享网络上流传的免费代理服务器,同时有一些好心人士也会免费提供自己搭建的节点供他人使用。以下是我收集到的部分资源来源:

此外,中国大陆许多地区可以流畅访问Github,若条件允许,也可以自行进入Github搜索相关的信息,有许多人会在上面分享自己搭建的或是收集到的公益节点。

需要注意的是,与VPN一样,不存在流畅、稳定的免费节点,节点的运营与维护、流量与带宽也需要成本,请节约使用公益资源,如果你的使用频率较高,需求较大的话务必寻找稳定可靠的方式,例如付费机场或是自行搭建代理节点。

关于付费机场

机场能够提供给你大量精心运营维护的节点,现在的机场基本都是经由国内优秀线路的服务器中转连接海外实际代理服务器的节点,相比于自建节点,在中国大陆连接的效果更为优秀。但是机场最大的问题在于运营风险高,监管不完善。不同于海外VPN的运营,运营海外VPN需要建立正经的公司,在当地政府的监管下合法运营的,而国内的翻墙机场多数没有合法公司,支付收款渠道由第三方代收,是名副其实的灰产。这类监管不完善的机场跑路风险极高,到目前为止,国内曾名列前茅的机场近乎全部都以跑路收尾近乎全部名声大的机场都跑路了。所以使用付费机场需要谨慎付费。

话虽如此,机场相比于自建节点的优势仍然是不可忽视,只需要支付一个服务器的费用,就可以使用一大组优质的代理服务器,而且不需要自行维护节点,相较于自建来说性价比相当高。但是缺点也十分明显,若机场跑路不但你的钱会打水漂,如果这个机场提供的节点是你唯一的翻墙手段,你将会失去与墙外的连接。所以对于使用付费机场,我认为至少要坚持以下两点才能放心使用:

  1. 永远只购买月付套餐,最小化机场跑路时候造成的损失
  2. 若你有长期翻墙的需求,永远留有第二条翻墙线路,无论是备用机场、VPN、经常更新的免费节点集还是自建节点。

只要做到以上这两点,机场是可以放心使用的。当然,如果你的技术能力足够优秀,自建节点的持续体验将会比机场来的更为优秀与稳定,这个内容留到搭建节点的文章再仔细讲解。

总结

可以看到,翻墙本身就是在规避长城防火墙对于我们正常访问请求的攻击,无论是VPN还是代理访问都是在尝试规避这些攻击。而只要你使用中国大陆的互联网接入服务,就无可避免的在国际网关处受到相关的攻击。

合成器学习笔记
发表评论
撰写评论