推倒防火墙,非国家之力,究竟可能不可能?

原帖地址:https://pincong.rocks/question/29353

很有意思的话题😄 说一下目前世界主流科学技术界对破除中国防火墙的几种办法和设想.


第一种:TITB思路,就是(to important to block),这个是谷歌想出来的,大概原理就是防火墙会利用TCP和UDP端口域名查询请求来验证IDS检测,那么好,我顺着你的意思来,但是我开一个新的Http和网络缓存,那我自己所有东西都放这上,你来封吧,你要么就是检验IDS过程中把我全封了,要么你就无法屏蔽我。 这个办法有点类似于有人要偷你家电视机,你拿强力胶水,把电视机粘在房子上,对方要想偷,就要把房子拿走。你中共如果想利用互联网做金融,外贸,获得讯息、代码、技术、论文,那么你也要打包拿走我的民主、法制、自由. 这个办法的好处是成本极低,而且见效极快,10分钟就可以。 但是他的缺点好几个,第一是需要立法层面规定大部分公司这么做,第二是怕万一中共狗急跳墙搞成朝鲜那种单一进出入口网络,第三是他本身违反DNS架设协议中对商业用途的规定,一旦开放会影响国际反洗钱和反恐。


第二种叫大锅战略,就是信号传输改由卫星传输,简单粗暴,但是2012年中国俄罗斯联合举行了一个会议叫互联网主权,大概意思就是说人民和咨讯是国家战略资源,任何对这些资源的干预都是对国家主权的侵犯,是入侵行为。而且大锅战略的全面实施要几十万亿美金计,他后期的维护升级费用更是中国升级一次,国际社会就要跟着升级一次,很被动不说,还是变相的冷战,就没法执行.


第三种叫新互联网,有好几种执行途径,当时就是澳大利亚的一个智库提出来,提议美国的加州DNS设立总部牵头,创造一个全新的次级路径subpath,由美澳英加新比这些国家牵头,我们把重要的军事,商业咨询全放在这里,然后各国拿出一些资金,帮助大学和研究机构,在这个框架里使用互联网,最后5-10年形成规模,我们把现在的主路径放弃掉,让这个次路径成为新的互联网,然后我们就不带中国玩。这个思路的好处是一劳永逸,但是他从根本上没有破除防火墙和中国审查,而是世界和互联网二元化,再说你很难担保哪天哪个总统抽风,像加入wto一样把中国容纳进来,那又要开一个sub-subpath 再搞一次.


第四种叫root Tor,中国从18大以后防火墙两次升级,现在已经有能力在各个主要出口路由精准识别加密协议的能力,其实就等于在一个海关,本来是好几万个人,呼啦一声1秒内冲过海关,你就没法抓住,现在防火墙能力就是在这1秒钟,我假如事先知道这几万人里有张三和李四,那么我就能定位他俩。 于是加拿大的一个网络工程师就写了一个论文,他说我们把root servers本身的域名用tcp重制了,这样就相当于不光张三李四,这好几万人都带上面具了,这样中国政府就要花很大成本去找,还要重新设计各个部门的防火墙协议,金盾也用不了。 这个概念是最近两年提出来的,但是有人反对,因为这本身的本质是一种解码,他不涉及到技术门槛问题,仅仅是运算层面的问题,随着计算机应用技术前进,中国很容易掌握反制措施。


还有一个计划叫风暴自由门,特别有意思,美国出资给私企搞的,但是这个计划本身是很偶然性产生的,就是中共建立了防火墙以后,在2002年以后,由于世界13个根域名协议有3个在中国,结果国际社会和中国都意外发现,防火墙系统会通过这三个根域名反过来污染真互联网,导致各国互联网域名解析异常,你上淘宝,莫名其妙就转到伊朗国防部网站了,当时几次防火墙污染,都导致很多企业和网站主动屏蔽所有来自中国的ip和申请,风暴自由门就是想设计攻击防火墙软件的反制软件,目的是主动触发污染,这样国外的企业和网站就必须主动屏蔽来自中国的申请,中国就无可避免的要关闭防火墙. 2015年发生一个大事,就是中国当时2万多个网站的访问,都被引导到“自由门vpn”的网站域名上去,很多人怀疑就是风暴自由门计划的实验. 


目前还有一种特别超前的想法,就是DPI技术,他大概的思路就是全球的互联网都采用深度数据包检测,这种检测带有用类别检测的排他性,一旦遇到同类别的检测就产生歧义排他,因为包括中国华为在内的一些公司,用的都是cisco开发的DPI,这种办法就是导致中国无法再用国外技术去升级防火墙.


