explaingit

snail007/goproxy

16,957GoAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

GoProxy is a feature-rich proxy server in a single binary that handles HTTP, SOCKS5, WebSocket, TCP, UDP, and shadowsocks protocols, with support for chaining nodes, encrypted tunneling, port forwarding, and exposing local services to the internet.

Mindmap

mindmap
  root((goproxy))
    What it does
      Proxy server
      Port forwarding
      Intranet penetration
    Protocols
      HTTP HTTPS
      SOCKS5
      TCP UDP SS
    Features
      Node chaining
      TLS encryption
      Smart routing
    Use cases
      Personal tunnel
      Webhook testing
      LAN game over internet
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Expose a local development server to the internet for testing webhooks or demos via intranet penetration

USE CASE 2

Set up an encrypted multi-hop tunnel to route traffic through another node

USE CASE 3

Forward specific TCP or UDP ports to another machine inside a private network

USE CASE 4

Build a personal proxy with automatic smart routing that only proxies blocked sites through an upstream

Tech stack

Go

Getting it running

Difficulty · moderate Time to first run · 30min

Intranet penetration requires a server with a public IP, TLS chaining needs certificates set up on both nodes.

License type not specified in the explanation.

In plain English

GoProxy is a general-purpose proxy server: a program you run between two computers or networks so that traffic from one can reach the other in a controlled way. It handles the common proxy protocols in a single binary, HTTP and HTTPS, SOCKS5, WebSocket, raw TCP and UDP, and the SS (shadowsocks) format, and it can also act as a reverse proxy to expose a server behind a NAT or firewall to the public internet. What makes it stand out is the breadth of features piled into one tool. You can chain it through another instance so traffic hops through multiple nodes, with the link between them encrypted using TLS (and optionally an extra custom AES256 layer or KCP, a protocol that lowers latency). It does TCP and UDP port forwarding, intranet penetration, SSH relay, transparent proxying when paired with iptables, smart HTTP/SOCKS5 that auto-detects whether a site is blocked and only routes through an upstream when needed, an anti-pollution DNS proxy, and protocol conversion that lets one port serve HTTP, SOCKS5 and SS at once. Upstream selection can be driven by an external API, per-user or per-IP rate limits, connection limits, IP black/whitelists, port-range listening, and load balancing are all built in. GoProxy is written in Go, so the same binary runs on Windows, Linux, macOS, and even a Raspberry Pi. There is a web admin console called ProxyAdmin, an SDK, desktop and Android editions, and a free version alongside a paid commercial one. Typical reasons to reach for it: a personal VPN-like tunnel, exposing a local dev service for a webhook, remote access into an office LAN, or playing LAN-only games over the internet. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
Show me how to use goproxy to expose my local port 8080 to the public internet using intranet penetration mode
Prompt 2
How do I chain two goproxy instances with TLS encryption so traffic hops through an intermediate server?
Prompt 3
Write a goproxy command to set up a SOCKS5 proxy that auto-detects blocked sites and only routes those through an upstream
Prompt 4
How do I configure per-IP rate limits and connection limits in goproxy for multiple users?
Open on GitHub → Explain another repo

← snail007 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.