Skip to content

golang powerful proxy finder and checker support http, https, socks4, socks5 ,功能强大的匿名代理发现及有效性检查的代码

License

Notifications You must be signed in to change notification settings

saycc1982/proxy-finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

上网代理查找工具 1.1v / Proxy-Finder 1.1v

一个高效的代理扫描和测试工具,支持检测 HTTP、HTTPS、SOCKS4 和 SOCKS5 类型的代理,判断其有效性和匿名性,适用于代理发现与批量验证场景。

功能特点

功能分类 具体说明
多类型支持 兼容 HTTP、HTTPS、SOCKS4、SOCKS5 四种主流代理类型
双工作模式 发现模式(扫描 IP 范围/文件)、测试模式(验证已有代理列表)
匿名性检测 自动判断代理是否暴露本机真实 IP,区分匿名/非匿名代理
灵活配置 可自定义 IP 范围、扫描端口、超时时间、并发数等参数
批量处理 支持大型网段批次扫描,避免内存占用过高
结果筛选 通过内容验证关键字筛选符合业务需求的有效代理
日志与保存 支持详细调试日志、多种保存模式(全部/仅匿名代理)
异常处理 完善的信号捕获(Ctrl+C)、重试机制、SSL 忽略选项

使用教学

1. 基本语法

# 发现模式(扫描新代理)
proxy-finder -m s [选项]

# 测试模式(验证已有代理)
proxy-finder -testfile [代理列表文件路径] [选项]

2. 核心选项说明

