Skip to content

shikanon/socks5proxy

Repository files navigation

Socks5Proxy

GitHub license GitHub stars GitHub forks Language Go Report Card

用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)

TODO

  • 明确 simple / random 仅用于流量混淆,不作为安全加密承诺(#23
  • 迁移 CI 到 GitHub Actions,并补齐格式化 / 测试 / vet / staticcheck(#25
  • 将发布物迁移到 GitHub Releases,并提供 SHA256SUMS#28
  • 补充 README 的安全声明与威胁模型说明(#29
  • 说明客户端与服务端同机部署的使用方式(#2
  • 排查并缓解 socket: too many open files 问题(#3
  • 更新下载与使用说明,覆盖最新发布方式与问题排查入口(#4

About

一个简单的socks5代理转发服务(VPN)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages