explaingit

p4gefau1t/trojan-go

8,377GoAudience · developerComplexity · 3/5Setup · moderate

TLDR

A proxy tool that disguises your internet traffic as normal HTTPS to bypass censorship, routing it through a server outside the blocked network so you can reach any website or service freely.

Mindmap

mindmap
  root((repo))
    What it does
      Bypasses censorship
      Disguises as HTTPS
      Encrypts traffic
    How it works
      Server outside network
      Client on local machine
      Multiplexed connections
    Extra features
      CDN routing via WebSocket
      Built-in traffic router
      Double encryption layer
    Setup
      Single binary no deps
      Windows macOS Linux
      Graphical client apps
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

Access blocked websites and services from a country with heavy internet censorship by routing traffic through a server abroad.

USE CASE 2

Speed up browsing through a proxy by using multiplexing so many page requests share one encrypted connection.

USE CASE 3

Route only foreign traffic through the proxy while domestic sites connect directly, for faster overall speeds.

USE CASE 4

Run the proxy through a CDN using WebSocket connections when direct server connections are blocked.

Tech stack

GoWebSocketShadowsocks AEAD

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires a server located outside the censored network plus a JSON or YAML config file, graphical clients are available for those who prefer not to use the command line.

License not specified in the explanation.

In plain English

Trojan-Go is a proxy tool written in Go that helps people in countries with heavy internet censorship access blocked websites and services. It does this by disguising network traffic as ordinary HTTPS web traffic, making it very difficult for automated censorship systems to identify and block. The project is a reimplementation of an older proxy protocol called Trojan, with a number of added features and improvements. The tool runs as either a server or a client. You install the server on a computer located outside the censored network, and the client runs on your local machine. Traffic from your device passes through an encrypted tunnel to the server, which then connects to whatever site or service you wanted to reach. The client can accept connections in several standard proxy formats, so most apps can be routed through it without extra configuration. Trojan-Go adds several capabilities on top of the original Trojan protocol. A multiplexing feature lets a single encrypted connection carry many simultaneous requests, which reduces delays when loading pages with lots of images or files. A built-in routing module lets you decide which traffic goes through the proxy and which connects directly, so domestic sites load at full speed. It also supports routing traffic through a CDN service using WebSocket connections, which can help in situations where direct connections to the server are blocked. For users who want extra protection, there is an optional second layer of encryption based on the Shadowsocks AEAD standard, which prevents even CDN servers from inspecting the content. The transport layer is also swappable through a plugin system that follows an established plugin standard, so you can substitute different obfuscation tools if needed. The compiled binary has no external dependencies and runs on Windows, macOS, Linux, and even low-power devices like routers or single-board computers. Graphical client apps are available for Windows, macOS, Linux, and Android for those who prefer not to use the command line. Configuration is done via a JSON or YAML file, and pre-built binaries are available from the releases page.

Copy-paste prompts

Prompt 1
I have a VPS outside my country and want to set up Trojan-Go as a server on it. Give me the exact config.json I need to get it running, and what I need to run on my local machine as the client.
Prompt 2
How do I configure Trojan-Go's built-in router so that Chinese domestic sites connect directly while all other traffic goes through the proxy? Show me the routing config section.
Prompt 3
I want to route Trojan-Go traffic through a CDN using WebSocket mode. Walk me through the server and client config changes needed to enable this.
Prompt 4
Trojan-Go supports the SIP003 plugin standard. How do I use an obfuscation plugin with it? Give me a working example config.
Open on GitHub → Explain another repo

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

Verify against the repo before relying on details.