命令行如何优雅地科学上网?

推荐使用工具 polipo,将 socks 代理到 http,实现命令行科学上网。

1. 安装

1
$ sudo apt-get install polipo

2. 修改配置文件

vim ~/.polipo

# polipo 使用的代理端口和地址
proxyAddress = "127.0.0.1"
proxyPort = 8123

allowedClients = 127.0.0.1
allowedPorts = 1-65535

# ss 代理配置
socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5

3. 启动

输入命令 polipo

没有输出就是好事,说明运行成功了

使用前需要添加环境变量

1
2
$ export http_proxy="http://127.0.0.1:8123"
$ export https_proxy="http://127.0.0.1:8123"

4. 测试

curl www.google.com

看见输出 google DOM 内容就说明成功了。

优化使用

每次使用输入环境变量极为不方便,最好是能够简化操作,还能实现在需要时才代理。

我的方案是在 $HOME/.bashrc 里面配置别名,使用 zsh 的也可以在 $HOME/.zshrc 里面配置。

配置如下:

1
alias proxy="export http_proxy='http://127.0.0.1:8123' export https_proxy='http://127.0.0.1:8123'"

这样以后每次需要代理时,先敲一个 proxy 就可以了,是不是贼方便。

更多 linux 技巧