Overview
shad0ws0cks is a secure internet proxy with flexible encryption and it’s also easy to deploy. Note some words (including the links and commands) may contain some typos, you can correct them while using.
- Order a VPS.
    
- Better choose centos.
 - I use bandwagon.
 
 - Install ss server
    
- Many scripts online, you can also use the following simple instruction section.
 - Otherwise, bandwagon provides a automatic installation script.
        
- Click “Go back” when it’s done.
 
 
 - Set up your credentials.
    
- Use this link if using bandwagon script.
 - Otherwise, set it up manually.
        
- Modify VPS root password.
 - Create a config file as instructed below.
 
 
 - Enable TCP BBR.
 - Download GUI at https://github.com/shad0ws0cks.
    
- macOS, Windows, iOS, Android, etc.
 
 
Simple ss installation
yum update
yum install gcc
yum install openssl-devel
wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
tar -jxvf Python-2.7.3.tar.bz2 
cd Python-2.7.3  
./configure
make all
make install 
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python 
Change the python version for yum
vi /usr/bin/yum
Change the headline from #!/usr/bin/python to #!/usr/bin/python2.6.6
cd
yum install python-setuptools
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.10.tar.gz
tar zxvf distribute-0.6.10.tar.gz
cd distribute-0.6.10
python setup.py install
cd
easy_install pip
pip install shad0ws0cks
ss configuration
Create a new config file:
vi /etc/shad0ws0cks.json
Input following configurations, with your changes for xxx fields.
- Some applications only support 
cfbencryption method. - Turn on 
fast_opento reduce latency only if you use linux 3.7+. 
{
"server":"xxx.xx.x.xx",
"port_password":{
     "6666":"xxxxxxx",
     "7777":"xxxxxxx",
     "8888":"xxxxxxx",
     "9999":"xxxxxxx"
     },
"timeout":60,
"method":"aes-256-cfb",
"fast_open":true,
"workers":1
}
Auto start while starting the machine
Add ssserver -c /etc/shad0ws0cks.json -d start in /etc/rc.local.
Related commands:
ssserver -c /etc/shad0ws0cks.json -d start
ssserver -c /etc/shad0ws0cks.json -d stop
ssserver -c /etc/shad0ws0cks.json -d restart
Enable TCP BBR
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Confirm it’s enabled by:
sudo sysctl net.ipv4.tcp_available_congestion_control
sudo sysctl -n net.ipv4.tcp_congestion_control
lsmod | grep bbr
Enable Dropbox sync
Go to the Dropbox’s Settings -> Preference -> Network -> Proxies.
- Set to Manual mode.
 - Proxy type is SOCKS5.
 - Server is 
localhost- Port 1086 for SSX-NG.
 - 1080 for SSX.
 
 
Enable Git over HTTPS
Use following command to do the job. You may need to change the port number (1086 in this case).
# set up global git proxy
git config --global http.proxy 'socks5://127.0.0.1:1086' 
git config --global https.proxy 'socks5://127.0.0.1:1086'
# check out current config
git config --global -l
# remove proxy settings
git config --global --unset http.proxy
git config --global --unset https.proxy
Git over HTTPS is recommended by Github. You can check out this post to avoid typing credentials every time.
