linux命令行代理神器-proxychains
ProxyChains是Linux和其他Unix下的代理工具。 它可以使任何程序通过代理上网, 允许TCP和DNS通过代理隧道, 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器, 并且可配置多个代理。 ProxyChains通过一个用户定义的代理列表强制连接指定的应用程序, 直接断开接收方和发送方的连接。
ProxyChains 是一个强制应用的 TCP 连接通过代理的工具,支持 Tor、HTTP、与 Socks 代理。与 sshuttle 不同的是,ProxyChains 只会将当前应用的 TCP 连接转发至代理,而非全局代理。
你可以从这里下载到源代码,编译后安装即可
git clone https://github.com/rofl0r/proxychains-ng
cd proxychains-ng
./configure
sudo make && make install
不过我在自己的Ubuntu16.06上可直接通过:
apt-get install proxychains
5s内安装完毕。
安装完毕之后需要设置代理配置:
ProxyChains 的配置文件位于 /etc/proxychains.conf ,打开后你需要在末尾添加你使用的代理。例如:
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
#socks4 127.0.0.1 9050
# example
socks5 127.0.0.1 8888
确保你添加的代理能用。如果没有的话,你可以暂时在网上找一些免费的代理(不一定安全,你的流量可能被监听),比如说:
OK,基础的配置到这里就搞定了。除此之外,这个文件里还用一堆可选的配置供你调整,自己去看啦。
ProxyChains 的使用方式非常简单,直接在应用程序前加上 proxychains4 即可。例如:
proxychains4 git clone https://github.com/rofl0r/proxychains-ng
有没有明显感觉到 clone 的速度变快了很多。当然,除此之外你可以在任何你想通过代理的应用上使用:
# 在 Ubuntu 上更新软件包
sudo proxychains4 apt-get update
# 安装 npm 依赖(国内慢得一B啊)
proxychains4 npm install
# 使用 docker(再也不用切换源了)
docker run helloworld
# 下面请读者自行发挥。。。。
也有例外啦。这样使用并没有任何效果:
proxychains4 ping google.com
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/local/lib/libproxychains4.dylib
PING google.com (172.217.27.142): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
因为 proxychains 只会代理 TCP 连接,而 ping 使用的是 ICMP。记住这一点即可。
真机测试:
比如测试自己在公网上的IP,我都是使用
curl cip.cc
response如下图:
这是直接使用公网IP得到的IP地址,.98..127。
再使用proxychains测试(已编辑/etc/proxychains.conf配置文件,且代理可用)
效果很明显,可以看到IP已经更改。