还有一些科幻的想法,比如量子计算机用野蛮覆点算法破解防火墙加密,再就是量子纠缠通讯技术。


目前美国国务院每年批准下拨款项给企业,去针对中国网络技术审查的资金每年才3000万美金,这种规模的投入是永远研究不出来完美破解GFW的办法的,中国2018年成立第五大军种就战略支援部队,主要任务就是网络战,美国新成立的第六大军种却叫太空军,他只有一部分是搞通讯的,但是他的思路定位很明显,就是今后对付防火墙和中国网络入侵,网络审查的主要思路,没有放在互联网纠缠上,而是把宝押在了以后人类文明很可能会离开传统的DNS,TCP,Http这些,转为全新的一种外太空基站卫星通讯。

如何优雅地科学上网和翻墙?(2020年有效)

原文地址:https://www.mastercaihao.com/804.html#more-804

本文是系列文章中的一部分,目录如下,建议按顺序阅读。三篇文章合起来,彻底解决科学上网的刚需:
如何优雅地科学上网和翻墙?(2020年有效)(本文)
如何让Chrome/Firefox/Edge自动翻墙,提高科学上网效率?
如何让iPhone(iOS)和安卓(Android)手机自动翻墙,提高科学上网效率?(2020年更新)
为什么科学上网不能用了,如何排查?

本文所介绍的科学上网方案是我个人使用且经过长期验证的方案。相比其他方案而言,有如下特点:

  • 速度快:看youtube视频,基本秒开。1080P是小儿科,4K和5K也无压力(使用cn2 GIA的前提下)。
  • 稳定:一会儿能用,一会儿不能用的科学上网方法,那都不是人该忍受的事儿。
  • 适用范围广:可用于Windows和MacOS电脑,还可以用于iPhone和安卓Android手机。一个机(VPS)在手,翻墙不愁。
  • 详细:尽量降低实施难度,操作步骤都是带图的。
  • 内容全面:基本上,本文在手,别无所求。

总之一句话,优雅。

如果一定要找个缺点的话,那就是不免费……其实,免费才是最贵的。

闲话

2017年初写过一篇系统的文章《如何优雅地访问Google, Facebook, YouTube?》,此时,那文章已经过期了。主要原因是有二:

  1. 原文基于shadowsocks的技术已经被攻破。任何基于此技术的代理,用不了几天,IP就会被屏蔽,然后就不能用了。即使更换了IP,在未被再次屏蔽前,用起来也经常出现“断流”现象。一句话,不好用了。
  2. 原文推荐的cn2线路,已经逐渐变得拥挤。2017年还能流畅地看1080P youtube,现在则经常卡住,甚至只能看720P。

回想这些年,科学上网的技术其实是一直在进步和发展:

  • 200x年:全局的VPN,issh
  • 201x年中期:APN
  • 近两三年shadowsocks的流行,再到2019年中,shadowsocks技术被攻破。

回头看,科学上网的发展和进化还是非常明显的。好吧,万事万物都是发展的,客观规律。

适合2020年的科学上网方案

先抛结论。

  1. 技术上,用v2ray,而不是Shadowsocks或Trojan。从 Shadowsocks被攻破的2019年中期开始,v2ray是比较成熟和稳定的方案。具体来说,要用v2ray + tls,或者v2ray + tls + ws。
  2. 线路上,最少用cn2,如果预算允许,最好上cn2 gia。在2017年时,普通的cn2线路就可流畅看1080P youtube,但到2019、2020年,cn2线路则经常卡顿。
  3. 在操作系统上,可加入最新的bbr技术。BBR技术,可以更好地抢占带宽,从而达到同样带宽,速度更快的目的。CentOS, Debian, ubuntu都支持BBR。

个人推荐的方案用大白话说就是:

经济方案:cn2 VPS + v2ray + bbr,可看1080P youtube。
极致方案:cn2 GIA VPS + v2ray + bbr,可看流畅4K和5K youtube。

步骤1:购买带cn2线路的VPS

凡是注明cn2线路的VPS都可以。如上所言,如果要达到“秒开youtube,无压力4K视频”的程度,请购买带cn2 GIA的VPS,一般用户,普通的CN2线路就够了。

个人使用的是bandwagonhost(俗称“搬瓦工”)的VPS。

购买相应的VPS

点击Register,按提示注册在BWG的账号。

有了账号和密码后,点击右上角Client Area,登陆到后台,并在Services > Order New Services订购VPS。

记得,购买带有cn2(或者cn2 GIA)字样的VPS即可,最便宜的即可。

