58 lines
2.4 KiB
Markdown
58 lines
2.4 KiB
Markdown
# go-socks5-proxy
|
|
|
|

|
|
|
|
Simple socks5 server using go-socks5 with authentication, allowed ips list and destination FQDNs filtering
|
|
|
|
# Examples
|
|
|
|
- Run docker container using default container port 1080 and expose it to world using host port 1080, with auth creds
|
|
|
|
```docker run -d --name socks5 -p 1080:1080 -e PROXY_USER=<PROXY_USER> -e PROXY_PASSWORD=<PROXY_PASSWORD> serjs/go-socks5-proxy```
|
|
|
|
- Run docker container using specific container port and expose it to host port 1090
|
|
|
|
```docker run -d --name socks5 -p 1090:9090 -e PROXY_USER=<PROXY_USER> -e PROXY_PASSWORD=<PROXY_PASSWORD> -e PROXY_PORT=9090 serjs/go-socks5-proxy```
|
|
|
|
# List of supported config parameters
|
|
|
|
|ENV variable|Type|Default|Description|
|
|
|------------|----|-------|-----------|
|
|
|REQUIRE_AUTH|String|true|Allow accepting socks5 connections without auth creds. Not recommended untill you use other protections mechanisms like Whitelists Subnets using Firewall or Proxy itself|
|
|
|PROXY_USER|String|EMPTY|Set proxy user (also required existed PROXY_PASS)|
|
|
|PROXY_PASSWORD|String|EMPTY|Set proxy password for auth, used with PROXY_USER|
|
|
|PROXY_PORT|String|1080|Set listen port for application inside docker container|
|
|
|ALLOWED_DEST_FQDN|String|EMPTY|Allowed destination address regular expression pattern. Default allows all.|
|
|
|ALLOWED_IPS|String|Empty|Set allowed IP's that can connect to proxy, separator `,`|
|
|
|
|
|
|
# Build your own image:
|
|
`docker-compose -f docker-compose.build.yml up -d`\
|
|
Just don't forget to set parameters in the `.env` file (`cp .env.example .env)` and edit it with your config parameters
|
|
|
|
# Test running service
|
|
|
|
Assuming that you are using container on 1080 host docker port
|
|
|
|
## Without authentication
|
|
|
|
```curl --socks5 <docker host ip>:1080 https://ipinfo.io``` - result must show docker host ip (for bridged network)
|
|
|
|
or
|
|
|
|
```docker run --rm curlimages/curl:7.65.3 -s --socks5 <docker host ip>:1080 https://ipinfo.io```
|
|
|
|
## With authentication
|
|
|
|
```curl --socks5 <docker host ip>:1080 -U <PROXY_USER>:<PROXY_PASSWORD> https://ipinfo.io```
|
|
|
|
or
|
|
|
|
```docker run --rm curlimages/curl:7.65.3 -s --socks5 <PROXY_USER>:<PROXY_PASSWORD>@<docker host ip>:1080 https://ipinfo.io```
|
|
|
|
# Authors
|
|
|
|
* **Sergey Bogayrets**
|
|
|
|
See also the list of [contributors](https://github.com/serjs/socks5-server/graphs/contributors) who participated in this project.
|