Linux 系统代理设置
2019-08-28 09:01 linux
目前 linux 终端里经常要下载一些东西, 比如:
- git clone 一些内部的项目代码
- go dep 下载一些第三方模块
- depot_tools 下载谷歌官方的项目
- cargo 更新包依赖
这些情况, 有部分网站是无法直连的, 还有一些即使边得上, 速度也很差. 针对这些应用, 我们可以设置一下终端里的代理环境, 使用 VPS 上布署的 中转服务器加速请求.
设置代理服务器
shadowsocks 目前是不错的工具, 这里不再详细讲.
在远程 VPS 上安装方法也很简单:
$ sudo apt install shadowsocks-libev
该包会提供 ss-server
服务端命令, 配置文件位于
/etc/shadowsocks-libev/config.json
.
把密钥, 端口号等信息填入, 然后重启一下服务即可:
$ sudo systemctl restart shadowsocks-libev
在本地的电脑上安装其客户端:
$ sudo apt install shadowsocks-libev
$ sudo systemctl stop shadowsocks-libev
$ sudo systemctl disable shadosocks-libev
写一个 sslocal.json
的客户端配置, 对应于刚刚的服务器端配置,
然后启动即可:
$ ss-local -c sslocal.json
也可以放在后台运行:
$ setsid ss-local -c sslocal.json 1>/dev/null 2>/dev/null </dev/null &
配置 proxychains
proxychains
的做法是通过 LD_PRELOAD 的方法注入到被代理的
程序, 后者在创建 socket 连接时, 使用的是 proxychains 提供的接口, 这几个接口都
已使用了代理.
这种方法好处是对应用透明, 不需要修改应用. 但有一个限制就是应用要链接到 libc
.
而像 golang
这样的语言默认是静态链接的, 而且不依赖 libc
, 因为它标准库里直接
绑定了内核的系统调用接口. 所以默认情况下, 使用 golang 编写的应用无法使用这类代理.
安装 proxychains:
$ sudo apt install proxychains4
proxychains 的配置文件位于 /etc/proxychains4.conf
, 只需要在里面加入:
socks5 127.0.0.1 1080
即可使用. 其中 1080
端口是刚刚配置 ss-local 时在本地暴露的 sock5 代理端口.
使用方法也很简单:
$ proxychains git clone https://github.com/rust-lang/rust
速度快多了.
配置 privoxy
刚才说到了, golang 编写的应用, 默认无法使用 socks5
代理, 但它支持 http 代理.
而 privoxy
就可以将 socks5 代理转为 http 代理.
安装:
$ sudo apt install privoxy
配置文件位于 /etc/privoxy/config
, 修改配置, 加入 sock5:
# 使用的 socks5 代理地址是 127.0.0.1:1080
forward-socks5 / 127.0.0.1:1080 .
# 暴露出来的 http 代理地址是 localhost:1081
listen-address localhost:1081
之后重启服务:
$ sudo systemctl restart privoxy
下面测试一下:
$ export HTTP_RPOXY=http://127.0.0.1:1081 HTTPS_PROXY=http://127.0.0.1:1081
$ go get golang.org/x/net
如果一切正常的话, golang 编写的应用就可以走 socks5 代理了.