如何检查代理是否有效(附带现成脚本)
代理只有在活着、隐藏您的真实 IP 并且速度足够快时才有用。本指南涵盖了测试这三者的五种方法——包括您现在可以运行的现成 bash 和 Python 代理检查器。
有效代理的实际含义
三个单独的检查,而不是一个。
人们说代理是“有效的”,仿佛这只是一个简单的是或否的事实。其实不是——一个代理可以通过一个测试而失败两个其他测试,每个失败都会破坏不同的任务。一个合适的有效性检查需要回答三个问题。
- 它活着吗? 通过它的请求是否真的完成,还是挂起并超时?特别是免费的代理经常会死——通常在几个小时内。
- 它是匿名的吗? 目标是否看到代理的IP,还是代理通过头信息泄露了你的真实IP?一个透明的代理转发你的真实IP对于隐私来说比无用更糟。
- 它快吗? 一个活着的代理如果增加几秒的延迟,对于一次性检查来说是可以的,但对于大规模抓取来说就无望了。
如果你只需要一个代理的快速答案,将其粘贴到s4m代理检查器中。如果你有一个完整的列表需要验证——例如从免费的公共代理列表中过滤出的条目——请使用下面的脚本批量测试它们。
测试代理的五种方法
从单击到脚本批处理。
使用在线代理检查器
最快的选项:将HOST:PORT粘贴到/tools/proxy-checker/工具中,读取存活状态、响应时间和匿名性。适合单个代理或快速检查,无需安装任何东西。
使用 curl 测试一个代理
一个命令可以揭示它是否存活以及世界看到的出口 IP:通过代理 curl 到 IP 回显端点,并将结果与您的真实 IP 进行比较。如果它们匹配,则代理是透明的并且泄露了您的信息。
检查匿名级别
请求一个反映您头部信息的端点。高匿名(精英)代理不发送任何显示您来源的Via或X-Forwarded-For;匿名代理隐藏您的IP,但声明它是一个代理;透明代理转发您的真实IP。这与免费列表上的精英/匿名/透明过滤器相对应。
测量延迟
仅有存活性不足以进行批量工作。计时请求(下面的脚本打印毫秒)并丢弃任何对你的任务来说太慢的内容。请参阅关于诚实测量代理延迟的配套指南。
用脚本自动化整个列表
对于数十个或数千个代理,循环遍历文件并记录存活/死亡、出口 IP 和延迟。下面的 bash 和 Python 检查器正是这样做的——复制、保存并运行。
Bash 代理检查器
保存为proxy-check.sh,在proxies.txt中每行放一个HOST:PORT(假设为SOCKS5),然后:bash proxy-check.sh proxies.txt
#!/usr/bin/env bash
# proxy-check.sh — test proxies for liveness, latency and anonymity.
# Usage: bash proxy-check.sh proxies.txt (one HOST:PORT per line, SOCKS5)
set -u
TARGET="https://api.ipify.org"
TIMEOUT=8
myip=$(curl -s --max-time "$TIMEOUT" "$TARGET")
echo "your real IP: $myip"
echo "-------------------------------------------"
while IFS= read -r proxy; do
[ -z "$proxy" ] && continue
start=$(date +%s.%N)
out=$(curl -s --max-time "$TIMEOUT" --socks5-hostname "$proxy" "$TARGET")
code=$?
end=$(date +%s.%N)
if [ $code -ne 0 ] || [ -z "$out" ]; then
printf '%-22s DEAD\n' "$proxy"
continue
fi
ms=$(awk "BEGIN{printf \"%d\", ($end-$start)*1000}")
if [ "$out" = "$myip" ]; then
printf '%-22s ALIVE %5sms TRANSPARENT (leaks your IP!)\n' "$proxy" "$ms"
else
printf '%-22s ALIVE %5sms OK exit=%s\n' "$proxy" "$ms" "$out"
fi
done < "$1"Python 代理检查器
保存为 proxy_check.py 并运行:pip install "requests[socks]" && python3 proxy_check.py proxies.txt
#!/usr/bin/env python3
"""proxy_check.py — validate proxies for liveness, latency and anonymity.
Usage: python3 proxy_check.py proxies.txt (one HOST:PORT per line)
Requires: pip install "requests[socks]"
"""
import sys, time, requests
TARGET = "https://api.ipify.org"
TIMEOUT = 8
def real_ip():
return requests.get(TARGET, timeout=TIMEOUT).text.strip()
def check(proxy, my_ip):
proxies = {"http": f"socks5h://{proxy}", "https": f"socks5h://{proxy}"}
t0 = time.perf_counter()
try:
exit_ip = requests.get(TARGET, proxies=proxies, timeout=TIMEOUT).text.strip()
except Exception:
return f"{proxy:22} DEAD"
ms = int((time.perf_counter() - t0) * 1000)
if exit_ip == my_ip:
return f"{proxy:22} ALIVE {ms:5}ms TRANSPARENT (leaks your IP!)"
return f"{proxy:22} ALIVE {ms:5}ms OK exit={exit_ip}"
def main():
my_ip = real_ip()
print("your real IP:", my_ip)
print("-" * 43)
with open(sys.argv[1]) as fh:
for line in fh:
p = line.strip()
if p:
print(check(p, my_ip))
if __name__ == "__main__":
main()读取结果
DEAD、TRANSPARENT和OK告诉您什么。
两个脚本打印相同的三个结果。DEAD意味着请求从未完成——代理服务器宕机、被阻止或超时后太慢;请丢弃它。TRANSPARENT意味着代理服务器有响应,但出口IP等于您的真实IP,因此它正在转发您的真实地址,根本没有匿名性。您需要保留的是OK,它具有不同的出口IP和可接受的毫秒数。
定期运行检查器,而不是一次性。公共代理更新速度快,因此今天早上干净的列表到晚上就变得半死——这就是s4m免费代理列表不断重新验证而不是一次性发布的原因。当可靠性真正重要时,跳过猜测:经过身份验证的s4m数据中心代理是按设计活着的,并且使用您自己的USER:PASS连接,因此无需看管。好奇我们如何公平地计时代理?请参见我们如何测量延迟以及为什么ping会撒谎。
问题,已解答
我怎么知道代理是否泄露了我的真实 IP?
通过代理向IP回显服务发送请求,并将返回的地址与您的真实IP进行比较。如果它们相同,则代理是透明的,并转发您的真实地址——上面的脚本将其标记为透明。一个合适的代理返回不同的出口IP。
精英代理、匿名代理和透明代理之间有什么区别?
精英(高匿名性)代理隐藏您的IP,并且不透露正在使用代理。匿名代理隐藏您的IP,但通过头部信号表明这是一个代理。透明代理完全转发您的真实IP。免费列表允许您按这些级别进行过滤。
为什么来自免费列表的代理死得这么快?
大多数是意外留下开放的主机;当所有者重启、打补丁或注意到流量时,它们会消失——通常在几小时内。这就是为什么您必须持续重新检查列表,而不是信任一次性快照,以及为什么付费数据中心代理存在于必须不失败的工作中。
我可以将脚本用于 HTTP 代理吗?
是的。示例假设使用SOCKS5(socks5h),它也会远程解析DNS。对于HTTP代理,将方案更改为http://(curl -x http://HOST:PORT,或在Python代理字典中使用http://),并指向代理的HTTP端口,例如3128。
人们通过搜索找到此页面
- 如何检查代理是否有效(附带现成脚本)
- 如何检查代理是否有效(附带现成脚本)是安全的吗
- 什么是 如何检查代理是否有效(附带现成脚本)
- 如何检查代理是否有效(附带现成脚本)设置
- 免费代理与付费代理:真实风险
- 远程工作VPN:专用IP、政策和访问
- wireguard 比较
- 代理设置
- 什么是 openvpn
- 免费代理列表
- VPN 断开开关
- 下载 代理设置
- socks5代理 价格
- http 代理是安全的吗
- openvpn
- 乌克兰的 VPN:银行业务、Diia 和来自国外的乌克兰 IP
- IP地址逐步进行
- 如何在Python请求中使用代理
此页面回答的真实搜索短语 — 链接的短语打开详细覆盖它们的页面。