{"id":13578291,"url":"https://github.com/AbelChe/rabbithole","last_synced_at":"2025-04-05T16:32:10.645Z","repository":{"id":223647337,"uuid":"616316337","full_name":"AbelChe/rabbithole","owner":"AbelChe","description":"🦀️ 一个完全使用Rust编写的代理池工具，从网络搜索socks5代理，检测可用性之后开启socks5代理服务。A proxy pool tool completely written in Rust, which searches for SOCKS5 proxies from the network, and after checking their availability, starts a SOCKS5 proxy service.","archived":false,"fork":false,"pushed_at":"2023-03-20T11:14:20.000Z","size":2372,"stargazers_count":77,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-05T15:49:52.449Z","etag":null,"topics":["fofa","free","proxy","quake","rust","socks5","zoomeye"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AbelChe.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-03-20T06:27:30.000Z","updated_at":"2024-10-24T01:44:58.000Z","dependencies_parsed_at":"2024-02-21T10:58:51.677Z","dependency_job_id":null,"html_url":"https://github.com/AbelChe/rabbithole","commit_stats":null,"previous_names":["abelche/rabbithole"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbelChe%2Frabbithole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbelChe%2Frabbithole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbelChe%2Frabbithole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbelChe%2Frabbithole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbelChe","download_url":"https://codeload.github.com/AbelChe/rabbithole/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247366542,"owners_count":20927530,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fofa","free","proxy","quake","rust","socks5","zoomeye"],"created_at":"2024-08-01T15:01:29.170Z","updated_at":"2025-04-05T16:32:10.640Z","avatar_url":"https://github.com/AbelChe.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\n\n\u003cimg src=\"https://img.shields.io/badge/rabbithole-%F0%9F%A6%80%20rust-blueviolet\" /\u003e  \u003cimg src=\"https://img.shields.io/github/last-commit/abelche/rabbithole\" alt=\"last-commit\" /\u003e  \u003cimg src=\"https://img.shields.io/github/languages/top/abelche/rabbithole?color=yellow\" alt=\"languages-top\" /\u003e  \u003cimg alt=\"GitHub repo size\" src=\"https://img.shields.io/github/languages/code-size/abelche/rabbithole?color=green\"\u003e\n\n# 🦀 rabbithole 兔子洞\n\n[中文](./Readme.md)  |  [English](./Readme_en.md)\n\n\n\n🦀一个完全使用Rust编写的代理池工具，从网络搜索socks5代理，检测可用性之后开启socks5代理服务。\n\n\n\n易于使用\n\n```shell\nrabbithole -L socks5://user:pass@0.0.0.0:45678\n```\n\n\n\n# 🗃 数据来源说明\n\n1. fofa、360quake、zoomeye空间搜索引擎\n2. 互联网上公开的代理地址\n\n\n\n# 🌟 使用\n\n```\n$ rabbithole -h\n\nSearching public socks5 agents on the Internet, and start proxy pool service.\n  Examples:\n  # Searching socks5 proxy from fofa, zoomeye, quake and all others, and open proxy pool service on 0.0.0.0:7777 with authentication.\n  rabbithole -L socks5://user:password@0.0.0.0:7777 --fofa-email \u003cFOFA_EMAIL\u003e --fofa-token \u003cFOFA_TOKEN\u003e --zoomeye_token \u003cZOOMEYE_TOKEN\u003e --quake-token \u003cQUAKE_TOKEN\u003e\n\n  # Just searching socks5 proxy from free, and open socks5 proxy pool server on 0.0.0.0:7777 WITHOUT authentication.\n  rabbithole -L socks5://0.0.0.0:7777\n  # Open socks5 proxy pool server on 0.0.0.0:7777 WITH authentication.\n  rabbithole -L socks5://user:password@0.0.0.0:7777\n\n  # Of course, '--search-proxy' param could be set for searching from APIs.\n  rabbithole --search-proxy socks5://127.0.0.1:7890\n\n\nUsage: rabbithole [OPTIONS]\n\nOptions:\n      --fofa-email \u003cFOFA_EMAIL\u003e\n          Fofa email used by fofa api searching,\n      --fofa-token \u003cFOFA_TOKEN\u003e\n          Fofa API-token used by fofa api searching\n      --fofa-size \u003cFOFA_SIZE\u003e\n          How many pieces of data to search on fofa [default: 300]\n      --zoomeye-token \u003cZOOMEYE_TOKEN\u003e\n          Zoomeye token used by zoomeye api searching\n      --zoomeye-page-size \u003cZOOMEYE_PAGE_SIZE\u003e\n          How many pages to search on zoomeye, 20 pieces of data per page [default: 5]\n      --quake-token \u003cQUAKE_TOKEN\u003e\n          Quake API-token used by quake api searching\n      --quake-size \u003cQUAKE_SIZE\u003e\n          How many pieces of data to search on quake [default: 200]\n  -L, --listen \u003cLISTEN\u003e\n          Proxy setting, need to be set as socks5://[user:[password@]]proxyhost:port [default: socks5://0.0.0.0:7777]\n  -l, --level \u003cLEVEL\u003e\n          Log level (debug, info, warn, error, trace) [default: info]\n      --search-proxy \u003cSEARCH_PROXY\u003e\n          Proxy for Searching from APIs\n      --check-url \u003cCHECK_URL\u003e\n          Checking URL for availability testing\n  -z, --zone \u003cZONE\u003e\n          Zone of proxy, such as [0]inland-CN, [1]outside-CN(just HK,TW and MO), [2]exclude-CN(exclude CN,HK,TW and MO), [3]all-CN, [4]all [default: 4]\n      --delay-test-address \u003cDELAY_TEST_ADDRESS\u003e\n          Delay testing address [default: http://httpbin.org/ip]\n      --delay-test-timeout \u003cDELAY_TEST_TIMEOUT\u003e\n          Delay testing timeout, in milliseconds, such as `--delay-test-timeout 2000` [default: 5000]\n  -h, --help\n          Print help\n  -V, --version\n          Print version\n```\n\n\n\n![image-20230320143950045](resource/image-20230320143950045.png)\n\n\n\n![image-20230320144206346](resource/image-20230320144206346.png)\n\n\n\n\n# 🔨 TODO\n\n1. ~~**境**内外IP划分~~\n    1) ~~提供 `-z --zone [0(defult), 1, 2]` 参数划分为获取的代理是 所有 、 境内 还是 境外。这是给API搜索的时候提供筛选项~~\n    2) ~~在可用性检测的时候同时记录出口IP的位置，根据 `-z --zone [0(defult), 1, 2]` 参数指定的区域进行划分~~\n\n2. 增加API搜索的时效性\n\n3. 增加从文件获取代理地址的功能 `-f --file [filename]`\n\n4. 增加导出文件功能，将搜索获取到的代理地址保存到文件中 `-o --output [filename]`\n\n5. ~~增加 `--delay-test-address [url(defult httpbin.org)]` 参数指定可用性检测地址，`--delay-test-timeout [time(default 5000ms)]`参数指定检测超时时间~~\n\n6. 增加重连功能，当前请求的代理无法使用时候，再使用其他随机代理进行重连，可以使用 `--reconnect [times]` 指定次数\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAbelChe%2Frabbithole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAbelChe%2Frabbithole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAbelChe%2Frabbithole/lists"}