Date: | 10/03 2017 |
---|
netproxy 是一个正在快速开发当中的 全局主动代理 。
netproxy 首先让 系统默认的网络设备流量 路由至 一个虚拟的网络设备,
然后 再过滤 该虚拟网络设备 当中的流量,识别 需要被代理的流量,
最后 通过 SSH 协议转发出去。
和 Shadowsocks 相比有什么区别?
客户端上:
简单来讲,Shadowsocks 是一个 Socks5 被动代理, netproxy 则是一个 全局主动代理。
被动代理 需要应用程序主动地去适应它, 而 全局主动代理 则在 OSI Model Layer 4 层主动寻找需要被代理的流量。
好消息是 Shadowsocks 的这个缺陷可以通过一些 tun2socks 之类的程序弥补。 一般来说,tun2socks 之类的程序需要你简单地配置下本地的 IP转发 规则, 以使网络设备上的特定流量转发至 socks 之类的服务上面(当然这通常需要你具备比较基本的网络知识)。
服务端上:
Shadowsocks 需要在服务器运行一个服务端来处理 socks5 服务传来的转发任务。
netproxy 默认使用 SSH 的转发服务,这意味着,如果你的服务器是 GNU/Linux 系统,你无需安装任何程序以及编写任何配置。
关于对抗网络封锁:
一般来说,就是混淆自己的流量包特征,以达到能规避 Agent Smith 搜捕的效果。
但是,就如电影 The Matrix 里面给我们展示的一样, Agent Smith 跟 Neo 一样,也会进化。跟 Agent Smith 打斗,毫无意义,只会让他变得越来越强!
所以,怎么办?我的看法是效仿 Neo 在 The Matrix 里面所做的一样, 跟 The Matrix Host 谈判,重置 The Matrix ,拯救锡安。
当然,我知道,这,并不容易。
关于去中心化:
鼓吹去中心化的概念由来已久,但是遗憾的是,目前为止我还没有见到一个真正能做到去中心化的网络。
Bittorrent 需要一个 Tracker 服务来让节点互相发现。
Bitcoin 需要一个 Seed Peers 来让节点互相发现。
Tor 同样需要一个 Seed Peers 来更新网络信息。
无论是 Tracker 还是 Seed Peers ,他们都承担了一个中心化的角色,而这个中心则可以被轻而易举地在路由层封杀掉。
有人可能会说,就算 种子节点 被封杀,我们可以采用 邻居发现的模式啊,我们通过网段一级一级地往上查找,寻找可以交流的同类, 一旦发现同类,则把地址存储起来,然后同类之间还可以互相交换花名册 ...
好吧,在 IP version 4 的时代,这还可以勉强勉强尝试下(虽然实际上,我真没碰到可行的),毕竟 IP version 4 的地址 也只有 40 多亿嘛,暴力搜索搜索一两天还是可以搜索完的。
但是我们现在已经步入了 IP version 6 的时代,这种办法真的已经是 一点用都没有了 ...
我们的网络模型是一个中心化的网络模型,在一个中心化的网络模型下面讨论去中心化, 这 ...
我很欣赏前辈们所作出的那么多努力,虽然没有一个是成功的 ...
另外提一个案例, lantern(蓝灯) 项目在开始时也尝试了去中心化,最终以失败收场。
最后,综上所述,为什么不考虑 对抗网络封锁 和 去中心化,原因是 很显然技术无法解决现实世界里面的政治问题。
上帝的归上帝,凯撒的归凯撒。这些现实世界里面的政治问题应该由那个世界的人们去解决。
brew install python3
brew install rustup-init
rustup install nightly
rustup default nightly