Build a Proxy Server to Access Chinese IP Including Netease Music
Sometimes we need to access Chinese content, like Youku Video, Netease Music (Cloud Music) and QQ music. It is very annoying to get “Can Only Be Streamed in Mainland China” or similar messages. Being tired of that, fortunately I have got a VPS from Aliyun and I build a proxy server using Shadowsocks on it and everything works smoothly now.
VPS
You need to have a VPS with Chinese IP address, there are tons of choices, like Aliyun(Alibaba Cloud) and Tencent Cloud etc.
Install Server
Then ssh
to your cloud server or any other tools to get into your server and install Shadowsocks, you can follow the instruction here. I use the Python version.
Config Shadowsocks
Config Shadowsocks, I usually write my configuration file in /etc/shadowsocks/ss.json
. Please NOTE that the server
attribute in most of the case should be your VPS’ public IP address. However, AFAIK, for Aliyun and AWS, it will not work if you do so (Error message socket.error: [Errno 99] Cannot assign requested address
will pop up when you try to run it). The reason is the public IP address is not the “actual” IP when it is used to bind IP and port to the VPS machine, it may refer to other VPS in the local network. Therefore, 0.0.0.0
to listen to all the IP addresses should be used.
|
|
Optional
Install m2crypto
to make encryption a little bit faster.
|
|
If you want to use chacha20
as encryption method, libsodium
must be installed. Otherwise, you could use aes-256-cfb
.
|
|
Run
Run the server as daemon!
|
|
Alternatively, you can run the server at the front for debugging purpose, see all the traffic going through when you connected from the client later.
|
|
Install Client
Finally, install clients on devices and start using it! You could install clients from here. For macOS, I recommend Shadowsocks X with Overseas mode.
I prefer to use Shadowsocks client with PAC rather than using proxy for the overall system.
|
|
Netease Music
You need to select Using IE proxy.
More Information
It’s only the basic setup for Shadowsocks. For advanced topics, check