在我发文时,如下产品有货,当然,你也可以挑别的:

  • SPECIAL 20G KVM PROMO V3 – LOS ANGELES – CN2,即cn2线路的vps。
  • SPECIAL 20G KVM PROMO V5 – LOS ANGELES – CN2 GIA ECOMMERCE,即cn2 gia线路的VPS。

步骤2:重装VPS操作系统为Ubuntu

使用KiviVM控制面板,管理VPS

登陆后台,后台菜单Services > My Services。找到购买的VPS,点击KiwiVM Control Panel。

停机,方便重装操作系统

在KiviVM Control Panel中,确定status为stop。如果status为running,点击stop让VPS停机。下一步要重装操作系统,把系统从其他换成Ubuntu 18.04 x86_64。

记录下上面的“Public IP address”,如本文的74.120.xxx.xx。

为什么用Unbuntu,而不是其他Linux操作系统?

答:个人喜好。如果采用Debian或Cent OS,后面涉及的命令有些不同,请自行Google。

重装操作系统的步骤

如上图,Install new OS > ubuntu-18.04-x86_64,勾选“I agree that all existing data on my VPS will be lost”,点击Reload。

记录下root password和SSH port

等一会儿,系统会重装完成。记录下上面的root password和SSH port。

检查一下,此时你应该:

  • 有IP, root password, SSH port
  • 重装成Ubuntu的VPS处于running状态

步骤3:在VPS上安装V2ray

由于我使用的是MacOS,后面登陆VPS的命令等都是在系统终端(terminal)完成的。

大概率的,你使用的是Windows。要继续后面的操作,请先下载并安装PuTTY:https://www.putty.org/。接下来的内容,命令相同,只是界面不同而已。

使用root账号和密码登陆VPS:

ssh -p 276xx root@74.120.xxx.xx
使用命令行,登陆VPS

出现“root@localhost:~#”,表示成功登陆VPS。

tzselect

使用tzselect修改系统时区,按提示,分别选择“4) Asisa > 9) China > 1) Beijing Time > 1) Yes”。就操作而言,你是执行了tzselect后,分别:4、回车、9、回车、1、回车、1回车。

cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

将配置文件复制到系统。

确认VPS时间准确且与电脑一致

date

执行date,系统时间应该与你的电脑时间一模一样。

注意:出于安全考虑,在使用V2ray的过程中,VPS的时间必须与电脑(或你手机)时间一致,才能正常运行。所以这一步一定要做,而且要确认VPS、电脑、手机时间是正确且三者是一致的。

wget https://install.direct/go.sh

下载V2ray的安装脚本到VPS。

bash go.sh

执行安装脚本。

选yes,回车。

中途的提示,选择Yes并回车。

看到绿字,表示成功安装

看到“V2Ray v4.22.1. is installed”的绿字表示成功安装。同时,复制“PORT”和“UUID”的内容备用。

systemctl start v2ray

启动v2ray。

走到这一步,理论上已经可以翻墙了。但在实践中,这样安全水平的v2ray,会经常掉线,即被gfw干扰,我们还得进行进一步的加密操作。

步骤3:为V2ray启用TLS加密

购买一个域名,并将A记录指向你的VPS。

编辑好的DNS,每一家的界面会有点不一样

域名配置好后,大约需要几个小时等新的DNS生效。

如何判断DNS是否生效?

答:ping yourdomain.com,如果返回的IP与你的VPS IP一致,就表示生效了,如下图。

time有数值时,表达通了,即生效。如果timeout,就表示未生效。
apt install socat

安装socat组件,这是下一步acme.sh所需要的一个组件。

curl  https://get.acme.sh | sh

下载并安装acme.sh。

acme.sh是一套自动化脚本,它是从Let’s Encrypt自动申请和更新域名证书的程序。直观地说就是,将你的域名从http协议,转化成https。

域名证书分付费和免费的。这里,我们使用的Let’s Encrypt免费的证书。因安全需要,证书需要定期更新,于是我们使用acme.sh这个脚本,完成从申请,到定期更新这一套动作。

~/.acme.sh/acme.sh --issue -d yourdomain.com --standalone -k ec-256
为域名生成证书

请将上面命令里的yourdomain.com替换成自己的域名。完成后,应该看到上图类似的提示。

~/.acme.sh/acme.sh --installcert -d yourdomain.com --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key --ecc

将刚申请的ecc证书安装到v2ray目录,执行完后,应该如下图:

nano /etc/v2ray/config.json

nano是linux里的一种文本编辑器,相当于windows里的记事本。后面是告诉nano打开某个目录的某个文件。

配置文件示例

打开的文件应该是有内容的,如果是空白(黑黑的一片),那是输入错误,再好好检查一下。

狂按“Ctrl – K”(按住Ctrl不放的同时按K),一次删除一行,N次,直到把整个配置文件删除空为止。

