How I got through Docker's censorship
I have found using ShadowSocks [0] to work best for me here in China.  VPNs create one connection for all traffic (which is easier for China&#x27;s GFW to detect&#x2F;block&#x2F;slow down).  ShadowSocks creates a new TCP&#x2F;UDP connection for each connection that it proxies.<p>My setup:<p>Cheap VPS server in Hong Kong [1] (5USD&#x2F;month, 512 RAM, 2Mbit port) running the ShadowSocks server (libev version).  I have upgrade the port to 20Mbits for an extra 10USD&#x2F;month.  The port could be upgrade to 50Mbits for 25USD&#x2F;month.<p>For DNS I use ChinaDNS [2] to automatically filter out bad DNS results from China&#x27;s censorship.  It works by sending DNS queries to all multiple DNS server at the same time (give it a few local DNS servers and foreign DNS servers).  The foreign DNS connections are tunneled through ShadowSocks.<p>ShadowSocks can work as a Socks5 proxy, tunnel or transparent proxy [3].  Socks5 is the easiest to use and can even do DNS lookups on the server.  I use the transparent proxy [3] option, since it allows selecting which traffic should go over the proxy.<p>The socks5 option will try to proxy localhost &amp; lan conections to the proxy server.<p>An optimized list of subnets can be generated using bestroutetb [4].  I load the subnets for China (can private LAN) into an ipset hash and use iptables rules to exclude those subnets from going over the proxy.<p>ChinaDNS [2] and bestroutetb [4] could be used for VPNs too.  This could be used when trying to access different services (US, UK, etc..) that don&#x27;t allow access from outside their country.  Use one VPN for US and another for UK, then use bestroutetb [4] to build subnet lists for each country route traffic over the correct VPN.<p>0. <a href="https:&#x2F;&#x2F;shadowsocks.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;shadowsocks.org&#x2F;</a><p>1. <a href="http:&#x2F;&#x2F;www.36cloud.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.36cloud.com&#x2F;</a><p>2. <a href="https:&#x2F;&#x2F;github.com&#x2F;shadowsocks&#x2F;ChinaDNS" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;shadowsocks&#x2F;ChinaDNS</a><p>3. <a href="https:&#x2F;&#x2F;github.com&#x2F;shadowsocks&#x2F;shadowsocks-libev&#x2F;blob&#x2F;master&#x2F;README.md#advanced-usage" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;shadowsocks&#x2F;shadowsocks-libev&#x2F;blob&#x2F;master...</a><p>4. <a href="https:&#x2F;&#x2F;github.com&#x2F;ashi009&#x2F;bestroutetb" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ashi009&#x2F;bestroutetb</a><p>edit: fix formatting and port prices.