如何让软件走代理
[toc]
Docker
Dockerfile 更改apt源
在Dockerfile中添加如下两句代码:
1 | RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list |
更新apt源的Dockerfile如下:
1 | FROM ubuntu:latest |
proxychains linux命令行代理
ProxyChains是Linux和其他Unix下的代理工具。 它可以使任何程序通过代理上网, 允许TCP和DNS通过代理隧道, 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器, 并且可配置多个代理。 ProxyChains通过一个用户定义的代理列表强制连接指定的应用程序, 直接断开接收方和发送方的连接。
ProxyChains 是一个强制应用的 TCP 连接通过代理的工具,支持 Tor、HTTP、与 Socks 代理。与 sshuttle 不同的是,ProxyChains 只会将当前应用的 TCP 连接转发至代理,而非全局代理。
你可以从这里下载到源代码,编译后安装即可
1 | git clone https://github.com/rofl0r/proxychains-ng |
不过我在自己的Ubuntu16.06上可直接通过:
1 | apt-get install proxychains |
5s内安装完毕。
安装完毕之后需要设置代理配置:
ProxyChains 的配置文件位于 /etc/proxychains.conf ,打开后你需要在末尾添加你使用的代理。例如:
1 | [ProxyList] |
OK,基础的配置到这里就搞定了。除此之外,这个文件里还用一堆可选的配置供你调整,自己去看啦。
用法
ProxyChains 的使用方式非常简单,直接在应用程序前加上 proxychains4 即可。例如:
1 | proxychains4 git clone https://github.com/rofl0r/proxychains-ng |
有没有明显感觉到 clone 的速度变快了很多。当然,除此之外你可以在任何你想通过代理的应用上使用:
1 | # 在 Ubuntu 上更新软件包 |
也有例外啦。这样使用并没有任何效果:
1 | proxychains4 ping google.com |
因为 proxychains 只会代理 TCP 连接,而 ping 使用的是 ICMP。记住这一点即可。
真机测试:
比如测试自己在公网上的IP,我都是使用
1 | curl cip.cc |
response如下图:
这是直接使用公网IP得到的IP地址,*.98.*.127。
再使用proxychains测试(已编辑/etc/proxychains.conf配置文件,且代理可用)
效果很明显,可以看到IP已经更改。