An open API service indexing awesome lists of open source software.

https://github.com/maurice2k/moproxy

High performance SOCKS5 and HTTP proxy server with support for mixed IPv6 and IPv4 configuration
https://github.com/maurice2k/moproxy

http ipv4 ipv6 proxy socks5

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

          

# moproxy

*moproxy* is a high performance SOCKS5 (RFC1928) and HTTP proxy server written in Golang.
It uses *[tcpserver](https://github.com/maurice2k/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.23 (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 `moproxy`to `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](https://tools.ietf.org/html/draft-olteanu-intarea-socks-6-11)

## License
*moproxy* is available under the MIT [license](LICENSE).