# work：魔法上网原理@

By [erthor pabar](https://paragraph.com/@erthor-pabar) · 2023-03-14

---

### 1防火墙的根本原理

防火墙的根本原理包含两点。

*   对ip进行双向封锁。1本地电脑不能对目的服务器发出请求。2即使接到请求，目标服务器发起的回应也会遭到拦截。
    
*   对流量进行检测并封锁。当然，通信中的流量都是进行过加密的，无法对流量的具体内容进行检测。但是往往会根据流量的异常行为进行重点审查，这些异常行为包括：1超长的使用时长。2超大的流量。3夸张的加密手段。等各种角度进行检测。
    

所以要进行魔法上网，就需要克服以上两点。

### 2魔法上网

魔法上网的可行性。

*   绕过ip封锁。要知道，在物理层面，网络是通过一根根光缆或卫星信号进行信息传输的。这就形成了一个网络关系，参考六度人脉理论。如果两个节点之间的通信被切断，那么你大概率可以找到一个中间节点可以同时接连接2个被截断的节点。这就是魔法上网的根本原理。
    
*   大家的光缆是一块拉的。所以大家的网络天然是连在一起的，你只能决定剪断哪些特定的连接。只要你剪断的连接没有我寻找的新连接快，那么理论上就永远不可能被封锁。所以防火墙只是听起来可怕，它并不是是墙，而是去剪断一根线。魔法上网并不是找漏洞去绕过一些什么，而是去建立一些新的关系。
    
*   现实中，我们往往不会去特意寻找这些**中间节点**。所以更进一步，只要你找到中间节点的数量足够多，那么理论上你可以无视这种连接上的封锁。
    

### 3如何实现魔法上网

*   中间节点。要实现魔法上网，首先就应该找到这些中间节点，然后连接上它们。这些中间节点往往会被叫做vps主机。（vps主机就是把一台电脑分成配置更低的几台虚拟电脑，其作用等价于一台电脑。）vps主机会提供给你连接服务，这样你就可以实现魔法上网。
    
*   为什么这些vps厂商的ip地址不会被封呢？一般的网站地址往往固定不动，所以更加容易进行ip封锁。而vps厂商服务器往往在国外，还会自己开发新的ip地址，这些地址本身就是无限的，动态的，被封了就去找一个新的，总有一个ip地址是能够连接国内没有被封锁的。所以如果抹平了这层信息差，那么防火墙就永远不能起作用。防火墙是以有限的力量，对抗无限的可能性，这项技术本身就建立在大众的信息差之上，是站不住脚的。
    

### 4防火墙的法理性

*   宪法第二章，公民的基本权利和义务。第四十条：中华人民共和国公民的通信自由和通信秘密受法律的保护。除因国家安全或者追查刑事犯罪的需要，由公安机关或者检察机关依照法律规定的程序对通信进行检查外，任何组织或者个人不得以任何理由侵犯公民的通信自由和通信秘密。
    

由此可见，防火墙只在不侵犯公民通信自由的情况下是符合法理的。防火墙可以用来防治网络攻击，保护机构敏感数据。但是如果通过防火墙去限制公民获取信息，侵犯到公民通信自由的权利，监视公民使用vps的ip地址，侵犯公民通信秘密的权利，则是违反宪法法规的行为。

当然，暴力可以无视一切法律。

### 5提供vps主机服务的厂商

*   [AWS LightSail](https://lightsail.aws.amazon.com/)
    
*   [AWS EC2](https://aws.amazon.com/cn/)
    
*   [Google Cloud Platform](https://cloud.google.com/)
    
*   [Linode](https://www.linode.com/)
    
*   [Conoha](https://www.conoha.jp/zh/)
    
*   [Vultr](https://www.vultr.com/)
    
*   [Oracle Cloud](https://www.oracle.com/cloud/free/)
    

### 6实现魔法上网所需要的工具

*   传输层协议：作用是对数据进行封装打包。包括数据的分割，校对，传输速率等。 **数据传输协议包括**：1TCP，2UDP，等。
    
*   应用层协议：作用是对于数据本身进行加密。分为两种，vpn协议，和安全代理协议。 **vpn协议包括**：1openVPN，2wireGuard，3PPTP，4L2TP，等。 **安全代理协议包括**：1socks，2shadowsocks（ss），3shadowsocks（ssr），等。
    
*   安全协议：作用是让两台计算机互相交换私钥，产生通信许可，只有满足私钥加密过的信息才能被接收。 **通信许可协议**：1SSH，2SSL，等。
    
*   网络层协议：不需要。
    
*   数据链路协议：不需要。
    
*   物理层协议：不需要。
    

（你需要知道每个协议在哪个层面上起作用）

### 7实现魔法上网的流程

*   1购买vps服务器。
    
*   2用通信许可协议，构建通信许可，确保vps的信息是经过允许的，无害的。比如说通过SSH软件（xshell）对vps主机进行连接。会产生一个私钥，只要有私钥，任何电脑都能接受vps主机的信息。
    
*   3通过软件连接vps服务器，使用vps主机对目标服务器进行正常访问，获取到数据。
    
*   4用vpn协议，或安全代理协议对得到的数据进行加密，预先防止检测到数据传输等异常行为。
    
    使用安全代理协议的叫做机场。
    
    使用vpn协议的叫做vpn，它在本地和中间节点之间多做了一层加密，更安全。
    
*   5使用数据传输协议把数据传回到本地。因为预先做了加密，不会被检测到。至此已经实现了魔法上网。
    

![](https://storage.googleapis.com/papyrus_images/a45bc95d2dcbd232b7d0c002702cfb0114b3fe8610e735a9aa75ccb4aaf9ce2a.png)

原理如图所示。

tor叫做洋葱网络，使用中间三个中间节点作为匿名保护。符合魔法上网的原理，所以仅仅利用tor网络也可进行魔法上网。

### 8去中心化的匿名网络通信项目

*   tor
    
*   I2P
    
*   freenet
    
*   GNUnet

---

*Originally published on [erthor pabar](https://paragraph.com/@erthor-pabar/work-3)*
