ElixirSocks5

Build Status

An experimental SOCKS5 server in elixir.

The following RFCs may be useful as background:

How to use ?

By default the socks5 server use the port 1080 and have basic authentication enabled. You can tweak it in the config.

# start the server
mix run --no-halt

curl -v https://google.com --socks5 127.0.0.1:1080 --proxy-user username:password

# use socks dns
curl -v https://google.com --proxy 'socks5h://localhost' --proxy-user username:password

Authentication

  • No authentication
  • GSSAPI
  • Username/password
  • IANA (wtf is this ?)

Commands

  • Connect
  • Bind
  • UDP associate

General todo

  • more tests
  • use a socket acceptator pool
  • benchmark