NanoProxy

Note: This code includes modifications from the original go-socks5 project (https://github.com/armon/go-socks5)
Modifications have been made as part of maintenance for NanoProxy.
This version is licensed under the MIT license.
NanoProxy is a lightweight proxy server written in Go. It supports both SOCKS5 and HTTP Proxy protocols, making
it flexible for proxying various types of network traffic. NanoProxy is designed to be simple, minimalistic, and easy to
use. It can be run as a standalone service or as a Docker container.
> ⚠️ Notice: NanoProxy is currently in pre-production stage. While it provides essential proxying capabilities,
> please be aware that it is still under active development. Full backward compatibility is not guaranteed until
> reaching a stable release. We recommend caution when using NanoProxy for critical production applications. Make sure
> to keep an eye on the changelog and be prepared for manual migration steps as the project evolves.
Data Flow Through Proxy
NanoProxy acts as a proxy Server that forwards network traffic between the user and the destination Server.
When a user makes a request, the request is sent to the proxy Server. The proxy Server then forwards the request to
the destination Server. The destination Server processes the request and responds back to the proxy Server, which then
sends the response back to the user. This allows the proxy Server to intercept and manage network traffic effectively.
Here's how the data flows through the proxy:
sequenceDiagram
participant Network
participant Proxy
participant DestinationServer
Network ->> Proxy: Request
Proxy ->> DestinationServer: Forward Request
DestinationServer ->> Proxy: Process & Respond
Proxy ->> Network: Respond
This clear separation of responsibilities helps optimize network communication and enables various proxy-related
functionalities.
Data Flow Through Proxy with Tor Support
NanoProxy with Tor adds an extra layer of anonymity and privacy to network traffic by using the Tor network. This
enhanced version manages your requests through Tor's decentralized network of nodes, providing better privacy
protection.
Here's how the data flows through the proxy when using Tor support:
sequenceDiagram
participant User
participant NanoProxy
participant TorNetwork
participant DestinationServer
User ->> NanoProxy: Request
NanoProxy ->> TorNetwork: Forward Request through Tor
TorNetwork ->> DestinationServer: Request via Exit Node
DestinationServer ->> TorNetwork: Process & Respond
TorNetwork ->> NanoProxy: Response via Entry Node
NanoProxy ->> User: Respond