An experimental SOCKS5 server in elixir.
The following RFCs may be useful as background:
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
- No authentication
- GSSAPI
- Username/password
- IANA (wtf is this ?)
- Connect
- Bind
- UDP associate
- more tests
- use a socket acceptator pool
- benchmark