ArticleslgStudy

computer science

Shadowsocks

Shadowsocks is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Shadowsocks rather than just read about it. In short: Shadowsocks is a free and open-source encryption protocol project, widely used in China to circumvent Internet censorship. It was created in 2012 by a Chinese programmer named "clowwindy", and multiple implementations of the protocol have been made available since.

Shadowsocks — main illustration
Shadowsocks — illustration

Key takeaways

  • Shadowsocks belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Shadowsocks to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Shadowsocks from memory before moving on to harder problems.

Reference excerpt

Shadowsocks is a free and open-source encryption protocol project, widely used in China to circumvent Internet censorship. It was created in 2012 by a Chinese programmer named "clowwindy", and multiple implementations of the protocol have been made available since. Shadowsocks provides an encrypted equivalent of a SOCKS proxy. A Shadowsocks client converts the Shadowsocks connection to SOCKS5 for local use. Unlike an SSH port forwarding, Shadowsocks can also proxy User Datagram Protocol (UDP) traffic.

Takedown On 22 August 2015, "clowwindy" announced in a GitHub thread that they had been contacted by the police and could no longer maintain the project. The code of the project was subsequently branched with a removal notice. Three days later, on 25 August, another proxy application, GoAgent, also had its GitHub repository removed. The removal of the projects received media attention, with some speculating about a possible connection between those removals and a distributed-denial-of-service attack targeting GitHub which occurred several days later. Danny O'Brien, from Electronic Frontier Foundation, published a statement on the matter. Despite the takedown, collaborators of the project have continued the development of the project.

Server implementations The original Python implementation can still be installed using the Pip Python package manager, but the contents of its GitHub repository have been removed. Other server implementations include one in Go, Rust, and C using the libev event loop library; C++ with a Qt GUI; and Perl. The C, Go and Perl implementations are not updated regularly and may have been abandoned.

Client implementations All of the server implementations listed above also support operating in client mode. There are also client-only implementations available for Windows (shadowsocks-win), macOS (ShadowsocksX-NG), Android (shadowsocks-android), and iOS (Wingy). Many clients, including shadowsocks-win and shadowsocks-android, support redirecting all system traffic over Shadowsocks, not just applications that have been explicitly configured to do so, allowing Shadowsocks to be used similarly to a VPN. If an application doesn't support proxy servers, a proxifier can be used to redirect the application to the Shadowsocks client. Some proxifiers, such as Proxycap, support Shadowsocks directly, thus avoiding the need for a Shadowsocks client, but some require a client.

Net::Shadowsocks Net::Shadowsocks is name of the Perl implementation of Shadowsocks protocol client and server available on CPAN.

ShadowsocksR ShadowsocksR is a fork of the original Shadowsocks project, claimed to be superior in terms of security and stability. Upon release, it was found to violate the License by not having the source code of the C# client available. It was also criticized for its solution to the alleged security issues in the source project. Shadowsocks is currently under development, while development of ShadowsocksR has stopped.

Similar projects Shadowsocks is similar to The Tor Project's Pluggable Transport (PT) idea. PT makes it hard for Internet Service Providers to detect Tor traffic. They also both use a socks proxy interface. Whereas Shadowsocks is simpler, Obfs4 used in PT is more obfuscated. Unlike Obfs4, Shadowsocks is not resistant to Active Probing. The most similar PT to Shadowsocks is Obfs3. The V2Ray framework adds obfuscation on top of traffic encryption.

See also

Great Firewall Internet censorship in China Outline VPN

References

External links Official website

Illustrations

Shadowsocks illustration

Worked examples

Example 1 — a first encounter with Shadowsocks

Start with the simplest possible case. Write down what Shadowsocks claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Shadowsocks before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Shadowsocks ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Shadowsocks

In research
Shadowsocks appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Shadowsocks in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Shadowsocks is common in secondary-school and first-year university syllabi. It links to neighbouring topics 2012 software, Computer network security, Free proxy servers, so understanding it makes those chapters shorter.
In everyday life
Look for Shadowsocks outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Shadowsocks in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Shadowsocks means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Shadowsocks out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Shadowsocks in simple terms?

Shadowsocks is a free and open-source encryption protocol project, widely used in China to circumvent Internet censorship. It was created in 2012 by a Chinese programmer named "clowwindy", and multiple implementations of the protocol have been made available since.

Why does Shadowsocks matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Shadowsocks?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Shadowsocks.

Tags

  • 2012 software
  • Computer network security
  • Free proxy servers
  • Free software programmed in C
  • Free software programmed in C++
  • Free software programmed in Go
  • Free software programmed in Perl
  • Free software programmed in Python
  • Free software programmed in Rust
  • Internet censorship in China
  • Software using the MIT license

Keep exploring