Linux 中使用 Shadowsocks
字数 814 阅读 12 评论 6
Shadowsocks 简介
经常有翻墙需求的人应该对 Shadowsocks 这个工具不陌生,简单来说,它是一款通过 sock5 协议进行代理的工具,Windows 下使用比较简单,只需要下载好 ss 客户端,配置好服务器地址及 pac 列表,然后在浏览器中使用代理插件(比如 Chrome 中使用 SwitchyOmega),配置好代理规则即可正常翻墙了。 这种使用浏览器配置代理规则的方式有一个局限就是,只能在浏览器中翻墙,如果需要在命令行中,或者在程序中调用需要访问外网的服务,那么就变得不太可行。
本文就是介绍如何在命令行中也可以使用 shadowsocks 进行代理。
一、安装 Shadowsocks
命令行中的 shadowsocks 客户端是一个 python 脚本,可以直接通过下列命令来安装
$ pip install shadowsocks
或者,在 Ubuntu/Arch Linux 也可以使用如下命令安装
$ apt-get install shadowsocks -y
$ pacman -Sy shadowsocks
安装完成之后,会得到一个 /usr/bin/sslocal 的可执行文件,实际上是一个 python 脚本(python 2)。
安装完成后编辑配置文件,填写对应服务器地址
vim ~/.etc/shadowsocks.json
下面是一个服务器配置样例:
1 | { |
最后启动代理
$ nohup sslocal -c /etc/shadowsocks.json &
二、将 Socks5 代理转化为 http 代理
由于 shadowsocks 使用的是 socks5 协议代理,因此我们还需要把其转换成 http 代理以便访问外网的 http 服务。在 Linux 下我们需要借助第三方软件完成,这里我们使用 privoxy 这个工具。
Ubuntu 下使用如下命令安装 privoxy
apt-get install privoxy -y
编辑配置文件
先备份原配置文件
$ mv /etc/privoxy/config /etc/privoxy/config.bak
在新建一个配置文件
$ vim /etc/privoxy/config
privoxy 配置样例如下
1 | 转发地址 |
最后启动 privoxy 并查看状态:
$ systemctl start privoxy
$ systemctl status privoxy
三、创建快捷代理命令
完成上两步配置后,即可将需要代理的请求指向 127.0.0.1:8118 端口即可。
建议,不要设置全局的访问都使用这个代理,可以写一个代理脚本,只为需要代理的请求触发代理。
如下:
$ vim /usr/local/bin/proxy
脚本内容如下
1 | #!/bin/bash |
赋予可执行权限
$ chmod +x /usr/local/bin/proxy
最后,对任何想要走代理的命令,只需要在前面加上 proxy 即可,样例如下
$ proxy gvm install go1.8.3
$ proxy go get -t -u -v ./...
简化流程
熟悉了上述过程之后,可以把流程简化如下:
1、先启动 sslocal
$ nohup ssolcao -c /etc/shadowsocks.json 2&>1 &
2、启动 http proxy 转换器 privoxy
$ systemctl start privoxy
3、设置环境变量http_proxy 和 https_proxy
$ source ~/.etc/proxy1 // 设置
$ source ~/.etc/proxy2 // 还原
如果你对我的文章感兴趣,欢迎留言或者关注我的专栏。
微信公众号:“知辉”
搜索“deliverit”或
扫描二维码