{
  "inbounds": [
    {
      "port": 443, // 建议使用 443 端口
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "00000000-0000-0000-0000-000000000000",
            "alterId": 64
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "tls", // security 要设置为 tls 才会启用 TLS
        "tlsSettings": {
          "certificates": [
            {
              "certificateFile": "/etc/v2ray/v2ray.crt", // 证书文件
              "keyFile": "/etc/v2ray/v2ray.key" // 密钥文件
            }
          ]
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}

将上述代码中“id”的值(即那一大串0000)修为前文记录下的UUID的值后,粘贴到远程窗口里,按“Ctrl – X”(退出),按Y回车进行保存。

systemctl restart v2ray

重启v2ray,使刚刚的修改生效。

步骤4:配置电脑使用端

接下来配置电脑使用的客户端。

V2rayW和V2rayX可能是一个东西在不同平台使用了不同名称。程序图标一样,界面也非常相似。本文继续以MacOS的V2rayX为例,Windows非常相似,就不另外写了。

忘记Load core,是新人常见问题


下载并安装V2rayX,启动。在任务栏里,点击图标。

  1. Load core:程序启动后,并没有开始工作,一定要点击“Load core” v2ray才开始工作。(这是新人常犯的问题)
  2. Configure…:点击Configure,开始配置服务器信息。
配置V2ray客户端


点击左下角的“加号”,添加服务器:

  • Address:服务器IP,本文是74.120.xxx.xx
  • Port:443(Adress分号后面这个空白处的内容),前文,我们修改“/etc/v2ray/config.json”这个文件时,已经将端口从其他端口修改为了443。
  • alterId: 64
  • Tag:VPS的备注,按自己喜好填写,本文填写的P7,即Proxy 7。

点击右侧下部的“transport settings…”,继续配置。

进一步配置服务器信息


TLS标签:

  1. 勾选“Use TLS”;
  2. TLS serverName:IP指向此VPS的域名

点完两个OK,将配置保存。

切换为Global模式,准备测试


再次打开V2rayX在任务栏的菜单:

  1. Server:勾选刚刚配置服务器,本例是P7。
  2. 勾选Global Mode:勾选此项表示,所有流量将走代理。

此时,使用苹果自带浏览器Safari(Windows是Internet Explorer,是Internet Explorer,不是Win 10自带的Microsoft Edge),访问Google.com试试,应该能访问了。

科学上网,从Google开始。


久违的,科学上网又回来了。

步骤5:更优雅一点

在V2rayX使用Global Model时,所有流量都是走的代理,不管你访问需要或不需要翻墙的网站,信息都是先传到bwg美国的VPS,再传到你的电脑。

访问欧美网站还好。如果是访问国内网站,那就是信息先从中国到美国,再从美国回到中国,嗯,差不多绕地球一周了。这样的方法想代理速度快,那是不可能的。

所以,我们要再进一步配置一下,让浏览器“智能”一点:

  • 如果访问国内网站,那请直接访问,不绕道美国的VPS;
  • 如果是访问Google/Facebook/Twtiiter等需要翻墙的网站,那请“自动”走VPS的代理线路,不要手动干这些事儿。
  • 当然,对于需要的时候,我们也可以随便指定走或不走代理。

要实现这功能,就需要使用Google Chrome + Switchy Omega扩展来实现上面的功能。

好了,到此,彻底解决电脑(MacOS & Windows)优雅翻墙的要求,还差在iPhone手机和安卓Android优雅科学上网。

FAQ

问1:为什么不使用Trojan?

答:根据实测,同样的配置下,Trojan速度不如V2ray。

问2:为什么不使用VPN?

答:VPN是给远程办公用的,让你能在任何地方,连进公司的局域网,使用公司的打印机或局域网共享文件等。翻墙只是它的附带功能。再说了,VPN不能实现“智能”翻墙。

问3:为什么没有使用BBR技术?

答:咱一步一步来,先搞定本文里的内容,再来BBR。

最后

本文已经尽量做到详细,但对于从没有接触过Linux和命令行的朋友,还是有难度的。如果你实在不想花时间在这些技术上,可以购买我已经配置好的代理。使用的方案和VPS都是本文提及的。

当你配置好v2ray, 电脑的浏览器和手机时,就做到优雅地科学上网了,它:

  • 速度快:最大限度利用了VPS的速度。
  • 稳定:我已经实测好几个月了。
  • 通用性强:MacOS, Windows, iOS, Andorid,一个都不放过。
  • 优雅

这就是2020年最优雅的翻墙方案,没有之一。

(注:焦点图来自zain@泼辣有图,版权归原作者所有。)