环境变量代理

安装好shadowsocks后浏览器可以通过SwitchyOmega来自动设置代理,但终端没法通过浏览器走代理。
通常可以设置shell的环境变量
export http_proxy=http://127.0.0.1:1080
export https_proxy=http://127.0.0.1:1080
但并不是所有应用都会用这个变量,所以这种办法对个别应用无效。
也可以配置指定应用使用代理,比如
git config http.proxy socks5://127.0.0.1:1080
git config https.proxy socks5://127.0.0.1:1080
取消代理命令为
#git config —global —unset http.proxy
#git config —global —unset https.proxy

curl —proxy socks5://127.0.0.1:1080 www.google.com
但单独设置比较麻烦,以下两个工具可以设置当前shell的全局代理。

proxychains

安装

sudo pacman -S proxychains

配置使用shadowsocks

sudo vim /etc/proxychains.conf

socks4 127.0.0.1 9050
改成
sock5 127.0.0.1 108

使用

ProxyChains 的使用方式非常简单,直接在应用程序前加上 proxychains4 即可。例如:
proxychains4 git clone https://github.com/rofl0r/proxychains-ng
如果你还是觉得每次使用都要输入proxychains4或其别名,比较麻烦。你还可以用proxychains-ng代理一个shell。
$ proxychains4 -q /bin/bash
这样在当前 shell 中运行的所有程序的网络请求都会走代理了。可以把上面的命令加入到用户目录的.bashrc中,用户登录后自动代理一个shell,这就类似一个全局代理了。

注意

因为proxychains只会代理TCP连接,而ping使用的是ICMP,所以ping某些网站还是ping不通的。

polipo

安装

sudo pacman -S polipo

配置

cd /etc/polipo/
sudo cp config.sample config
sudo gedit config

proxyAddress = “0.0.0.0”
socksParentProxy = “127.0.0.1:1080”
socksProxyType = socks5
chunkHighMark = 50331648
objectHighMark = 16384

启动服务

  1. sudo systemctl status polipo
  2. sudo systemctl restart polipo

终端设置

  1. export https_proxy=https://127.0.0.1:8123
  2. export http_proxy=http://127.0.0.1:8123