Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/armon/go-socks5
SOCKS5 server in Golang
https://github.com/armon/go-socks5
Last synced: 5 days ago
JSON representation
SOCKS5 server in Golang
- Host: GitHub
- URL: https://github.com/armon/go-socks5
- Owner: armon
- License: mit
- Created: 2014-01-22T23:49:51.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2024-06-14T23:51:57.000Z (7 months ago)
- Last Synced: 2025-01-04T11:09:47.826Z (7 days ago)
- Language: Go
- Size: 37.1 KB
- Stars: 1,976
- Watchers: 46
- Forks: 532
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome - armon/go-socks5 - 06 star:2.0k fork:0.5k SOCKS5 server in Golang (Go)
- awesome-network-stuff - **794**星
README
go-socks5 [![Build Status](https://travis-ci.org/armon/go-socks5.png)](https://travis-ci.org/armon/go-socks5)
=========Provides the `socks5` package that implements a [SOCKS5 server](http://en.wikipedia.org/wiki/SOCKS).
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:
* "No Auth" mode
* User/Password authentication
* Support for the CONNECT command
* Rules to do granular filtering of commands
* Custom DNS resolution
* Unit testsTODO
====The package still needs the following:
* Support for the BIND command
* Support for the ASSOCIATE commandExample
=======Below is a simple example of usage
```go
// Create a SOCKS5 server
conf := &socks5.Config{}
server, err := socks5.New(conf)
if err != nil {
panic(err)
}// Create SOCKS5 proxy on localhost port 8000
if err := server.ListenAndServe("tcp", "127.0.0.1:8000"); err != nil {
panic(err)
}
```