记录小白第一次配置kali的代理

起因是我要配置去使用kali下载一些东西,用kali虚拟机配置物理机的clash verg代理,然后就翻阅网上找文章学习如何配置也踩了不少坑记录一下

1.物理机配置(Clash Verge)

  • 在设置里面确保Clash Verge已开启局域网代理功能这个很重要不开启无法链接
  • image-20250902105038066
  • 给你们看一下开启前和开启后的对比
  • image-20250902105135367
  • 相比起之前的 **“Failed to connect”**现在已经能连上 192.168.1.102:7897 端口了(网络层是通的 )

2.物理机端口设置(Clash Verge)

  • 在不同的代理软件里面HTTP代理端口port和SOCKS5代理端口(socks-port)是不一样的

  • 有的版本直接只显示 mixed-port(混合端口,支持 HTTP + SOCKS5,一般默认 7890)在这里我是7897

  • 在代理软件里面的设置里面可以查看

  • port: 7890        # HTTP
    socks-port: 7891  # SOCKS5
    mixed-port: 7890  # 有时只有这一项
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    ## 3.虚拟机的设置

    * 在虚拟里面建议将网卡设置为桥接模式如果使用NAT模式可能要进行端口转发,使用桥接然后虚拟机和物理机处于同一网段里面这样的话

    * **Windows 物理机**已经在运行 Clash Verge,它就是“代理网关”。

    * **Kali 虚拟机**只要能把流量交给 Windows 这台“网关”,就能上外网了

    * ```
    export http_proxy=http://192.168.1.102:7890
    export https_proxy=http://192.168.1.102:7890
    export all_proxy=socks5://192.168.1.102:7891
    # 前提:你的虚拟机网络模式要能访问物理机 IP(桥接模式一定能,NAT 模式需要配置端口转发)
  • image-20250902110153387

  • image-20250902110203819

  • 提醒:物理机上面开了代理我虚拟机里面的export https_proxy=http://127.0.0.1:7890

  • 如果你只在 物理机 (Windows) 上开了代理,Kali 里面访问 127.0.0.1:7890 是无效的(因为那是 Kali 自己的环回地址,根本没有 Clash 在监听)

  • 这里连接上的是物理机的ip地址

最后使用命令测试是否成功如果能返回 200 OK,就说明通了

1
curl -I https://google.com   

image-20250902110727158

扩展

1.通过环境变量设置(临时/终端代理)

适用于终端命令(curlwgetapt),但不影响 GUI 应用。

1
2
3
4
5
6
7
8
9
# 设置 HTTP/HTTPS 代理
export http_proxy="http://代理IP:端口"
export https_proxy="http://代理IP:端口"

# 设置 SOCKS5 代理(如 Shadowsocks)
export socks_proxy="socks5://代理IP:端口"

# 测试代理是否生效
curl -I https://google.com

取消代理:

1
2
3
unset http_proxy
unset https_proxy
unset all_proxy

2.proxychains(强制所有流量走代理)

proxychains 是一个 强制代理工具,它通过 LD_PRELOAD 注入库 的方式,把所有应用的 connect() 系统调用劫持到代理上。

  • 适用场景
    1. 程序 不支持代理(如 nmapsshsqlmap、某些 CTF 工具)。
    2. 你要用 socks5 代理隧道 来跑端口扫描、爆破、渗透测试流量。
    3. 渗透测试中需要把某些“裸连”的工具流量强制丢进代理(例如 VPN + socks5 结合)。
  • 优点:几乎可以代理任何程序的网络流量。
  • 缺点
    • 可能导致一些程序运行不稳定(特别是多线程应用)。
    • 不支持 UDP 流量(比如 DNS、VoIP 就没法用)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 1.在 Kali 或 Ubuntu 上一般自带了,如果没有就装一下:

sudo apt update
sudo apt install proxychains4 -y

# 2.主要配置文件在:
/etc/proxychains.conf
/etc/proxychains4.conf

# 3. 编辑配置文件:
sudo nano /etc/proxychains4.conf

找到最后的 代理服务器配置部分,默认可能有:
socks4 127.0.0.1 9050

改成你的 Clash Verge 端口(7897,一般是 socks5):
socks5 127.0.0.1 7897


保存退出(Ctrl+O → 回车 → Ctrl+X)。

# 4. 运行命令时,在前面加 proxychains 就行:

测试代理是否成功
proxychains curl http://ipinfo.io/ip
能看到你代理出口的 IP(不是你本地 IP)。

SSH 走代理
proxychains ssh user@target.com

Nmap 扫描走代理
proxychains nmap -sT -Pn target.com

Sqlmap 渗透测试走代理
proxychains sqlmap -u "http://target.com/vuln.php?id=1" --dbs

问题

有的小伙伴可以会问要是自己物理机上面有clash verg我还有必要在虚拟机上面再安装 Clash 内核吗?

只在以下情况才需要在虚拟机里单独跑 Clash 内核

  • 你希望虚拟机可以独立使用代理,不依赖物理机;
  • 你要在虚拟机里跑透明代理(tun 模式)来劫持所有流量;
  • 你经常会把虚拟机拿到别的电脑上跑,不方便一直连物理机的代理;
  • 你需要在虚拟机内切换不同的代理配置文件(物理机 Clash Verge 的规则不满足需求)。

建议

  • 如果你只是偶尔在虚拟机里需要上外网(比如更新 Kali、访问 Google、跑 TryHackMe),没必要再装 Clash 内核,直接用物理机的就行。
  • 如果你虚拟机要长期独立运行、或者物理机关了代理虚拟机也要能上网,那么 安装一个虚拟机自己的 Clash 内核比较合适