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
- Host: GitHub
- URL: https://github.com/maurice2k/moproxy
- Owner: maurice2k
- License: mit
- Created: 2020-05-28T08:04:49.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-07-14T23:41:35.000Z (9 months ago)
- Last Synced: 2025-07-15T04:02:27.971Z (9 months ago)
- Topics: http, ipv4, ipv6, proxy, socks5
- Language: Go
- Size: 95.7 KB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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).