The Wayback Machine - https://web.archive.org/web/20221222054624/https://github.com/things-go/go-socks5
Skip to content

things-go/go-socks5

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

go-socks5

GoDoc Go.Dev reference Action Status codecov Go Report Card License Tag

Provides the socks5 package that implements a SOCKS5. SOCKS (Secure Sockets) is used to route traffic between a client and server through an intermediate proxy layer. This can be used to bypass firewalls or NATs.

Feature

The package has the following features:

  • Support socks5 server
  • Support TCP/UDP and IPv4/IPv6
  • Unit tests
  • "No Auth" mode
  • User/Password authentication optional user addr limit
  • Support for the CONNECT command
  • Support for the ASSOCIATE command
  • Rules to do granular filtering of commands
  • Custom DNS resolution
  • Custom goroutine pool
  • buffer pool design and optional custom buffer pool
  • Custom logger

TODO

The package still needs the following:

  • Support for the BIND command

Installation

Use go get.

    go get github.com/things-go/go-socks5

Then import the socks5 server package into your own code.

    import "github.com/things-go/go-socks5"

Example

Below is a simple example of usage, more see example

package main

import (
	"log"
	"os"

	"github.com/things-go/go-socks5"
)

func main() {
	// Create a SOCKS5 server
	server := socks5.NewServer(
		socks5.WithLogger(socks5.NewLogger(log.New(os.Stdout, "socks5: ", log.LstdFlags))),
	)

	// Create SOCKS5 proxy on localhost port 8000
	if err := server.ListenAndServe("tcp", ":8000"); err != nil {
		panic(err)
	}
}

Reference

License

This project is under MIT License. See the LICENSE file for the full license text.

Donation

if package help you a lot,you can support us by:

Alipay

alipay

WeChat Pay

wxpay

About

😏 socks5 server in pure Golang with much custom optional. Full TCP/UDP and IPv4/IPv6 support.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages