ProxyChains是本人目前为止用到的最方便的代理工具。
inux下代理一般是通过http_proxy和https_proxy这两个环境变量,但是很多软件并不使用这两个变量,导致流量无法走代理。在不使用的前提下,linux并没有转发所有流量的真全局代理。但是可以用proxychains为程序指定走代理,支持http/https/socks4/socks5
proxychains-ng是增强版,这里不做介绍
打开终端输入:
sudo apt install proxychains
使用vim,nano,后者gedit打开配置文件:
gedit /etc/proxychains.conf
将打开的文件内最下面有一行socks4 127.0.0.1 9050,把这一行注释掉,添加一行socks5 127.0.0.1 1080和https 127.0.0.1 8080。
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks5 127.0.0.1 1080
https 127.0.0.1 8080
此时如果开始使用,会发生错误,如下:
proxychains ping google.com
ProxyChains-3.1 (http://proxychains.sf.net)
ERROR: ld.so: object 'libproxychains.so.3' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
原因是proxychains无法加载libproxychains.so.3库。
1.首先找到libproxychains.so.3库的位置。
打开终端执行:
sudo find /usr/ -name libproxychains.so.3
返回的结果是:
/usr/lib/x86_64-linux-gnu/libproxychains.so.3
2.修改/usr/bin/proxychains配置文件
终端打开输入:
gedit /usr/bin/proxychains
将打开的文件内export LD_PRELOAD=libproxychains.so.3 替换成你找到的位置。
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libproxychains.so.3
此时可以使用了,使用方式为:
proxychains curl www.google.com
由于proxychains不能补全,所以有两种方式解决,第一种自行实现补全脚本,在/etc/bash_completion.d文件夹内。这里不做实现讲解。
第二种方式,调用系统的自动补全来实现简易的命令补全功能。
打开终端输入:
gedit ~/.bashrc
在末尾增加补全命令:
complete -c proxychains
此时就可以使用自动补全了,下过如下:
vincent@vincent-Inspiron-7559 Dir:~
·····$proxychains na
namei native2ascii nautilus-connect-server
nameif nautilus nautilus-sendto
nano nautilus-autorun-software nawk