Linux 与 macOS 代理检测脚本:bash 实现,带 RBL 检测

remcheck.sh 直接在你的服务器上用数百线程检测代理列表:哪些能连通、速度多快、从哪个 IP 出口。第二种模式还会把每个出口 IP 放到 17 个垃圾邮件黑名单里查询。

  • 只需 bash 和 curl,无需安装
  • 最多 1000 线程
  • connect 与 RBL 两种模式
  • 免费

版本 1.2 · 17.7 KBSHA-256 cfad8abe4c98e914f58f34eec7acc50ed1c821c830a6c3b300cbcba0bf6298ce

终端正在检测数百个代理:绿色和红色指示灯连接着网络节点

一分钟上手

无需安装任何东西:bash、curl 和常用工具在 macOS 和大多数 Linux 服务器上都已自带。脚本启动时会检查它们,缺什么就会给出安装命令。

  1. 下载脚本

    直接下载到将要使用代理的服务器上。

    curl -fsSLO https://remproxy.com/files/remcheck.sh
  2. 允许执行

    下载后执行一次即可。

    chmod +x remcheck.sh
  3. 检测列表

    把面板里的列表链接交给脚本:每个订阅都有自己的 your_proxy_id。本地文件也可以:./remcheck.sh -f proxies.txt。结果会出现在脚本旁边的新文件夹里。

    ./remcheck.sh -P socks5 -f https://proxy.remproxy.com/your_proxy_id.csv
如果脚本提示 missing tools

在最小化的 Debian、Alpine 镜像和 Docker 容器里可能出现。用适合你系统的一条命令补齐:

Debian / Ubuntu
sudo apt-get update && sudo apt-get install -y curl gawk coreutils grep sed
CentOS / Rocky / Alma / Fedora
sudo dnf install -y curl gawk coreutils grep sed
Alpine
apk add bash curl coreutils gawk grep sed

macOS:全部自带,无需安装。

两种模式

connect:可用且快速

脚本通过每个代理打开一个返回 IP 的页面,并记录响应时间。可用代理写入 alive.txt,最快的排在最前。

./remcheck.sh -f proxies.txt -n 200 -T 8

rbl:可用且干净

每个出口 IP 都会通过 DNS over HTTPS 在 17 个垃圾邮件黑名单中查询。对于 RemProxy 面板导出的 CSV,脚本直接从 real_ip 列取地址,所以查询立即开始,不需要经过代理连接。其他列表会先走一遍 connect。干净的写入 clean.txt,被列入的写入 listed.txt。

./remcheck.sh -f proxies.txt -m rbl -n 100

参数

-f LIST
代理列表:文件、http(s) 链接,或用 - 从 stdin 读取。
-m MODE
模式:connect(默认)或 rbl。
-n NUM
同时检测的代理数,默认 64,最多 1000。rbl 模式下它也决定同时查询黑名单的 IP 数:不加 -n 为 128,最多 256。
-T SEC
每个代理的超时秒数,默认 10。
-P PROTO
没有协议前缀的行使用的协议:http(默认)、socks5 或 socks4。
-e URL
脚本通过每个代理打开的页面,必须返回 IP 地址,默认 ipv4.icanhazip.com。
-d DIR
结果文件夹,默认 remcheck-日期-时间。
-C
用 RemProxy CSV 跑 rbl 模式时,仍然通过每个代理连接,而不是从 real_ip 列取 IP。
-q
不显示进度行。在 cron 下会自动关闭。

列表格式

同一个文件里可以混用不同写法,重复行和空行会被跳过。RemProxy 面板导出的 CSV 也能直接用。

host:port
host:port:user:pass
user:pass@host:port
socks5://user:pass@host:port
ip;port;country;speed;uptime;real_ip

文件夹里会有什么

  • alive.txt可用代理,最快的排在最前。
  • dead.txt没有响应的代理。
  • results.tsv表格:代理、状态、出口 IP、耗时(毫秒),rbl 模式下还有黑名单列。
  • clean.txtrbl 模式:出口 IP 干净的可用代理。
  • listed.txtrbl 模式:出口 IP 在垃圾邮件黑名单里的可用代理。

检测 RemProxy 列表

面板里的 CSV 链接可以直接使用。rbl 模式下脚本从 real_ip 列取出口 IP,每个地址只查一次,不经过代理连接。同时处理 128 个地址,1000 个 IP 不到一分钟。结果汇总给出干净和被列入黑名单的代理与地址的数量和百分比。

./remcheck.sh -f https://proxy.remproxy.com/your_proxy_id.csv -m rbl

