Shadowsocks Proxy
Server-side setup
1 | apt-get install python-pip |
Client-side setup
- Install Shadowsocks Client, e.g. run
brew cask install shadowsocksx
in macOS. - SwitchSharp
Only config
SOCKS Host
to127.0.0.1:1080
and 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-ng
by runningbrew install proxychains-ng
. - Config
/usr/local/Cellar/proxychains-ng/4.7/etc/proxychains.conf
, modify the following parameters.
1 | [ProxyList] |
- Add
proxychains4
to the front of every command, e.g.proxychains4 curl ipecho.net/plain
Also works for Application like
Google Chrome
whileSafari
does 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 %p
to~/.ssh/config
file.
git config --global
is stored in~/.gitconfig
while 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 |