Skip to content

forchain/rust-netproxy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rust-netproxy

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 SmithNeo 一样,也会进化。跟 Agent Smith 打斗,毫无意义,只会让他变得越来越强!

所以,怎么办?我的看法是效仿 NeoThe 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.8%
  • Other 0.2%