-n 不要超过你套餐的线程数,否则部分检测会撞到上限,被算作不可用。

IP 不在白名单时

列表只提供给订阅白名单里的 IP。如果这台机器不在其中,脚本会停止并显示它的 IP:打开 panel.remproxy.com/subscriptions,选择该订阅,在“访问”部分把这个 IP 加入“允许的 IP”,然后重新检测。在 cron 日志里,这种情况的退出码为 3。

remcheck: the list server rejected this machine, its IP is not in the subscription whitelist.
  IP of this machine:        203.0.113.7
  Allowed IPs of the plan:   198.51.100.20
查看这台机器的 IP

定时检测

脚本本身没有周期模式,定时交给 cron。检测会自动启动,最新结果总在同一个文件夹里。

  • 用 crontab -e 打开定时任务。
  • 添加下面这一行:每 30 分钟检测一次,结果写入 remcheck-latest,日志写入 remcheck.log。
  • 保存文件。用 crontab -l 查看定时任务。
crontab -e
*/30 * * * * $HOME/remcheck.sh -P socks5 -f https://proxy.remproxy.com/your_proxy_id.csv -d $HOME/remcheck-latest -q >> $HOME/remcheck.log 2>&1

macOS 上的 cron 用法相同,但访问“文稿”和“桌面”文件夹需要完全磁盘访问权限。把脚本和列表放在个人主目录里更省事。

运行环境: bash 3.2 或更高版本、curl、awk、sed、grep、sort。Windows 上可在 Git Bash 或 WSL 中运行,说明见下方。

在 Windows 上运行

Windows 没有自带 bash,但 Git for Windows 会带上:Git Bash 里有 bash、curl 和脚本需要的工具,脚本无需修改即可运行。

  1. 从 git-scm.com 安装 Git for Windows,安装选项保持默认即可。
  2. 从开始菜单打开 Git Bash。
  3. 新建文件夹并把脚本下载进去:
    mkdir -p /c/remcheck && cd /c/remcheck && curl -fsSLO https://remproxy.com/files/remcheck.sh
  4. 运行检测。用 bash 前缀代替 chmod:
    bash remcheck.sh -P socks5 -f https://proxy.remproxy.com/your_proxy_id.csv -n 100
  5. 结果在 C:\remcheck\remcheck-日期-时间。Windows 上启动进程比 Linux 慢,建议从 -n 100 开始。

Windows 上的定时任务

  • 打开“任务计划程序”,选择“创建基本任务”。
  • 触发器选“每天”。然后在任务属性的“触发器”选项卡里开启每 30 分钟重复。
  • 操作选“启动程序”,程序和参数见下方。
    程序
    C:\Program Files\Git\bin\bash.exe
    参数
    -lc "/c/remcheck/remcheck.sh -P socks5 -f https://proxy.remproxy.com/your_proxy_id.csv -d /c/remcheck/latest -q"
  • 保存任务。最新结果会在 C:\remcheck\latest。

如果服务器启用了 WSL,可以在其中的 Ubuntu 里像在 Linux 上一样运行脚本。

常见问题

01线程数设多少合适?
100 Mbit/s 带宽的服务器用 100 到 300 就够了。每次检测只是一个很短的请求,限制速度的通常是超时而不是带宽。检测 RemProxy 列表时不要超过套餐的线程数。
02为什么我的 RemProxy 列表全部显示不可用?
如果列表通过链接获取,脚本会识别拒绝并显示本机 IP:把它加入订阅的“允许的 IP”。如果检测的是文件,请在白名单里的机器上运行脚本。它的 IP 可以在“我的 IP”页面或用 curl -4 ifconfig.me 查看。
03代理本来就能用,为什么还要 rbl 模式?
邮件服务器和部分网站会拒绝黑名单里的地址。rbl 模式把这些出口分出来,让看重信誉的任务只走干净的 IP。
04脚本会把我的代理发到别处吗?
不会。connect 模式下每个代理只向 ipv4.icanhazip.com 发一个请求,rbl 模式下脚本向 Google 和 Cloudflare 的 DNS 查询出口 IP。结果只保存在你机器上的文件夹里。
05怎么检测 SOCKS5?
在行里写上协议,例如 socks5://host:port,或者对整个列表加上 -P socks5。RemProxy 的端口同时支持 HTTP 和 SOCKS5。

需要用于批量检测的代理池?

MIX 代理池最多 25,000 个 IP,无限流量,同一端口支持 HTTP 和 SOCKS5,按 IP 接入。测试一小时只需 $1。

查看套餐
登录/注册