用golang 实现了一个简单的socks5协议来实现代理转发,主要应用场景是給公司内部做VPN登陆,提供内网访问。(声明:由于采用的是原始的socks5协议,并没有对协议做改造加工,并不一定能防范GFW的主动探测,请勿用于非法用途)
- 当前
simple/random仅用于流量混淆,不是安全加密,也不提供现代意义上的机密性、完整性或重放防护。 - 不要把本项目当前的混淆层当作 TLS、SSH、WireGuard 或 AEAD 安全通道的替代品。
- 如果你的场景需要抗主动攻击、内容保密或篡改检测,请在外层叠加真正的安全传输层。
文件结构
cryptogram.go `流量混淆算法`
socks5.go `socks5协议实现`
server.go `服务端实现`
client.go `客户端实现`
cmd/server/main.go `服务端主启动程序`
cmd/client/main.go `客户端主启动程`
服务端
在服务器端中启动路径,打开。/cmd/server/,运行go run main.go
服务端命令参数有三个:
-local string #设置服务器对外端口
Input server listen address(Default 8888): (default ":18888")
-passwd string #设置服务器对外密码
Input server proxy password: (default "123456")
-type string #设置流量混淆类型
Input traffic obfuscation type (simple/random, not secure encryption): (default "random")
客户端
在客户端中启动路径,打开。/cmd/client/,运行go run main.go
服务端命令参数有四个:
-local string #设置客户端的本地转发端口
Input server listen address(Default 8888): (default ":8888")
-passwd string #设置服务器的密码
Input server proxy password: (default "123456")
-server string #设置服务器ip地址和端口
Input server listen address, for example: 16.158.6.16:18181
-type string #设置流量混淆类型
Input traffic obfuscation type (simple/random, not secure encryption): (default "random")
-recv string #设置上游协议模式
Upstream protocol mode: http or socks5 (default http)
