Shadowsocks Proxy
Server-side setup
| 1 | apt-get install python-pip | 
Client-side setup
- Install Shadowsocks Client, e.g. run brew cask install shadowsocksxin macOS.
- SwitchSharp
Only config
SOCKS Hostto127.0.0.1:1080and selectSOCKS v5
SOCKS 5 Through SSH Tunnel
| 1 | # `-N`: do not execute commands | 
Reference
SOCKS 5 in Terminal
Using Proxychains-ng to socksify your command
- Install proxychains-ngby runningbrew install proxychains-ng.
- Config /usr/local/Cellar/proxychains-ng/4.7/etc/proxychains.conf, modify the following parameters.
| 1 | [ProxyList] | 
- Add proxychains4to the front of every command, e.g.proxychains4 curl ipecho.net/plain
Also works for Application like
Google ChromewhileSafaridoes not work, tryproxychains4 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome.
But this might slow down Chrome.
You can also use dsocks for mac(which does not work for me), tsocks for linux.
Using Unix Proxy Environment Variable
Add this script to ~/.bash_profile.
| 1 | export http_proxy=socks5://127.0.0.1:1080 | 
Config curl to use SOCKS5(Also works for homebrew)
Add the following line to ~/.curlrc. Since homebrew use curl to download the package, this will also enable homebrew to use SOCKS5.
| 1 | socks5 = "socks5://127.0.0.1:1080" | 
There are no environment variables for SOCKS5 proxy servers in unix, so in order to use SOCKS5 in other utilities, check the man pages for existing tools to see if they have a configuration option for a SOCKS5 proxy and whether they have a configuration file that the configuration can be added to.
Config git to use SOCKS5
- For https://andhttp://(e.g.http://github.com,https://github.com), run the following script.
| 1 | git config --global http.proxy 'socks5://127.0.0.1:1080' | 
- For git://(e.g.git://github.com), rungit config --global core.gitproxy 'socks5://127.0.0.1:1080'
- For ssh(e.g. git@github.com,ssh://git@github.com), addProxyCommand nc -x localhost:1080 %h %pto~/.ssh/configfile.
git config --globalis stored in~/.gitconfigwhile local config settings is in./.git/config.
To remove a configuration, e.g. rungit config --global --unset core.gitproxy.
Reference
- how to set socks5 proxy in the terminal by askubuntu
- OS X Terminal Ignoring SOCKS Proxy Setup
- Git proxy through SOCKS 5 by cms-sw
- git proxy on segmentfault
Tools
Test wheather proxy works.
| 1 | curl --socks5-hostname 127.0.0.1:1080 http://wtfismyip.com/json |