
Инструмент обхода Cloudflare Turnstile | Cloudflare Bypass Tool based on SeleniumBase UC Mode | Поддерживает Mac/Windows/Linux
Мультистратегический набор инструментов для исследования и тестирования прохождения Cloudflare Turnstile / Challenge на macOS, Windows и Linux.
Проект предназначен только для исследовательских целей и авторизованного автоматизированного тестирования. Вы обязаны соблюдать действующее законодательство и условия использования целевых сайтов.
Защита Cloudflare в 2025–2026 годах многоуровневая: репутация сети, TLS/HTTP-отпечатки, JavaScript-челленджи, взаимодействие с Turnstile и признаки протоколов автоматизации. Одного HTTP-клиента для Turnstile недостаточно.
В этом репозитории представлены пять исполняемых стратегий и одна обёртка на основе класса, чтобы вы могли выбрать подходящий путь: одиночный сеанс исследования, пакетные задания, чистое CDP-управление или переиспользование уже решённой сессии на уровне TLS.
Рекомендуемый базовый уровень (открытый стек):
Обычный Chrome с графическим интерфейсом
+ опционально резидентный / качественный исходящий IP
+ UC reconnect или чистый CDP
+ клик по капче на уровне ОС при необходимости взаимодействия
Не рекомендуется как основной путь для Turnstile:
Настоящий headless против Managed Turnstile
Чистый curl_cffi / tls-client против Turnstile
playwright-stealth в одиночку как «решение в один клик»
| Ограничение | Подробности |
|---|---|
| Нет JS-рантайма | Не может выполнить Turnstile / PoW современных челленджей |
| Нет DOM / Web API | Отсутствуют сигналы navigator, WebGL, canvas |
| Нет взаимодействия |
| Компонент | Требование |
|---|
Пакеты Python перечислены в requirements.txt (SeleniumBase, nodriver, curl_cffi, OpenCV headless, pyvirtualdisplay и др.).
git clone https://github.com/1837620622/cloudflare-bypass-2026.git
cd cloudflare-bypass-2026
pip install -r requirements.txt
Перед запуском скриптов на основе браузера установите Google Chrome.
git clone https://github.com/1837620622/cloudflare-bypass-2026.git
cd cloudflare-bypass-2026
sudo bash install_linux.sh
Ручная установка:
sudo apt-get update
sudo apt-get install -y xvfb libglib2.0-0 libnss3 libatk1.0-0 libatk-bridge2.0-0 \
libcups2 libdrm2 libxkbcommon0 libgbm1 libasound2
python3 -m pip install -r requirements.txt
Примечания
.deb-пакеты Chrome предназначены в основном для amd64. На ARM-хостах установите подходящую сборку Chromium/Chrome самостоятельно.# Install dependencies / 安装依赖
pip install -r requirements.txt
# Method 1 — UC Mode (recommended default) / 方案1 默认推荐
python bypass.py https://example.com
python bypass.py https://example.com -p http://127.0.0.1:7890 -t 90
# Method 5 — CDP Mode / 方案5 CDP
python bypass_cdp.py https://example.com
# Method 3 — nodriver / 方案3
python bypass_nodriver.py https://example.com
Замените https://example.com на сайт, который вам разрешено тестировать.
bypass.py (по умолчанию)Один сеанс Chrome через SeleniumBase UC Mode: uc_open_with_reconnect + uc_gui_click_captcha / uc_gui_handle_captcha.
python bypass.py https://example.com
python bypass.py https://example.com -p http://127.0.0.1:7890
python bypass.py https://example.com -t 90 --incognito
simple_bypass.pyДля пакетных заданий с несколькими прокси или браузерами. Клики на уровне ОС небезопасны при нескольких окнах на одном рабочем столе; параллельные воркеры могут конкурировать за мышь.
python simple_bypass.py https://example.com
python simple_bypass.py https://example.com -r -f proxy.txt -c
python simple_bypass.py https://example.com -P -b 3 -t 30 -n 5 -c
bypass_nodriver.pyУправление CDP без chromedriver. Клик по челленджу выполняется с помощью verify_cf() (сопоставление шаблона OpenCV). Исходный проект распространяется под лицензией AGPL-3.0.
pip install "nodriver>=0.50.0" opencv-python-headless
python bypass_nodriver.py https://example.com
python bypass_nodriver.py https://example.com -p http://127.0.0.1:7890
Коммерческое распространение AGPL-компонентов в закрытом виде требует отдельной проверки соответствия лицензии.
bypass_curl_cffi.py (не для Turnstile)Только имитация HTTP/TLS-отпечатков. Подходит для слабых или устаревших челленджей, а также для повторного использования cookie, полученных браузерным решателем, при совпадении User-Agent и исходящего IP.
python bypass_curl_cffi.py https://example.com
python bypass_curl_cffi.py https://example.com -f chrome146
python bypass_curl_cffi.py https://example.com -p http://127.0.0.1:7890
Часто используемые отпечатки: chrome120, chrome124, chrome131, chrome136, chrome142, chrome146, firefox135, firefox144, safari17_0, safari18_0, edge101.
bypass_cdp.pySeleniumBase CDP Mode (sb_cdp): solve_captcha() с запасным вариантом gui_click_captcha(). Рекомендуемый путь обновления наряду с UC Mode в 2026 году.
python bypass_cdp.py https://example.com
python bypass_cdp.py https://example.com -p http://127.0.0.1:7890 -t 90
| Аргумент | Описание | По умолчанию |
|---|
bypass_seleniumbase.pyОбъектно-ориентированная обёртка UC для встраивания в более крупные проекты.
python bypass_seleniumbase.py https://example.com -p http://127.0.0.1:7890
bypass.py)from bypass import bypass_cloudflare
result = bypass_cloudflare(
"https://example.com",
proxy="http://127.0.0.1:7890",
timeout=90,
save_cookies=True,
)
if result["success"]:
print(result["cf_clearance"])
print(result["user_agent"])
print(result["cookies"])
else:
print(result["error"])
bypass_seleniumbase.py)from bypass_seleniumbase import bypass_and_get_cookies
result = bypass_and_get_cookies(
"https://example.com",
proxy="http://127.0.0.1:7890",
session_name="demo",
)
if result["success"]:
print(result["cf_clearance"])
from bypass_nodriver import bypass_sync
result = bypass_sync("https://example.com", timeout=60.0)
from bypass_curl_cffi import bypass_cloudflare_http
# Optional: reuse browser-solved cookies
result = bypass_cloudflare_http(
"https://example.com",
fingerprint="chrome146",
cookies={"cf_clearance": "..."}, # optional
)
Файл: proxy.txt (по одному адресу в строке):
127.0.0.1:7890
http://127.0.0.1:7890
socks5://127.0.0.1:1080
http://user:pass@host:port
Большинство бесплатных публичных прокси не поддерживают HTTPS CONNECT стабильно. Для серьёзных исследований используйте проверенные резидентные или качественные прокси.
При включённом сохранении cookie записываются в output/cookies/.
Пример JSON
{
"url": "https://example.com",
"cookies": {
"cf_clearance": "..."
},
"user_agent": "Mozilla/5.0 ...",
"timestamp": "20260714_120000",
"method": "seleniumbase_uc"
}
cf_clearance часто привязан к IP + User-Agent. Смена любого из них обычно требует нового решения.
cloudflare-bypass-2026/
├── bypass.py # Method 1: SeleniumBase UC (default)
├── simple_bypass.py # Method 2: parallel + proxy rotation
├── bypass_nodriver.py # Method 3: nodriver CDP
├── bypass_curl_cffi.py # Method 4: TLS fingerprint (non-Turnstile)
├── bypass_cdp.py # Method 5: SeleniumBase CDP Mode
├── bypass_seleniumbase.py # UC class wrapper
├── install_linux.sh # Linux bootstrap
├── requirements.txt # Python dependencies
├── proxy.txt # Sample proxy list
├── LICENSE
├── README.md
└── output/ # Runtime cookie exports (created on use)
Какой метод использовать в первую очередь?
Начните с bypass.py или bypass_cdp.py. Если нужен CDP-стек без chromedriver, используйте bypass_nodriver.py. Для пакетной обработки и ротации прокси — simple_bypass.py. Для Turnstile не используйте bypass_curl_cffi.py.
Почему стоит избегать настоящего headless-режима?
Headless-профили автоматизации проще распознать по отпечаткам. На Linux-серверах без рабочего стола используйте Xvfb / виртуальный дисплей (install_linux.sh, pyvirtualdisplay или SeleniumBase xvfb=True) вместо Chrome headless.
Сколько действует cf_clearance?
Обычно от десятков минут до нескольких часов, в зависимости от политики сайта. Он часто привязан к IP и UA; после смены прокси часто требуется новое решение.
Ошибка Linux: X11 / сбой дисплея
sudo bash install_linux.sh
# or / 或
sudo apt-get install -y xvfb
pip install pyvirtualdisplay
Прокси не работает
Убедитесь в поддержке HTTPS CONNECT и аутентификации. Публичные бесплатные списки для такой нагрузки в основном непригодны.
nodriver сообщает об отсутствии OpenCV
pip install opencv-python-headless
Существует ли универсальный обход?
Нет. Защита постоянно развивается. Результат зависит от конфигурации цели, репутации исходящего IP, достоверности окружения браузера и времени. Этот набор инструментов не претендует на универсальный успех.
Приветствуются размещение спонсорства, заказная разработка и технические консультации.
| Канал | Контакт |
|---|---|
1837620622 (传康Kk) | |
[email protected] | |
| Xianyu / Bilibili | 万能程序员 |
Пожалуйста, сначала свяжитесь через WeChat и укажите пометку Business / «Сотрудничество».
LICENSE).Если этот проект оказался полезным, поставьте звёздочку репозиторию.
| Справочные материалы | Справочные материалы |
| Сотрудничество | Сотрудничество |
| Лицензия | Лицензия |
| # | Скрипт | Стратегия | Turnstile | Лучшее применение |
|---|
| 1 | bypass.py | SeleniumBase UC Mode | Да | Основной путь для одиночного сеанса |
| 2 | simple_bypass.py | UC + параллельность / ротация прокси | Да | Пакетные задания; возможна конкуренция за клики GUI |
| 3 | bypass_nodriver.py | Чистый CDP на nodriver | Да | CDP без chromedriver; нужен OpenCV; AGPL-3.0 |
| 4 | bypass_curl_cffi.py | TLS-отпечаток / переиспользование cookie | Нет | Только устаревшие JS-челленджи или переиспользование cookie после решения |
| 5 | bypass_cdp.py | SeleniumBase CDP Mode | Да | Преемник обычного UC в 2026 |
| — | bypass_seleniumbase.py | Обёртка класса UC | Да | Импортируемый API для встраивания и доработки |
| Приоритет | Выбор | Примечания |
|---|
| 1 | bypass.py или bypass_cdp.py | Основная точка входа |
| 2 | bypass_nodriver.py | Надёжная CDP-альтернатива; проверьте AGPL |
| 3 | simple_bypass.py | Пропускная способность / ротация; клики GUI при необходимости выполнять последовательно |
| 4 | Решение в браузере, затем переиспользование через curl_cffi | Сохраняйте тот же UA и исходящий IP |
| Избегать | Чистый HTTP против Turnstile | Не выполняет JS и не взаимодействует |
| Managed-режим требует реального клика по чекбоксу |
| TLS — лишь один сигнал | Одного совпадения JA3/JA4 недостаточно |
| Возможность | Описание |
|---|
| SeleniumBase UC Mode | Отключение-переподключение драйвера + клик по капче на уровне ОС |
| SeleniumBase CDP Mode | Чистый CDP-путь со сниженными сигналами привязки WebDriver |
| nodriver CDP | Без chromedriver; шаблонный клик verify_cf() (OpenCV) |
| Параллельность / ротация прокси | Пакетные воркеры и ротация файла прокси в simple_bypass.py |
| Контроль таймаута | Сквозной таймаут в основных сценариях |
| Экспорт cookie | Форматы JSON и Netscape, где применимо |
| Кроссплатформенность | macOS, Windows, Linux (на Linux без графического интерфейса нужен Xvfb) |
| Python | 3.9+ |
| Браузер | Google Chrome (или Chromium на Linux с архитектурой, отличной от amd64) |
| Дисплей | Предпочтителен обычный графический интерфейс; серверы Linux: Xvfb / виртуальный дисплей |
| ОС | macOS, Windows, Linux |
| Прокси (опционально) | HTTP / HTTPS / SOCKS5 с работающим HTTPS CONNECT |
| Аргумент | Описание | По умолчанию |
|---|
url | Целевой URL | обязательно |
-p, --proxy | URL прокси | нет |
-t, --timeout | Общий таймаут (секунды) | 60 |
-r, --reconnect | Окно отключения при переподключении | 5 |
--incognito | Режим инкогнито | выкл. |
--no-save | Не сохранять cookie | выкл. |
| Аргумент | Описание | По умолчанию |
|---|
-p, --proxy | Фиксированный прокси | нет |
-f, --proxy-file | Файл со списком прокси | proxy.txt |
-r, --rotate | Последовательная ротация прокси | выкл. |
-P, --parallel | Параллельные браузеры | выкл. |
-b, --batch | Браузеров в одном пакете | 3 |
-t, --timeout | Таймаут (секунды) | 60 |
-n, --retries | Максимум пакетов или попыток прокси | 3 |
-c, --check-proxy | Предварительная проверка работоспособности прокси | выкл. |
-w, --wait | Ожидание страницы / переподключения | 5 |
--no-save | Не сохранять cookie | выкл. |
| Аргумент | Описание | По умолчанию |
|---|
-p, --proxy | URL прокси | нет |
-t, --timeout | Общий таймаут | 60 |
--headless | Headless (не рекомендуется) | выкл. |
--no-save | Не сохранять cookie | выкл. |
| Аргумент | Описание | По умолчанию |
|---|
-p, --proxy | URL прокси | нет |
-f, --fingerprint | Профиль имитации | chrome136 |
-t, --timeout | Таймаут запроса | 30 |
-n, --retries | Количество повторов | 3 |
--no-save | Не сохранять cookie | выкл. |
-p, --proxy | URL прокси | нет |
-t, --timeout | Общий бюджет таймаута | 60 |
--no-save | Не сохранять cookie | выкл. |
| Поле | Тип | Значение |
|---|
success | bool | Получен ли рабочий путь прохождения |
cookies | dict | Словарь «имя — значение» |
cf_clearance | str или None | Cookie Cloudflare clearance при наличии |
user_agent | str или None | UA браузера, использованный в сеансе |
error | str или None | Причина неудачи |
method | str | Идентификатор стратегии |
| Префикс | Источник |
|---|
cookies_*.json / cookies_*.txt | bypass.py, simple_bypass.py |
cookies_cdp_*.json | bypass_cdp.py |
cookies_nodriver_*.json / cookies_nodriver_*.txt | bypass_nodriver.py |
cookies_curl_*.json / cookies_curl_*.txt | bypass_curl_cffi.py |