Kali Linux 全局代理设置对安全研究人员十分实用:无论是让 apt 更新走代理,还是让 nmap、curl 等工具的流量统一转发到 SOCKS5 隧道,都离不开环境变量与 proxychains4 的配合。本文基于 Kali 滚动版本,依次讲解 Shell 环境变量、软件源代理与 proxychains4 三个层级的配置方法和使用技巧。
设置 Shell 环境变量代理
Kali 近年将默认 Shell 切换为 zsh,但以下配置对 bash 同样适用。临时启用代理:
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export all_proxy="socks5://127.0.0.1:9050"
要长期生效,把上述三行追加到 ~/.zshrc 或 ~/.bashrc 的末尾,再执行 source ~/.zshrc 重新加载。curl、wget、git 以及多数 Python 工具都会读取这些变量;git 也可以单独通过 git config --global http.proxy http://127.0.0.1:7890 指定代理。
APT 软件源代理配置
Kali 的软件仓库体积大、更新频繁,让 apt 走代理能明显提升下载成功率。创建一个独立的配置文件:
sudo nano /etc/apt/apt.conf.d/99kali-proxy
写入以下内容:
Acquire::http::Proxy "http://127.0.0.1:7890";
Acquire::https::Proxy "http://127.0.0.1:7890";
保存后执行更新并确认配置已被读取:
sudo apt update
apt-config dump | grep -i proxy
独立文件的好处是删除即可恢复直连,不会影响 apt 的其他设置。
proxychains4 强制任意工具走代理
许多安全工具使用原始套接字发送数据包,根本不读取环境变量。proxychains4 通过动态链接库劫持网络调用,把目标程序的 TCP 连接强制转发到代理链,正好补上这个缺口。安装与配置:
sudo apt install proxychains4
sudo nano /etc/proxychains4.conf
确认或修改文件中的关键配置行:
strict_chain
proxy_dns
[ProxyList]
socks5 127.0.0.1 9050
http 127.0.0.1 7890
使用时在命令前面加上 proxychains4 前缀即可:
proxychains4 curl https://www.example.com
proxychains4 nmap -sT -Pn --open 10.10.10.5
proxychains4 git clone https://github.com/sqlmapproject/sqlmap.git
nmap 必须改用 -sT 全连接扫描,因为 SOCKS 代理无法转发 SYN 半开扫描所需的原始数据包。
验证技巧与使用注意
- 出口验证:对比
curl -s ifconfig.me与proxychains4 curl -s ifconfig.me的结果,即可确认代理链是否生效。 - 静默模式:proxychains4 的日志会干扰脚本输出,加 -q 参数可以关闭。
- 防止 DNS 泄露:保留 proxy_dns 选项,让域名解析同样经由代理,避免本地 DNS 直接暴露查询目标。
- 合规提醒:扫描与测试仅限获得授权的环境,代理仅用于合法的安全研究与网络诊断。
环境变量负责常规流量,proxychains4 兜底那些不认代理的工具,两者结合即可让 Kali 上的绝大多数工具统一走同一个代理出口。
Article ID: 44
(本文仅供技术交流,请遵守法律法规)