https://github.com/howmp/go-socks5
SOCKS5 server in Golang
https://github.com/howmp/go-socks5
Last synced: 6 months ago
JSON representation
SOCKS5 server in Golang
- Host: GitHub
- URL: https://github.com/howmp/go-socks5
- Owner: howmp
- License: mit
- Fork: true (armon/go-socks5)
- Created: 2022-09-13T00:31:40.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2022-09-13T00:37:15.000Z (almost 4 years ago)
- Last Synced: 2024-06-20T05:10:00.782Z (about 2 years ago)
- Language: Go
- Size: 40 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
go-socks5 [](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 tests
TODO
====
The package still needs the following:
* Support for the BIND command
* Support for the ASSOCIATE command
Example
=======
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)
}
```