Linux下使用Proxychains让任意程序走Socks/Http代理

$ apt install proxychains

配置文件在/etc/proxychains.conf,根据其中注释在末尾加上自己的socks/http代理服务器

使用方法:在需要走代理的命令前加上proxychains

示例:

$ curl ip.cn
当前 IP:60.171.124.71 来自:安徽省马鞍山市 电信

$ proxychains curl ip.cn
ProxyChains-3.1 (http://proxychains.sf.net)
|DNS-request| ip.cn 
|S-chain|-<>-192.168.139.1:8005-<><>-4.2.2.2:53-<><>-OK
|DNS-response| ip.cn is 198.41.214.88
|S-chain|-<>-192.168.139.1:8005-<><>-198.41.214.88:80-<><>-OK
当前 IP:192.227.246.246 来自:美国 ColoCrossing

update:
需要手动修正一下链接库位置:
vim /usr/bin/proxychains
将export LD_PRELOAD=libproxychains.so.3改为
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libproxychains.so.3
32位为
export LD_PRELOAD=/usr/lib/i686-linux-gnu/libproxychains.so.3


update2 19.5.7:
当时用的应该是Mint 19(ubuntu18.04)。现在我早已切换到Debian10系统,Debian下的Proxychains不用修改链接库位置(讲道理ubuntu也不应该才对,可能当时哪里有问题),并且Debian10引入了Proxychains4版本,原版Proxychains已经年久失修,Proxychains4是其他人的后续fork继续维护。

$ apt install proxychains4

配置文件也变成了/etc/proxychains4.conf


update3 19.5.17:
今天偶然弄清了为什么旧版本proxychains经常实效,原因是旧版proxychains挂proxy_dns这个选项(默认开启也理应开启)时走一个4.2.2.2的dns服务器,而这个dns服务器已经半dead了很多时候连不上。其实这个选项是可以配置的,不过藏的很深,在/usr/lib/proxychains3/proxyresolv,加入

DNS_SERVER=8.8.8.8

即可。

而Proxychains4(Proxychains-ng)开启proxy_dns这个选项则自动使用连接的代理服务器所用的dns,自然也不存在这个问题了。

此处评论已关闭