SuMio
1617 words
8 minutes
使用Proxychains4 + Clash 配置前置代理

实现原理#

物理机使用「Clash」搭建代理服务器,虚拟机(Kali)通过使用proxychains4将openvpn的流量代理到物理机的代理服务器,物理机的代理服务器就会将该流量导向外网节点,实现openvpn通过外网节点访问HTB靶场。(好吧这么讲确实有一点复杂,不如画个图看看叭)

proxy

准备工作#

首先你需要一台国外的VPS,并且要在这台VPS上自己搭建代理。这很麻烦,让我门用更简单的方法,直接租用别人搭建好的VPS,也就是机场。

WARNING

这是有风险的,因为机场主随时可以跑路,而你可能购买了包年或包月服务。所以这里不做任何机场推荐。

若确实找不到可靠、合适的机场,可在该项目中挑选。请自行判断可靠性,推荐对我没有任何好处,只是为没有判断力的0基础玩家指一条认可度(参考github的star数)相对较高的路。

hwanz
/
SSR-V2ray-Trojan
Waiting for api.github.com...
00K
0K
0K
Waiting...

其次,你还需要安装代理软件Clash,它其实是一个内核,直接使用体验较差,所以其他开发者在此内核的基础上开发出了各种GUI版本,Clash For Windows、ClashX等,这里根据自己的使用习惯挑选即可。

WARNING

由于原作者已删库,各位师傅一定谨慎挑选下载方式

购买后将其在Clash上订阅即可,机场会给出如何操作的教程,这里省略。现在你可以访问真正的互联网啦!87878787

物理机代理配置#

现在你需要开启允许局域网连接选项,他在你的Clash和V2ray的首选项或是设置中,这样跟你在同一个网卡下的虚拟机才可以使用它。

1 2

记住这个混合代理端口,它在接下来的配置中会用到。这样物理机的配置已经完成啦。

虚拟机代理配置#

这里以Kali举例,更新你的apt并安装proxychains4。

sudo apt update
sudo apt install proxychains4

安装完成后编辑proxychains4的配置文件,它通常在你的**/etc下,将物理机与虚拟机在同一网段的ip填写到配置文件的[ProxyList]中,即此处的10.211.55.2**,空格后接刚刚记住的混合端口7890

sudo vim /etc/proxychains4.conf

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks5  10.211.55.2  7890

如何通过Proxychains4连接openvpn#

至此所有配置已完成,让我们测试一下是否配置成功,这里用HTB靶场为例。

sudo proxychains4 openvpn competitive.ovpn

使用proxychains4启动openvpn并加载配置文件xxxx.ovpn。

[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/aarch64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.17
2024-08-30 19:33:53 WARNING: Compression for receiving enabled. Compression has been used in the past to break encryption. Sent packets are not compressed unless "allow-compression yes" is also set.
2024-08-30 19:33:53 Note: --data-ciphers-fallback with cipher 'AES-128-CBC' disables data channel offload.
2024-08-30 19:33:53 OpenVPN 2.6.12 aarch64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] [DCO]
2024-08-30 19:33:53 library versions: OpenSSL 3.2.2 4 Jun 2024, LZO 2.10
2024-08-30 19:33:53 DCO version: N/A
........
└─$ ping 10.10.11.30
PING 10.10.11.30 (10.10.11.30) 56(84) bytes of data.
64 bytes from 10.10.11.30: icmp_seq=1 ttl=63 time=486 ms
64 bytes from 10.10.11.30: icmp_seq=2 ttl=63 time=506 ms
64 bytes from 10.10.11.30: icmp_seq=3 ttl=63 time=446 ms
64 bytes from 10.10.11.30: icmp_seq=4 ttl=63 time=439 ms
^C
--- 10.10.11.30 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
rtt min/avg/max/mdev = 438.659/469.336/505.984/27.891 ms

这是现在的延迟,可以看到稳定在400~500,我们 ctrl c 结束掉proxychains4的进程,然后再ping测试一下。

└─$ ping 10.10.11.30
PING 10.10.11.30 (10.10.11.30) 56(84) bytes of data.
64 bytes from 10.10.11.30: icmp_seq=1 ttl=63 time=319 ms
64 bytes from 10.10.11.30: icmp_seq=2 ttl=63 time=254 ms
64 bytes from 10.10.11.30: icmp_seq=3 ttl=63 time=252 ms
64 bytes from 10.10.11.30: icmp_seq=4 ttl=63 time=384 ms
^C
--- 10.10.11.30 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 251.672/302.076/383.908/54.516 ms

不使用前置代理则稳定在200~350,两次结果不同,证明配置成功。

这时候有师傅就要问了,为什么你使用了代理反而变慢了呢?

影响因素#

原因有很多,每个人的使用效果都会因为以下因素产生影响:

1、机场的国内出口距离你的所在地很远;#

机场的原理是利用在国内的出口服务器将你的流量发送给国外节点,也就是说无论如何你的流量要先到达国内的出口,这就导致了如果你距离该出口很远的话,用了代理反而速度会变慢,传输距离越远,损耗就越大,甚至没有直接连接来得快,像咱就是直接裸连要比挂代理要流畅的多。

举个例子:假设你在北京,想通过代理访问日本节点,而你的机场国内出口在广州,你的流量就会先发给广州的出口服务器,再发送到日本;

使用代理时:

3

不使用代理时:

4

2、经过的路由条数#

如果你所在的城市恰好有直达某某国家的海底光纤什么的,就相当于是坐直达的飞机了,跟你坐高铁去到广州,再飞机去日本,再飞去阿美莉卡相比,肯定是直达的更快啦,它省去了你在每个机场、每个国家中转所消耗的时间。

代入你的流量所需要经过的路由节点,就是类似的原理了,流量每经过任何一个设备,包括但不限于交换机、路由器,都会产生损耗,也就是省去了运营商之间、各个国家之间的中转耗时。

3、各运营商的限制/策略/线路不同#

地区不同,所用网络的运营商不同,对我们使用代理都会产生不同的影响,这是我们很难去控制的因素了,但往往这是最常见的原因。

很多师傅应该也深有体会,用某某运营商就可以流畅访问xxxxxx,而某某运营商就特别卡。

4、机场不好#

想想看你在跟多少人共用一个节点莫,价格低延迟低速度快流量多的机场可不常见哦。

5、服务端的故障/限流/拥堵#

有没有可能,咱们换个HTB的节点就好了莫,毕竟HTB节点故障也不是一次两次了莫。。。遇到打靶特别卡的情况,师傅们不妨尝试更换一下大区?

其他的咱们就不多赘述了,祝你拥有愉快的打靶体验 ; )

使用Proxychains4 + Clash 配置前置代理
https://25pm-sumio.github.io/posts/2024/08/30/01/
Author
簌澪SuMio
Published at
2024-08-30