linux命令行代理神器-proxychains
git: https://github.com/haad/proxychains
参考:https://zhuanlan.zhihu.com/p/166375631
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
确保你添加的代理能用。如果没有的话,你可以暂时在网上找一些免费的代理(不一定安全,你的流量可能被监听),比如说:
proxy.mimvp.com/freeopen?proxy=in_socks
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已经更改。
================================================================
关于proxychains与chatgpt对话
linux proxychains与proxychains4
proxychains
和proxychains4
都是Linux中的代理工具,它们可以通过代理服务器路由TCP和UDP流量。然而,它们在实现上存在一些区别。
proxychains
是早期版本的代理工具,它使用一个配置文件来指定代理服务器的地址、端口和协议,还可以指定要通过代理服务器连接的应用程序。该工具通过将其连接到代理服务器的所有网络连接都转发到代理服务器,从而实现网络匿名。
proxychains4
是proxychains
的更新版本,提供了一些改进和更新。最明显的一个区别是配置文件的格式不同。而且proxychains4
在实现上更加稳定和安全,它使用了更加现代的技术和更好的代码库。此外,proxychains4
还支持SOCKS4、SOCKS5和HTTP代理协议,而proxychains
仅支持SOCKS4和SOCKS5。
综上所述,proxychains4
是一个更加稳定和灵活的代理工具,应该是更好的选择。
那么 proxychains4-daemon区别呢
proxychains4
是一个命令行工具,它可以将特定应用程序的流量通过代理服务器路由。但是,对于一些不支持配置代理的应用程序,或者需要在全局范围内启用代理的情况,可以使用proxychains4-daemon
。
proxychains4-daemon
是一个后台进程,它可以在全局范围内启用代理服务器。与proxychains4
不同,proxychains4-daemon
不需要特定的应用程序来配置代理,它会拦截所有网络流量并路由到代理服务器。
此外,proxychains4-daemon
还提供了一些额外的功能,如通过调用systemctl
或service
来管理代理进程,以及提供HTTP、SOCKS4和SOCKS5代理协议支持。
因此,proxychains4-daemon
适用于需要在全局范围内启用代理服务器的情况,而proxychains4
适用于需要配置特定应用程序的代理的情况。
==========================================================
共有三种模式,dynamic_chain、strict_chain、random_chain
dynamic_chain:动态链,当我们添加多条代理时他会全部逐个按顺序连接使用,当某一个或几个失效会自动跳过连接到下一个可用的代理
strict_chain:严格限制链,和上面的模式唯一不同的是必须保证每一个代理都可用,如有一个无法连接整个代理过程就会失败
random_chain:随机链,每次会随机使用一条代理