serjs / socks5-server

765 stars 181 forks source link

go-socks5-proxy

Latest tag from master branch Release tag

Simple socks5 server using go-socks5 with authentication, allowed ips list and destination FQDNs filtering

Examples

List of supported config parameters

ENV variable Type Default Description
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.

Test running service

Assuming that you are using container on 1080 host docker port

Without authentication

curl --socks5 <docker host ip>:1080 https://ifcfg.co - 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://ifcfg.co

With authentication

curl --socks5 <docker host ip>:1080 -U <PROXY_USER>:<PROXY_PASSWORD> http://ifcfg.co

or

docker run --rm curlimages/curl:7.65.3 -s --socks5 <PROXY_USER>:<PROXY_PASSWORD>@<docker host ip>:1080 http://ifcfg.co

Authors

See also the list of contributors who participated in this project.