Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/thinkgos/go-socks5

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/thinkgos/go-socks5

  • v0.2.2
  • Source
  • Go
  • Socket score

Version published
Created
Source

go-socks5

GoDoc Go.Dev reference Build Status 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 client(under ccsocks5 directory) and server(under root directory)
  • 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/thinkgos/go-socks5

Then import the socks5 server package into your own code.

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

or

import the socks5 client package into your own code.

    import "github.com/thinkgos/go-socks5/ccsocks5"

Example

Below is a simple example of usage, more see example

    // Server: 

    // Create a SOCKS5 server
    server := socks5.NewServer()
    
    // Create SOCKS5 proxy on localhost port 8000
    if err := server.ListenAndServe("tcp", ":8000"); err != nil {
      panic(err)
    }
   // Client: 
   client := ccsocks5.NewClient("127.0.0.1:10800")
    conn, err := client.Dial("tcp", "127.0.0.1:12345") // server you want to visitor
    if err != nil {
    	panic(err)
    }
    conn.Write([]byte("hahaha"))
    time.Sleep(time.Second)

Reference

FAQs

Package last updated on 15 Aug 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc