用Netty实现Trojan(二)
本节主要是介绍如何实现一个允许tcp通过的socks代理服务器,大部分携带网络功能的客户端,如curl、wget、浏览器等,在请求的时候,可以通过环境变量或者设置的形式,使这些客户端通过代理进行请求,以下是一个简单的例子:
本节主要是介绍如何实现一个允许tcp通过的socks代理服务器,大部分携带网络功能的客户端,如curl、wget、浏览器等,在请求的时候,可以通过环境变量或者设置的形式,使这些客户端通过代理进行请求,以下是一个简单的例子:
selcarpa/surfer tag(1.13-SHAPSHOT)
项目采用kotlin语言,它是一种基于JVM的静态类型编程语言,它可以编译成Java字节码,完全兼容Java的生态系统,可以与Java代码无缝互操作。它的语法与Java非常相似,但是它有更多的特性,比如:null安全、扩展函数、运算符重载、lambda表达式、属性代理等等。
Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty是一个NIO客户端-服务器框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议。Netty提供了一种新的方式来使开发网络应用程序,这种新的方式使得它很容易使用和有很强的扩展性。
Trojan协议是一个类似于socks的代理协议,它的特点是可以在tls的连接中传输,这样就可以在网络中隐藏自己的流量,使得流量看起来像是一个正常的https连接,从而规避流量审查,在认证方式上,trojan采用56字节作为认证字段,用以验证客户端和服务端的身份。在交互报文中,Trojan协议的Trojan request结构与socks5的socks5 CMD几乎一样。