explaingit

klzgrad/naiveproxy

8,868C++Audience · ops devopsComplexity · 4/5Setup · hard

TLDR

A proxy tool that disguises your internet traffic to look exactly like Chrome browser activity, making it very hard for censorship or filtering systems to detect or block.

Mindmap

mindmap
  root((NaiveProxy))
    How it works
      Chrome traffic disguise
      Chromium network code
      Random packet padding
      Web server facade
    Components
      Server Caddy
      Local client proxy
    Platforms
      Windows
      Linux
      macOS
      Android
    Use Cases
      Bypass censorship
      Private internet access
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

Set up a personal proxy server to access blocked websites from countries with heavy network filtering.

USE CASE 2

Route application traffic through a censorship-resistant proxy that mimics real Chrome browser behavior.

USE CASE 3

Deploy a server-side proxy hidden behind a normal-looking website using Caddy so external probes see nothing unusual.

USE CASE 4

Use NaiveProxy on Android through a third-party app without needing to set up a separate VPN.

Tech stack

C++ChromiumCaddy

Getting it running

Difficulty · hard Time to first run · 1h+

Requires a VPS outside the restricted network and manual Caddy web server configuration on the server side.

License not mentioned in the explanation.

In plain English

NaiveProxy is a proxy tool built to help people access the internet in environments where traffic is monitored and selectively blocked, commonly called censorship or filtering. It works by disguising internet traffic so that it looks indistinguishable from ordinary web browsing using a Chrome browser. This makes it significantly harder for blocking systems to identify and stop. The way it achieves this disguise is by reusing Chromium's actual network code, the same code that powers the Chrome browser. Because the traffic it produces comes from the same code a real Chrome browser uses, it passes many of the fingerprinting and inspection techniques that censorship systems rely on. Additional protections include hiding the proxy server behind an ordinary web server (so that anyone probing the server from outside just sees a normal website), adding random padding to packet lengths to obscure usage patterns, and routing traffic through standard web protocols rather than protocols that look unusual. The setup has two parts. A server component runs on a machine outside the restricted network, typically using a web server tool called Caddy to handle incoming connections. A client component runs on the user's local machine and creates a local proxy endpoint that other applications can route traffic through. NaiveProxy supports Windows, Linux, macOS, Android (through several third-party apps), and OpenWrt (a router operating system). It also integrates with the v2rayN graphical client for users who prefer not to use the command line. The README contains a detailed technical section explaining the padding protocol it uses to blend traffic lengths with typical browser behavior. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Walk me through setting up a NaiveProxy server using Caddy on a Linux VPS, and then configuring a client on my Windows machine to route all browser traffic through it.
Prompt 2
How do I install and configure NaiveProxy on Android? What server details do I need, and which third-party app should I use?
Prompt 3
Explain how NaiveProxy's traffic padding protocol works and why it makes traffic harder to detect than a standard SOCKS5 proxy.
Prompt 4
What ports and firewall rules do I need to open on my VPS to run NaiveProxy's server component behind Caddy?
Prompt 5
How do I configure NaiveProxy to work with the v2rayN graphical client on Windows instead of using the command line?
Open on GitHub → Explain another repo

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

Verify against the repo before relying on details.