选项 类型 描述 示例
-m s 模式 指定为「发现模式」(必需) -m s
-range IP 范围 扫描的 IP 段(CIDR/起止格式) -range 192.168.1.0/24-range 10.0.0.1-10.0.0.255
-file 文件路径 包含 IP/CIDR 的列表文件(每行一条) -file ips.txt
-testfile 文件路径 包含代理的列表文件(测试模式必需) -testfile proxies.txt
-type 代理类型 指定扫描的代理类型(逗号分隔) -type http,https,socks5
-v 开关 启用详细模式(显示调试日志,不显示进度) -v
-t 整数 代理测试超时时间(秒),默认 10 秒 -t 15
-p 整数 并发数,默认 200(高并发需调整系统限制) -p 150
-ports 端口列表 自定义扫描端口(逗号分隔) -ports 8080,3128,1080
-url URL 自定义测试 URL(默认 https://httpbin.org/ip) -url https://www.baidu.com
-content 字符串 内容验证关键字(仅保留包含该关键字的响应) -content "success"
-s 整数 保存模式:0=不保存,1=保存所有有效代理,2=仅保存匿名代理(默认 1) -s 2
-h 开关 显示帮助信息 -h

3. 常用示例

示例 1:扫描 IP 段的 HTTP/HTTPS 代理

# 扫描 192.168.1.0/24 网段,仅检测 HTTP/HTTPS 代理,并发 150,超时 12 秒
proxy-finder -m s -range 192.168.1.0/24 -type http,https -p 150 -t 12

示例 2:从文件扫描 IP/CIDR 并保存匿名代理

# 从 ips.txt 读取 IP/CIDR,扫描预设端口,仅保存匿名代理到 data 目录
proxy-finder -m s -file ips.txt -s 2

示例 3:测试已有代理列表并启用日志

# 测试 proxies.txt 中的代理,启用日志,自定义测试 URL 为百度
proxy-finder -testfile proxies.txt -log -url https://www.baidu.com

示例 4:详细模式调试

# 详细模式扫描,显示每步调试信息,忽略 SSL 证书错误
proxy-finder -m s -range 10.0.0.0/24 -v -ignoressl

Ubuntu 22.04 部署与安装

前置条件

  • Ubuntu 22.04 LTS 系统(64 位)
  • 具有 sudo 权限的用户
  • 稳定的网络连接(用于安装依赖和测试代理)

安装步骤

步骤 1:更新系统并安装依赖

# 更新系统包索引
sudo apt update && sudo apt upgrade -y

# 安装 Go 语言环境(编译必需)和 Git(可选,用于拉取代码)
sudo apt install -y golang git

步骤 2:验证 Go 环境

go version
  • 正常输出示例:go version go1.18.1 linux/amd64(版本 ≥1.16 即可)

步骤 3:获取代码并编译

# 方式 1:Git 拉取(推荐,便于更新)
git clone https://github.com/saycc1982/proxy-finder.git  # 替换为实际仓库地址
cd proxy-finder

# 方式 2:手动下载源码(无 Git 时)
# 1. 下载 proxy-finder.go 文件到本地
# 2. 进入文件所在目录

# 编译生成可执行文件
go build -o proxy-finder proxy-finder.go

步骤 4:配置系统路径(可选,全局调用)

# 将程序移动到系统全局路径,支持任意目录调用
sudo mv proxy-finder /usr/local/bin/

# 验证配置
proxy-finder -h  # 正常显示帮助信息即成功

步骤 5:创建数据目录(程序自动创建,手动创建可避免权限问题)

# 创建 data 目录(用于保存结果和日志)
mkdir -p ~/proxy-finder-data
chmod 755 ~/proxy-finder-data

# 后续运行时可指定日志/结果路径到该目录
proxy-finder -m s -range 192.168.1.0/24 -logfile ~/proxy-finder-data/proxy-log.log

可能遇到的问题及解决方法

1. 权限错误(无法创建文件/目录)

错误表现

  • 提示 创建 data 目录失败: permission denied无法写入日志文件

解决方法

# 方法 1:给当前目录赋予写入权限
chmod 755 .

# 方法 2:指定自定义数据目录(推荐)
mkdir -p ~/proxy-data
proxy-finder -m s -range 192.168.1.0/24 -logfile ~/proxy-data/log.txt -s 1

2. 网络连接问题(无法访问测试 URL 或目标 IP)

错误表现

  • 提示 请求失败: context deadline exceeded响应状态码非 200

解决方法

# 1. 检查网络连通性
ping 8.8.8.8  # 测试外网连接
curl https://httpbin.org/ip  # 测试默认测试 URL

# 2. 关闭防火墙(临时测试,生产环境需按需配置规则)
sudo ufw disable

# 3. 更换国内测试 URL(如默认 URL 无法访问)
proxy-finder -m s -range 192.168.1.0/24 -url https://www.baidu.com

3. 系统资源限制(too many open files)

错误表现

  • 高并发时提示 打开文件过多too many open files

解决方法

# 方法 1:临时提高文件描述符限制(当前终端生效)
ulimit -n 65535

# 方法 2:永久提高限制(重启后生效)
sudo tee -a /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF

# 方法 3:降低并发数(避免资源耗尽)
proxy-finder -m s -range 192.168.1.0/24 -p 100  # 并发数从默认 200 降至 100

4. 编译错误(go build 失败)

错误表现

  • 提示 undefined: xxxversion go1.xx is required

解决方法

# 1. 检查 Go 版本(需 ≥1.16)
go version

# 2. 升级 Go 版本(以 1.20.4 为例)
sudo apt remove golang -y
wget https://dl.google.com/go/go1.20.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.4.linux-amd64.tar.gz

# 3. 配置 Go 环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

# 4. 重新编译
go build -o proxy-finder proxy-finder.go

5. 无法获取本机 IP(影响匿名性检测)

错误表现

  • 提示 两次 IP 服务失败无法检查代理是否暴露本机 IP

解决方法

# 1. 手动指定国内可访问的测试 URL(跳过 IP 检测)
proxy-finder -m s -range 192.168.1.0/24 -url https://www.baidu.com

# 2. 检查 IP 服务连通性
curl http://myip.ipip.net  # 测试第一个 IP 服务
curl https://trackip.net/ip  # 测试第二个 IP 服务

注意事项

  1. 合规性:请确保扫描的 IP 段和代理使用符合当地法律法规,禁止用于未授权的网络探测。
  2. 资源占用:高并发(如 -p 500)可能占用大量 CPU/带宽,建议根据服务器配置调整。
  3. 代理列表格式-testfile 支持的代理格式:http://ip:portsocks5://ip:portip:port(默认 http)。
  4. 日志查看:启用 -log 后,日志默认保存到 data/log_时间戳.log,可通过 -logfile 自定义路径。

联系方式

如有功能建议或 BUG 反馈,欢迎联络作者:

About

golang powerful proxy finder and checker support http, https, socks4, socks5 ,功能强大的匿名代理发现及有效性检查的代码

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages