
Strumento di bypass di Cloudflare Turnstile | Cloudflare Bypass Tool based on SeleniumBase UC Mode | Supporta Mac/Windows/Linux
| Inglese | Cinese |
|---|
Inglese
Questo progetto è destinato esclusivamente a ricerca educativa e test di automazione autorizzati. Devi rispettare le leggi applicabili e i termini di servizio di qualsiasi sito web target.
Cinese
Questo progetto è destinato esclusivamente a ricerca didattica e test di automazione autorizzati. Durante l'uso è necessario rispettare le leggi e i regolamenti locali e i termini di servizio del sito target.
Inglese
Le difese di Cloudflare nel 2025–2026 sono stratificate: reputazione di rete, fingerprinting TLS/HTTP, challenge JavaScript, interazione Turnstile e segnali di protocolli di automazione. Un singolo client HTTP non è sufficiente per Turnstile.
Questo repository fornisce cinque strategie eseguibili più un wrapper basato su classi, così puoi scegliere il percorso giusto per ricerca in singola sessione, operazioni batch, controllo CDP puro o riutilizzo a livello TLS di una sessione già risolta.
Baseline consigliata (percorso open-source):
Headed real Chrome
+ optional residential / high-quality egress IP
+ UC reconnect or pure CDP
+ OS-level captcha click when interaction is required
Non consigliato come percorso principale per Turnstile:
True headless hard-target Managed Turnstile
Pure curl_cffi / tls-client against Turnstile
playwright-stealth alone as a “one-click” solution
Cinese
Le difese di Cloudflare nel 2025–2026 sono stratificate: reputazione di rete, fingerprint TLS/HTTP, JS Challenge, interazione Turnstile e caratteristiche dei protocolli di automazione. Un semplice client HTTP non può completare Turnstile.
Questo repository offre 5 soluzioni eseguibili e 1 punto di ingresso basato su classi, che coprono ricerca in singola sessione, attività batch, controllo CDP puro e riutilizzo della sessione a livello TLS dopo la risoluzione tramite browser.
Baseline più affidabile in scenari open-source:
有头真实 Chrome
+ 可选住宅或高质量出口 IP
+ UC 断连重连 或 纯 CDP
+ 需要交互时使用操作系统级点击
Non consigliato come percorso principale per Turnstile:
真无头模式硬刚 Managed Turnstile
纯 curl_cffi / tls-client 直打 Turnstile
单独依赖 playwright-stealth 作为“一键方案”
| # | Script | Strategia / Strategia | Turnstile | Ideale per / Scenari d'uso |
|---|---|---|---|---|
| 1 | bypass.py | SeleniumBase Modalità UC | Sì | Percorso predefinito per singola sessione / Percorso principale predefinito per singola sessione |
| 2 | simple_bypass.py | UC + parallelismo / rotazione proxy | Sì | Operazioni batch; possibile contesa dei clic GUI / Attività batch; in parallelo possono contendersi il mouse di sistema |
| 3 | bypass_nodriver.py | nodriver CDP puro | Sì | CDP senza chromedriver; richiede OpenCV; AGPL-3.0 / Senza chromedriver; richiede OpenCV; attenzione ad AGPL |
| 4 | bypass_curl_cffi.py | fingerprint TLS / riutilizzo cookie | No | Solo legacy JS Challenge o riutilizzo di cookie dopo la risoluzione / Solo Challenge legacy o riutilizzo di cookie |
| 5 | bypass_cdp.py | SeleniumBase Modalità CDP | Sì | Percorso successore del semplice UC per il 2026 / Percorso successore di UC |
| — | bypass_seleniumbase.py | wrapper di classe UC | Sì | API incorporabile per sviluppo secondario / Wrapper di sviluppo secondario importabile |
| Priorità / Priorità | Scelta / Scelta | Note / Spiegazioni |
|---|---|---|
| 1 | bypass.py o bypass_cdp.py | Ingresso primario per la ricerca / Ingresso principale |
| 2 | bypass_nodriver.py | Forte alternativa CDP; verificare AGPL / Forte alternativa; attenzione alla licenza |
| 3 | simple_bypass.py | Throughput / rotazione; serializzare i clic GUI se necessario / Throughput e rotazione; i clic GUI dovrebbero essere serializzati |
| 4 | Risoluzione tramite browser e poi riutilizzo con curl_cffi | Mantenere lo stesso UA e lo stesso IP di uscita / È necessario mantenere UA e IP di uscita coerenti |
| Da evitare | HTTP puro contro Turnstile | Non eseguirà JS / non interagirà / Impossibile eseguire JS e interazioni |
| Limitazione / Limitazione | Dettaglio / Spiegazione |
|---|---|
| Nessun runtime JS | Non può completare Turnstile / la Proof of Work delle Challenge moderne |
| Nessun DOM / API Web | Mancano i segnali navigator, WebGL e canvas |
| Nessuna interazione | La modalità gestita richiede un clic reale sulla casella di controllo |
| TLS è solo uno dei segnali | Il matching JA3/JA4 non è sufficiente da solo |
| Funzionalità / Funzione | Descrizione / Spiegazione |
|---|---|
| SeleniumBase Modalità UC | Disconnessione-riconnessione del driver + clic captcha a livello di sistema operativo |
| SeleniumBase Modalità CDP | Percorso CDP puro con segnali di aggancio WebDriver ridotti |
| CDP nodriver | Niente chromedriver; clic su template verify_cf() (OpenCV) |
| Parallelismo / rotazione proxy | Worker batch e rotazione del file proxy in simple_bypass.py |
| Controllo timeout | Timeout end-to-end sui flussi principali |
| Esportazione cookie | Formati JSON e Netscape dove applicabile |
| Multi-piattaforma | macOS, Windows, Linux (Linux richiede Xvfb su host headless) |
| Voce / Elemento | Requisito / Requisito |
|---|---|
| Python | 3.9+ |
| Browser | Google Chrome (o Chromium su Linux non-amd64) |
| Display | GUI con finestre consigliata; server Linux: Xvfb / display virtuale |
| OS | macOS, Windows, Linux |
| Proxy opzionale | HTTP / HTTPS / SOCKS5 con HTTPS CONNECT funzionante |
I pacchetti Python sono elencati in requirements.txt (SeleniumBase, nodriver, curl_cffi, OpenCV headless, pyvirtualdisplay, ecc.).
Le dipendenze Python sono in requirements.txt (tra cui SeleniumBase, nodriver, curl_cffi, OpenCV headless, pyvirtualdisplay, ecc.).
git clone https://github.com/1837620622/cloudflare-bypass-2026.git
cd cloudflare-bypass-2026
pip install -r requirements.txt
Installa Google Chrome prima di eseguire gli script basati su browser.
Installa prima Google Chrome, poi esegui le soluzioni basate su browser.
git clone https://github.com/1837620622/cloudflare-bypass-2026.git
cd cloudflare-bypass-2026
sudo bash install_linux.sh
Alternativa manuale / Installazione manuale:
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
Note / Note
.deb ufficiali di Chrome sono principalmente amd64. Su host ARM, installa tu stesso una build corrispondente di 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
Sostituisci https://example.com con un target che sei autorizzato a testare.
Sostituisci l'URL di esempio con un indirizzo target che hai il diritto di testare.
bypass.py (predefinito)Sessione Chrome singola tramite SeleniumBase Modalità UC: uc_open_with_reconnect + uc_gui_click_captcha / uc_gui_handle_captcha.
Modalità UC con browser singolo: apre la pagina con disconnessione e, quando viene rilevata una challenge, esegue un clic a livello di sistema.
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
| Argomento / Parametro | Descrizione / Spiegazione | Predefinito / Predefinito |
|---|---|---|
url | URL target / URL di destinazione | obbligatorio |
-p, --proxy | URL proxy / indirizzo proxy | nessuno |
-t, --timeout | Timeout complessivo (secondi) / secondi di timeout complessivo | 60 |
-r, --reconnect | Finestra di disconnessione per la riconnessione / secondi di disconnessione | 5 |
--incognito | Profilo in incognito / modalità di navigazione in incognito | disattivato |
--no-save | Non scrivere i cookie / non salvare i cookie | disattivato |
simple_bypass.pyPer batch multi-proxy o multi-browser. I clic GUI a livello di sistema non sono sicuri in ambienti multi-finestra su un singolo desktop; i worker paralleli possono contendersi il mouse.
Adatto a batch multi-proxy o multi-browser. I clic a livello di sistema non sono sicuri per più finestre sullo stesso desktop; in parallelo possono interferire tra loro.
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
| Argomento / Parametro | Descrizione / Spiegazione | Predefinito / Predefinito |
|---|---|---|
-p, --proxy | Proxy fisso / proxy fisso | nessuno |
-f, --proxy-file | File elenco proxy / file elenco proxy | proxy.txt |
-r, --rotate | Rotazione sequenziale dei proxy / rotazione in ordine | disattivato |
-P, --parallel | Browser paralleli / browser in parallelo | disattivato |
-b, --batch | Browser per batch / numero di browser per batch | 3 |
-t, --timeout | Timeout (secondi) / secondi di timeout | 60 |
-n, --retries | Numero massimo di batch o tentativi proxy / numero di batch o tentativi proxy | 3 |
-c, --check-proxy | Verifica preliminare della disponibilità del proxy / precheck di disponibilità del proxy | disattivato |
-w, --wait | Attesa pagina / attesa riconnessione / attesa pagina | 5 |
--no-save | Non scrivere i cookie / non salvare i cookie | disattivato |
bypass_nodriver.pyControllo CDP senza chromedriver. Il clic sulla challenge usa verify_cf() (template matching con OpenCV). La licenza upstream è AGPL-3.0.
Controllo CDP senza chromedriver. Il clic sulla challenge utilizza verify_cf() (template matching OpenCV). La licenza upstream è 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
| Argomento / Parametro | Descrizione / Spiegazione | Predefinito / Predefinito |
|---|---|---|
-p, --proxy | URL proxy / proxy | nessuno |
-t, --timeout | Timeout complessivo / timeout complessivo | 60 |
--headless | Headless (sconsigliato) / headless (non consigliato) | disattivato |
--no-save | Non scrivere i cookie / non salvare i cookie | disattivato |
La redistribuzione commerciale closed-source di componenti AGPL richiede una verifica di conformità separata.
Prima di distribuire commercialmente componenti AGPL in closed-source, completa autonomamente la valutazione di conformità.
bypass_curl_cffi.py (non per Turnstile)Solo impersonificazione del fingerprint HTTP/TLS. Adatto a challenge deboli o legacy, o per riutilizzare i cookie ottenuti da un risolutore browser con User-Agent e IP di uscita corrispondenti.
Solo impersonificazione del fingerprint HTTP/TLS. Adatto per Challenge a bassa protezione o legacy, oppure per riutilizzare i cookie risolti dal browser a condizione che UA e IP di uscita siano coerenti.
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
| Argomento / Parametro | Descrizione / Spiegazione | Predefinito / Predefinito |
|---|---|---|
-p, --proxy | URL proxy / proxy | nessuno |
-f, --fingerprint | Profilo di impersonificazione / configurazione fingerprint | chrome136 |
-t, --timeout | Timeout richiesta / timeout richiesta | 30 |
-n, --retries | Numero di tentativi / numero di retry | 3 |
--no-save | Non scrivere i cookie / non salvare i cookie | disattivato |
I fingerprint comuni includono: chrome120, chrome124, chrome131, chrome136, chrome142, chrome146, firefox135, firefox144, safari17_0, safari18_0, edge101.
bypass_cdp.pySeleniumBase Modalità CDP (sb_cdp): solve_captcha() con fallback a gui_click_captcha(). Percorso di aggiornamento consigliato accanto alla Modalità UC nel 2026.
SeleniumBase Modalità CDP: usa prima solve_captcha(), in caso di errore ripiega su gui_click_captcha(). Nel 2026 è un percorso di aggiornamento parallelo alla modalità UC.
python bypass_cdp.py https://example.com
python bypass_cdp.py https://example.com -p http://127.0.0.1:7890 -t 90
| Argomento / Parametro | Descrizione / Spiegazione | Predefinito / Predefinito |
|---|---|---|
-p, --proxy | URL proxy / proxy | nessuno |
-t, --timeout | Budget di timeout complessivo / budget di timeout complessivo | 60 |
--no-save | Non scrivere i cookie / non salvare i cookie | disattivato |
bypass_seleniumbase.pyWrapper UC orientato agli oggetti per l'integrazione in progetti più grandi.
Wrapper UC orientato agli oggetti, adatto per essere integrato in progetti più grandi.
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
)
| Campo / Campo | Tipo / Tipo | Significato / Significato |
|---|---|---|
success | bool | Indica se è stato ottenuto un percorso di clearance utilizzabile / Indica se è stato ottenuto un risultato di superamento utilizzabile |
cookies | dict | Mappa nome-valore / Dizionario dei cookie |
cf_clearance | str o None | Cookie di clearance Cloudflare quando presente |
user_agent | str o None | UA del browser usato per la sessione / UA della sessione |
error | str o None | Motivo dell'errore / Causa dell'errore |
method | str | Identificatore della strategia / Identificatore della soluzione |
File: proxy.txt (una voce per riga) / un proxy per riga:
127.0.0.1:7890
http://127.0.0.1:7890
socks5://127.0.0.1:1080
http://user:pass@host:port
La maggior parte dei proxy pubblici gratuiti non supporta in modo affidabile HTTPS CONNECT. Preferisci provider residenziali verificati o di alta qualità per la ricerca in produzione.
La stragrande maggioranza dei proxy pubblici gratuiti non supporta in modo stabile il tunneling HTTPS. Per ricerca e produzione, utilizza proxy residenziali verificati o di alta qualità.
I cookie vengono scritti in output/cookies/ quando il salvataggio è abilitato.
Quando il salvataggio è abilitato, i cookie vengono scritti in output/cookies/.
| Prefisso / Prefisso | Sorgente / Provenienza |
|---|---|
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 |
Esempio JSON / Esempio JSON
{
"url": "https://example.com",
"cookies": {
"cf_clearance": "..."
},
"user_agent": "Mozilla/5.0 ...",
"timestamp": "20260714_120000",
"method": "seleniumbase_uc"
}
cf_clearance è spesso legata a IP + User-Agent. Modificare uno dei due spesso richiede una nuova risoluzione.
cf_clearance è spesso associata a IP + User-Agent. La modifica di uno dei due richiede in genere una nuova risoluzione.
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)
Quale metodo dovrei usare per primo?
Quale soluzione usare per prima?
Inizia con bypass.py o bypass_cdp.py. Usa bypass_nodriver.py quando vuoi uno stack CDP senza chromedriver. Usa simple_bypass.py per batch/rotazione proxy. Non usare bypass_curl_cffi.py per Turnstile.
Dai priorità a bypass.py o bypass_cdp.py. Quando hai bisogno di CDP senza chromedriver usa bypass_nodriver.py. Per batch e rotazione proxy usa simple_bypass.py. Non usare bypass_curl_cffi.py per Turnstile.
Perché evitare la vera modalità headless?
Perché evitare il vero headless?
I profili headless di automazione sono più facili da fingerprintare. Su server Linux senza desktop, usa Xvfb / display virtuale (install_linux.sh, pyvirtualdisplay o SeleniumBase xvfb=True) invece di Chrome headless.
Le caratteristiche dell'headless di automazione sono più facili da identificare. Su Linux senza desktop, usa Xvfb / display virtuale invece del vero headless di Chrome.
Quanto dura cf_clearance?
Per quanto tempo è valida cf_clearance?
In genere da decine di minuti a diverse ore, a seconda delle policy del sito. Spesso è legata a IP e UA; i cambi di proxy spesso la invalidano.
In genere da decine di minuti a diverse ore, dipende dalle policy del sito; spesso è legata a IP e UA, dopo un cambio di proxy spesso è necessario risolverla di nuovo.
Errore Linux: X11 / display non riuscito
Linux segnala X11 / errore display
sudo bash install_linux.sh
# or / 或
sudo apt-get install -y xvfb
pip install pyvirtualdisplay
Il proxy non funziona
Proxy non disponibile
Verifica il supporto HTTPS CONNECT e l'autenticazione. Le liste pubbliche gratuite sono per lo più inutilizzabili per questo carico di lavoro.
Verifica che il proxy supporti HTTPS CONNECT e l'autenticazione. Le liste pubbliche gratuite sono per lo più inutilizzabili in questo scenario.
nodriver segnala OpenCV mancante
nodriver avvisa che manca OpenCV
pip install opencv-python-headless
Esiste un bypass universale?
Esiste una soluzione universale?
No. Le difese si evolvono continuamente. I risultati dipendono dalla configurazione del target, dalla reputazione dell'IP di uscita, dalla fedeltà del browser e dal timing. Questo toolkit non rivendica un successo universale.
No. Le difese continuano a evolversi. I risultati dipendono dalla configurazione del target, dalla reputazione dell'uscita, dalla fedeltà del browser e dal timing. Questo strumento non dichiara di superare tutto.
Sono benvenuti posizionamenti sponsorizzati, sviluppo personalizzato e consulenza tecnica.
Benvenuti a discutere sponsorizzazioni, sviluppo personalizzato e consulenza tecnica.
| Canale / Canale | Contatto / Contatti |
|---|---|
| WeChat / WeChat | 1837620622 (传康Kk) |
| Email / Email | [email protected] |
| Xianyu / Bilibili | 万能程序员 |
Contatta prima tramite WeChat e specifica Business / Collaborazione commerciale.
Contatta prima via WeChat e aggiungi una nota con «Collaborazione commerciale».
Il codice del repository è distribuito con la MIT License (vedi LICENSE).
nodriver è concesso in licenza AGPL-3.0. L'uso del Metodo 3 richiede il rispetto di tale licenza.
Il codice di questo repository è distribuito secondo la MIT License (vedi LICENSE).
nodriver è upstream AGPL-3.0. Quando usi la Soluzione 3 devi rispettarne la licenza.
Se questo progetto ti è utile, considera di mettere una stella al repository.
Se questo progetto ti è utile, sei il benvenuto a dare una stella come supporto.