This article may be expanded with text translated from the corresponding article in Chinese. (February 2017) Click [show] for important translation instructions. View a machine-translated version of the Chinese article. Machine translation like DeepL or Google Translate is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text into the English Wikipedia. Consider adding a topic to this template: there are already 775 articles in the main category, and specifying|topic= will aid in categorization. Do not translate text that appears unreliable or low-quality. If possible, verify the text with references provided in the foreign-language article. You must provide copyright attribution in the edit summary accompanying your translation by providing an interlanguage link to the source of your translation. A model attribution edit summary is Content in this edit is translated from the existing Chinese Wikipedia article at [[:zh:Shadowsocks]]; see its history for attribution. You should also add the template ((Translated|zh|Shadowsocks)) to the talk page. For more guidance, see Wikipedia:Translation.
Shadowsocks
Original author(s)Clowwindy
Initial release20 April 2012; 10 years ago (2012-04-20)[1][2]
Stable release
rust1.14.3[3] Edit this on Wikidata / 5 April 2022; 6 months ago (5 April 2022)
windows4.4.1.0[4] Edit this on Wikidata / 8 February 2022; 8 months ago (8 February 2022)
android5.2.6[5] Edit this on Wikidata / 17 September 2021; 12 months ago (17 September 2021)
X-NG1.9.4[6] Edit this on Wikidata / 13 November 2019; 2 years ago (13 November 2019)
libev3.3.5[7] Edit this on Wikidata / 15 September 2020; 2 years ago (15 September 2020)
go0.1.5[8] Edit this on Wikidata / 2 May 2021; 17 months ago (2 May 2021)
python2.9.1[9] Edit this on Wikidata / 2 January 2017; 5 years ago (2 January 2017)
Repository
Written inPython; Rust; C#; Kotlin; Swift; Objective-C; C; Go; C++ Edit this on Wikidata
Operating systemUnix-like operating system
Microsoft Windows
Android
iOS Edit this on Wikidata
Typecommunication protocol
free software
Internet censorship circumvention Edit this on Wikidata
Websiteshadowsocks.org Edit this on Wikidata

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.[10][11] Shadowsocks is not a proxy on its own, but (typically) is the client software to help connect to a third-party SOCKS5 proxy, which is similar to a Secure Shell (SSH) tunnel. Once connected, internet traffic can then be directed through the proxy.[12] Unlike an SSH tunnel, 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.[13] The code of the project was subsequently branched with a removal notice.[14][15][16][17] Three days later, on 25 August, another proxy application, GoAgent, also had its GitHub repository removed.[15][16] The removal of the projects got media's attention, with news outlets speculating about the possible connection between the takedowns and a distributed-denial-of-service attack targeting GitHub that happened several days later.[18] Danny O'Brien, from Electronic Frontier Foundation, published a statement on the matter.[19]

Despite the takedown, collaborators of the project have continued the development of the project.

Server implementations

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

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).[25] 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.[26]

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.[27] 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.[28]

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.[29] Unlike Obfs4, Shadowsocks is not resistant to Active Probing.[30] The most similar PT to Shadowsocks is Obfs3.

See also

References

  1. ^ "发一个自用了一年多的翻墙工具 shadowsocks". Archived from the original on 22 April 2012. Retrieved 15 December 2016.
  2. ^ "Shadowsocks 的前世后生". GFW BLOG. Retrieved 15 December 2016.
  3. ^ "Release v1.14.3".
  4. ^ "Release 4.4.1.0".
  5. ^ "Release 5.2.6".
  6. ^ "Release 1.9.4". 13 November 2019. Retrieved 3 December 2020.
  7. ^ "Release 3.3.5".
  8. ^ "Bug fix".
  9. ^ "Release 2.9.1". 2 January 2017. Retrieved 27 July 2020.
  10. ^ clowwindy (20 April 2012). "initial commit". Retrieved 10 June 2016 – via GitHub.
  11. ^ "Ports and Clients". Retrieved 10 June 2016 – via GitHub.
  12. ^ "Shadowsocks – Protocol". shadowsocks.org. Archived from the original on 4 December 2015. Retrieved 11 January 2018.
  13. ^ clowwindy (22 August 2015). "Adopting iOS 9 network extension points". Archived from the original on 22 August 2015. Retrieved 10 June 2016 – via GitHub. Two days ago the police came to me and wanted me to stop working on this. Today they asked me to delete all the code from GitHub. I have no choice but to obey. I hope one day I'll live in a country where I have freedom to write any code I like without fearing.
  14. ^ clowwindy (22 August 2015). "shadowsocks/shadowsocks@938bba3". Retrieved 10 June 2016 – via GitHub.
  15. ^ a b Rudolph, Josh (25 August 2015). "Circumvention Tool Deleted After Police Visit Developer". China Digital Times. Retrieved 10 June 2016.
  16. ^ a b Percy (26 August 2016). "中国开发者被警察要求删除软件" [Chinese coder ordered to delete software by police] (in Chinese). GreatFire. Retrieved 10 June 2016.
  17. ^ Kan, Michael (30 August 2015). "China intensifies Internet censorship ahead of military parade". PC World. International Data Group. Retrieved 10 June 2016.
  18. ^ Cimpanu, Catalin (29 August 2015). "Recent GitHub DDOS Linked to Chinese Government and Two GitHub Projects". Softpedia. Retrieved 10 June 2016.
  19. ^ O'Brien, Danny (28 August 2015). "Speech that Enables Speech: China Takes Aim at Its Coders". Electronic Frontier Foundation. Retrieved 10 June 2016.
  20. ^ "Shadowsocks". GitHub.
  21. ^ a b "Shadowsocks Servers". Shadowsocks.
  22. ^ zhou0 (18 December 2017), shadowsocks-perl: An asynchronous, non-blocking shadowsocks client and server written in Perl, retrieved 11 January 2018
  23. ^ shadowsocks-go: go port of shadowsocks, shadowsocks, 10 January 2018, retrieved 11 January 2018
  24. ^ shadowsocks-rust: A Rust port of shadowsocks, retrieved 12 October 2019
  25. ^ "Shadowsocks - Clients". shadowsocks.org. Retrieved 11 January 2018.
  26. ^ "Net::Shadowsocks - the asynchronous, non-blocking shadowsocks client and server". Retrieved 6 April 2017 – via CPAN.
  27. ^ clowwindy (18 August 2015). "AppData & temp & 当前目录" (in Chinese). Retrieved 10 June 2016 – via GitHub.
  28. ^ "Long-term Shadowsocks Plan: ShadowsocksR versus Shadowsocks2 · Issue #501 · StreisandEffect/Streisand".
  29. ^ https://censorbib.nymity.ch/pdf/Deng2017a.pdf[bare URL PDF]
  30. ^ "How China Detects and Blocks Shadowsocks · Issue #22 · net4people/BBS".