Skip to content
This repository has been archived by the owner on Sep 1, 2021. It is now read-only.

chuangbo/elixir-socks-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Socks

A EXPERIMENTAL socks5 server in Elixir. [WIP]

It's my personal practice project of learning Elixir. Use at your own risks.

Examples

$ # Start the server
$ mix run --no-halt
$ # resolve hostname from local
$ curl -v --proxy 'socks5://localhost' google.com
$ # resolve hostname from remote
$ curl -v --proxy 'socks5h://localhost' google.com

FIXME

What I havn't figured out yet

  • Too many nested cases?
  • How to run it properly?
  • How to use Application / Task / Supervisor? How to spawn two forwarding processes for each client properly?
  • How to handle errors properly?
  • How to close connection properly?
  • Specs?
  • Tests?
  • Connection pool?
  • Timeout?
  • Proxy to itself?
  • GenServer?
  • ???

TODO

  • Full protocal support?
  • Socks4?
  • Shadowsocks?
  • tunnel? (localtunnel or ngrok)

About

A socks5 server in Elixir. [EXPERIMENTAL]

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages