浅谈网络代理 proxy
字数 1440 2025-08-22 12:22:30

网络代理(Proxy)技术详解与实践指南

一、代理技术概述

IP代理是一种网络技术,通过这种技术用户可以隐藏其真实IP地址,使用另一个IP地址代表自己进行互联网活动。代理服务器作为中间节点转发网络请求,主要应用于以下场景:

  • 批量提交漏洞
  • 批量注册账号
  • 批量扫描任务
  • 隐私保护
  • 访问限制内容

二、代理类型详解

1. HTTP/HTTPS代理

  • HTTP代理:专为Web端设计,处理HTTP协议流量
  • HTTPS代理:在HTTP代理基础上添加了SSL/TLS加密层
  • SOCKS代理:支持最广泛的协议类型,可处理各种网络流量

2. 代理认证方式

  • 匿名代理:无需认证
  • 私密代理/独享代理:需要用户名密码认证
  • 格式示例:http://username:password@proxy_ip:port/

三、代码中使用代理

Python requests库示例

import requests

proxies = {
    'http': 'socks5://ip:port',
    'https': 'socks5://ip:port'
}

r = requests.get('https://www.taobao.com/help/getip.php', proxies=proxies, timeout=3)
print(r.text)

需要认证的代理使用

proxies = {
    "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {'user': username, 'pwd': password, 'proxy': proxy_ip},
    "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {'user': username, 'pwd': password, 'proxy': proxy_ip}
}

四、代理测试方法

1. 基本测试

  • 访问https://www.taobao.com/help/getip.php查看当前IP
  • 使用快代理接口测试:https://dev.kdlapi.com/testproxy

2. 测试要点

  • IP是否成功切换
  • 能否正常访问目标网址
  • 响应时间是否符合要求

五、抓包代理工具

常见抓包代理工具特征:

  • BurpSuite:响应中包含"Welcome to Burp Suite"
  • Fiddler:标题为"Fiddler Echo Service"

六、获取免费代理

1. 公开代理来源

  • 通过FOFA等网络空间搜索引擎寻找
  • 搜索语法示例:protocol="socks5" && "Authentication"

2. 使用FOFA搜索示例

from fofa_hack import fofa

result_generator = fofa.api('protocol="socks5" && "Authentication"', endcount=1000)
for data in result_generator:
    for proxy in data:
        proxies = {'http': "socks5://{}".format(proxy), "https": "socks5://{}".format(proxy)}
        try:
            r = requests.get('https://www.taobao.com/help/getip.php', proxies=proxies, timeout=3)
            if 'ipCallback' in r.text:
                print(fr'[*] success: ' + str(proxies))
        except Exception as e:
            pass

七、搭建代理池

推荐使用现成解决方案如proxy_pool项目,避免重复造轮子。

1. proxy_pool部署步骤

  1. 安装Redis和Python
  2. 克隆项目:git clone git@github.com:jhao104/proxy_pool.git
  3. 修改配置文件settings.py
    HOST = "0.0.0.0"  # IP
    PORT = 5000        # 监听端口
    DB_CONN = 'redis://:pwd@127.0.0.1:8888/0'  # Redis配置
    
  4. 启动服务:
    # 启动调度程序
    python proxyPool.py schedule
    # 启动webApi服务
    python proxyPool.py server
    

2. proxy_pool API接口

  • 获取代理:http://127.0.0.1:5010/get/
  • 查看所有接口:直接访问http://127.0.0.1:5010

3. proxy_pool核心机制

代理采集

settings.py中配置采集源:

PROXY_FETCHER = [
    "freeProxy01",  # 代理网站1
    "freeProxy02",  # 代理网站2
    # ...共11个默认采集源
]

代理验证

采用三级验证机制:

  1. 格式验证:检查IP地址和端口格式是否正确
    IP_REGEX = re.compile(r"(d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}")
    
  2. HTTP验证:测试代理能否访问HTTP网站
    r = head(conf.httpUrl, headers=HEADER, proxies=proxies, timeout=conf.verifyTimeout)
    
  3. HTTPS验证:测试代理能否访问HTTPS网站
    r = head(conf.httpsUrl, headers=HEADER, proxies=proxies, timeout=conf.verifyTimeout, verify=False)
    

