explaingit

shadowsocks/shadowsocks-android

Analysis updated 2026-06-20

36,636KotlinAudience · generalComplexity · 3/5Setup · moderate

TLDR

Shadowsocks for Android tunnels your phone's internet traffic through an encrypted proxy to bypass internet censorship and access blocked websites, using a Shadowsocks server you or someone you trust controls.

Mindmap

mindmap
  root((Shadowsocks Android))
    What it does
      Proxy client
      Censorship bypass
      Traffic encryption
    How it works
      VPN interface
      tun2socks library
      Shadowsocks protocol
    Tech stack
      Kotlin app layer
      Rust proxy core
      libsodium encryption
    Requirements
      Android 6.0 or higher
      Shadowsocks server
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

What do people build with it?

USE CASE 1

Access websites and services blocked in your country by routing Android traffic through a Shadowsocks proxy server.

USE CASE 2

Add a layer of privacy to mobile internet traffic on untrusted public Wi-Fi networks.

USE CASE 3

Use on an Android TV device to access geo-restricted content through a proxy.

What is it built with?

KotlinRustC

How does it compare?

shadowsocks/shadowsocks-androidgkd-kit/gkdalibaba/p3c
Stars36,63638,28630,838
LanguageKotlinKotlinKotlin
Setup difficultymoderateeasyeasy
Complexity3/52/52/5
Audiencegeneralgeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a separately hosted Shadowsocks server, you must supply the server address, port, and encryption key.

In plain English

Shadowsocks for Android is a client application that connects your Android device to a Shadowsocks proxy server, allowing your internet traffic to pass through an encrypted tunnel. Shadowsocks itself is a network proxy protocol originally created to circumvent internet censorship, particularly the Great Firewall used in China, by disguising proxy traffic as ordinary HTTPS traffic, making it harder for deep packet inspection systems to detect and block. This Android app is the mobile client side of that system. The way it works is: you or someone you trust runs a Shadowsocks server outside the restricted network. You configure the Android app with the server's address, port, and an encryption key. The app then routes your device's internet requests through that server using the Shadowsocks protocol, which obfuscates the connection to look like normal encrypted web traffic. To route all traffic through the proxy, the app uses a VPN interface on Android (requiring the standard Android VPN permission) combined with the tun2socks library, which creates a virtual network interface that intercepts your traffic and forwards it through the proxy. A separate variant of the app is available for Android TV. You would use this app when you need to access websites or services that are blocked in your location, or when you need an additional layer of privacy for your mobile internet traffic. It is particularly popular in regions with heavy internet filtering. The tech stack is Kotlin for the Android application layer, with native Rust code (via the shadowsocks-rust library) handling the actual proxy protocol, and C libraries (libevent, libsodium, OpenSSL) for networking and encryption. It requires Android API level 23 or higher (Android 6.0 Marshmallow).

Copy-paste prompts

Prompt 1
I have a Shadowsocks server running on a VPS. How do I add its address, port, and password to the Android app and start routing traffic?
Prompt 2
How do I set up Shadowsocks Android to only proxy traffic from specific apps, leaving everything else on the direct connection?
Prompt 3
What does the bypass LAN option in Shadowsocks Android do, and when should I enable it?

Frequently asked questions

What is shadowsocks-android?

Shadowsocks for Android tunnels your phone's internet traffic through an encrypted proxy to bypass internet censorship and access blocked websites, using a Shadowsocks server you or someone you trust controls.

What language is shadowsocks-android written in?

Mainly Kotlin. The stack also includes Kotlin, Rust, C.

How hard is shadowsocks-android to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is shadowsocks-android for?

Mainly general.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub shadowsocks on gitmyhub

Verify against the repo before relying on details.