Skip to content

Latest commit

 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

moproxy

moproxy is a high performance SOCKS5 (RFC1928) and HTTP proxy server written in Golang. It uses tcpserver as a basis.

THIS CODE IS NOT YET PRODUCTION READY. As always, use at your own risk :)

Features

  • IPv4 and IPv6 support (also IPv4 to IPv6 and vice versa)
  • Access rules (from/to IP ranges)
  • Support for username/password authentication
  • Timeouts for various stages
  • CONNECT command (normal SOCKS5 proxy usage)
  • BIND command (required for i.e. non-PASV FTP)
  • TCP FastOpen (TFO) support for remote connections with Linux Kernel 4.11+
  • Config reloading (using SIGHUP)

Development/Testing

Run moproxy using from repository's base directory

# go run bin/moproxy.go -vvvv

Installation

Installing moproxy is pretty simple using make. It only requires Go 1.25 (or better) to be installed on your system.

# make
# make install

This builds and installs moproxy to /opt/moproxy by default and registers a systemd service with the name moproxyto start, reload and stop the service.

You need to copy moproxy.conf.dist to moproxy.conf within /opt/moproxy/configs and adjust it to your needs prior to starting the service. The config file is in JSON format with documentation and examples as comments.

TODOs

  • Logging to SQLite
  • JSON status page
  • Support for more flexible authenticators (squid style)
  • Maybe support SOCKSv6

License

moproxy is available under the MIT license.

About

High performance SOCKS5 and HTTP proxy server with support for mixed IPv6 and IPv4 configuration

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages