proxychains-ng:https://github.com/rofl0r/proxychains-ng
proxychains:https://github.com/haad/proxychains
shadowsocks:https://github.com/shadowsocks/shadowsocks
安装了 shadowsocks 之后,只能网页出去逛逛,如果需要在 command line 中也能有同样的效果(ping不同,但是可以下载),需要配合 proxychains4 这个神器
ProxyChains 是 Linux 和其他 unix 下的代理工具。 它可以使任何程序通过代理上网, 允许 TCP 和 DNS 通过代理隧道, 支持 HTTP、 SOCKS4 和 SOCKS5 类型的代理服务器, 并且可配置多个代理。 ProxyChains 通过一个用户定义的代理列表强制连接指定的应用程序, 直接断开接收方和发送方的连接。
常见的VPN程序大部分默认代理浏览器的http流量,好多场景不是一个浏览器能解决问题的。linux用户大部分都是重度命令用户,如果要让终端下的命令被代理转发,这时我们就要用上proxychains-ng这款神器了。
proxychains-ng 是 proxychains 的升级版,其中 ng 寓意为 new generation(新一代),目前并不知晓 proxychains-ng 与 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
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
确保你添加的代理能用。如果没有的话,你可以暂时在网上找一些免费的代理(不一定安全,你的流量可能被监听),比如说:hidemyass。
OK,基础的配置到这里。除此之外,这个文件里还用一堆可选的配置供你调整
ProxyChains 的使用方式非常简单,直接在应用程序前加上 proxychains4 即可。例如:
proxychains4 git clone https://github.com/rofl0r/proxychains-ng
如果嫌弃命令太长,有的shell不支持命令补全可以用 alias 命令重命名一下
alias pc='proxychains4'
当然,除此之外你可以在任何你想通过代理的应用上使用:
# 在 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。记住这一点即可。
设置 ProxyChains 的具体操作步骤
设置 ProxyChains 的具体操作步骤如下所示。
- (1) 打开 ProxyChains 配置文件。 命令:root@Kali:~# vi /etc/proxychains.conf
- (2) 将 proxychains.conf 文件中的 dynamic_chain 前面的注释符取消。
- (3) 添加一些代理服务器到列表(proxychains.conf 文件末尾)
- (4) 通过连接的代理解析目标主机。 命令:root@kali:~# proxyresolv www.target.com 默认情况下执行 proxyresolv 命令时可能看到该命令没找到错误信息,因为 proxyresolv 保存在 /usr/lib/proxychains3/ 目录中而不能被执行。 proxyresolv 会被 proxychains 调用, 所以将这两个文件放在一个目录中, 如 /usr/bin。命令:root@kali:~# cp /usr/lib/proxychains3/proxyresolv /usr/bin/ 执行完以上命令后, proxyresolv 就可以执行了。
- (5) 使用 ProxyChains 运行想要走代理的应用程序运行。例如:启动 msfconsole。 执行命令如下所示:root@kali:~# proxychains msfconsole 看到 msf> 提示符表示 msfconsole 启动成功了。 表示 ProxyChains 设置成功。
参考
ProxyChains HowTo :官方的说明文档
proxychains-ng:GitHub 项目主页
How To Use Proxychains To Evade Detection in Kali Linux :另一篇非常不错的教程
Squid 是一个高性能的代理缓存服务器,Squid 支持 FTP、gopher、HTTPS 和 HTTP 协议。和一般的代理缓存软件不同,Squid 用一个单独的、非模块化的、I/O 驱动的进程来处理所有的客户端请求。