Code Monkey home page Code Monkey logo

socks5proxy's Introduction

Socks5Proxy

GitHub license GitHub stars GitHub forks Language Go Report Card

用golang 实现了一个简单的socks5协议来实现代理转发,主要应用场景是給公司内部做VPN登陆,提供内网访问。(声明:由于采用的是原始的socks5协议,并没有对协议做改造加工,并不一定能防范GFW的主动探测,请勿用于非法用途)

文件结构

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 encryption type: (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 encryption type: (default "random")

TODO

  • [ * ] 混淆加密
  • [ * ] 客户端

socks5proxy's People

Contributors

shikanon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

socks5proxy's Issues

error " socket: too many open files"

maybe in server.go line 41,
dstServer, err := net.DialTCP("tcp", nil, request.RAWADDR)
the same request.RAWADDR,but still build a new connect.

but i don't know how to fix it

problem

I am running the client and server on the local machine. Why can't I find socks package when I capture the lo network card through wireshrak

Can I use client and server on the same computer?

For example, I run
go run ../server/main.go -local :1235 -passwd 123
in a terminal.
And run
go run ../client/main.go -local 127.0.0.1:1234 -passwd 123 -server 127.0.0.1:1235
in another terminal window(in the same computer).
That's to say, I want to use another port and my computer as a proxy. Will it work?
When I do that, "server" showed 127.0.0.1:60868 请求协议错误 and "client" showed

00:29:14 success
panic: runtime error: index out of range

goroutine 5 [running]:
github.com/shikanon/socks5proxy.handleProxyRequest(0xc42000e040, 0xc420088570, 0x114be60, 0xc42004a3f0, 0x1133b87, 0x4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.