Skip to content
Projects

serjs/socks5-server

View on GitHub

serjs/socks5-server has 1,107 GitHub stars and 223 forks. Star changes are not measured yet. Last checked 2026-11-09 10:13 UTC. Last push 2026-01-13.

How these counts are measured

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

Measured star growth

in 24h
Update delayed
in 7 days
Update delayed
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

go-socks5-proxy

Latest tag from master branch

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 who participated in this project.

Explore related projects