八、扩展自定义代理源

  1. ProxyFetcher类中添加新的静态方法
  2. settings.pyPROXY_FETCHER列表中添加新方法名
  3. 系统会自动调用新方法采集代理

九、注意事项

  1. 免费代理可用率通常较低,需要大量筛选
  2. 使用代理时应设置合理的超时时间
  3. HTTPS代理需要处理证书验证问题
  4. 商业代理服务通常更稳定但需要付费
  5. 搭建自己的代理池需要维护资源

十、参考资源

  1. proxy_pool项目:https://github.com/jhao104/proxy_pool
  2. Fofa-hack工具:https://github.com/Cl0udG0d/Fofa-hack
  3. 快代理API文档:https://dev.kdlapi.com/testproxy
网络代理(Proxy)技术详解与实践指南 一、代理技术概述 IP代理是一种网络技术,通过这种技术用户可以隐藏其真实IP地址,使用另一个IP地址代表自己进行互联网活动。代理服务器作为中间节点转发网络请求,主要应用于以下场景: 批量提交漏洞 批量注册账号 批量扫描任务 隐私保护 访问限制内容 二、代理类型详解 1. HTTP/HTTPS代理 HTTP代理 :专为Web端设计,处理HTTP协议流量 HTTPS代理 :在HTTP代理基础上添加了SSL/TLS加密层 SOCKS代理 :支持最广泛的协议类型,可处理各种网络流量 2. 代理认证方式 匿名代理:无需认证 私密代理/独享代理:需要用户名密码认证 格式示例: http://username:password@proxy_ip:port/ 三、代码中使用代理 Python requests库示例 需要认证的代理使用 四、代理测试方法 1. 基本测试 访问 https://www.taobao.com/help/getip.php 查看当前IP 使用快代理接口测试: https://dev.kdlapi.com/testproxy 2. 测试要点 IP是否成功切换 能否正常访问目标网址 响应时间是否符合要求 五、抓包代理工具 常见抓包代理工具特征: BurpSuite :响应中包含"Welcome to Burp Suite" Fiddler :标题为"Fiddler Echo Service" 六、获取免费代理 1. 公开代理来源 通过FOFA等网络空间搜索引擎寻找 搜索语法示例: protocol="socks5" && "Authentication" 2. 使用FOFA搜索示例 七、搭建代理池 推荐使用现成解决方案如 proxy_pool 项目,避免重复造轮子。 1. proxy_ pool部署步骤 安装Redis和Python 克隆项目: git clone git@github.com:jhao104/proxy_pool.git 修改配置文件 settings.py : 启动服务: 2. proxy_ pool API接口 获取代理: http://127.0.0.1:5010/get/ 查看所有接口:直接访问 http://127.0.0.1:5010 3. proxy_ pool核心机制 代理采集 在 settings.py 中配置采集源: 代理验证 采用三级验证机制: 格式验证 :检查IP地址和端口格式是否正确 HTTP验证 :测试代理能否访问HTTP网站 HTTPS验证 :测试代理能否访问HTTPS网站 八、扩展自定义代理源 在 ProxyFetcher 类中添加新的静态方法 在 settings.py 的 PROXY_FETCHER 列表中添加新方法名 系统会自动调用新方法采集代理 九、注意事项 免费代理可用率通常较低,需要大量筛选 使用代理时应设置合理的超时时间 HTTPS代理需要处理证书验证问题 商业代理服务通常更稳定但需要付费 搭建自己的代理池需要维护资源 十、参考资源 proxy_ pool项目:https://github.com/jhao104/proxy_ pool Fofa-hack工具:https://github.com/Cl0udG0d/Fofa-hack 快代理API文档:https://dev.kdlapi.com/testproxy