
Cloudflare Turnstile 우회 도구 | SeleniumBase UC Mode 기반 Cloudflare 우회 도구 | Mac/Windows/Linux 지원
macOS, Windows, Linux에서 Cloudflare Turnstile / Challenge 흐름을 연구·테스트하기 위한 다중 전략 도구 키트입니다.
Cloudflare Turnstile / Challenge 대상의 다중 전략 연구·승인 테스트 도구 모음으로, Mac / Windows / Linux를 지원합니다.
| English | 中文 |
|---|---|
| 면책 조항 | 면책 조항 |
| 프로젝트 개요 | 프로젝트 개요 |
| 방법 비교 | 방법 비교 |
| 주요 기능 | 주요 기능 |
| 환경 요구 사항 | 환경 요구 사항 |
| 설치 | 설치 |
| 빠른 시작 | 빠른 시작 |
| 사용 방법 | 사용 방법 |
| Python API | Python API |
| 프록시 형식 | 프록시 형식 |
| 출력 | 출력 |
| 프로젝트 구조 | 프로젝트 구조 |
| FAQ | FAQ |
| 참고 자료 | 참고 자료 |
English
이 프로젝트는 교육 목적의 연구 및 승인된 자동화 테스트용으로만 제공됩니다. 관련 법률과 대상 웹사이트의 서비스 이용약관을 반드시 준수해야 합니다.
中文
이 프로젝트는 학습·연구 및 사전 승인된 자동화 테스트 용도로만 제공됩니다. 사용 시 현지 법률·규정과 대상 사이트의 서비스 약관을 준수해야 합니다.
English
2025~2026년 Cloudflare 방어 체계는 다층적입니다. 네트워크 평판, TLS/HTTP 핑거프린팅, JavaScript Challenge, Turnstile 상호작용, 자동화 프로토콜 신호가 결합되어 있습니다. 단일 HTTP 클라이언트만으로는 Turnstile을 해결할 수 없습니다.
이 저장소는 5가지 실행 가능한 전략과 1개의 클래스 기반 래퍼를 제공하므로, 단일 세션 연구, 배치 작업, 순수 CDP 제어, 이미 해결된 세션의 TLS 계층 재사용 등 상황에 맞는 경로를 선택할 수 있습니다.
권장 기준 구성(오픈소스 기반):
Headed real Chrome
+ optional residential / high-quality egress IP
+ UC reconnect or pure CDP
+ OS-level captcha click when interaction is required
Turnstile 주 경로로는 권장하지 않는 구성:
True headless hard-target Managed Turnstile
Pure curl_cffi / tls-client against Turnstile
playwright-stealth alone as a “one-click” solution
中文
2025~2026년 Cloudflare 탐지는 다층 구조로 진화했습니다. 네트워크 평판, TLS/HTTP 핑거프린트, JS Challenge, Turnstile 상호작용, 자동화 프로토콜 특징이 결합되어 있습니다. HTTP 클라이언트만으로는 Turnstile을 완료할 수 없습니다.
이 저장소는 5가지 실행 가능한 전략과 1개의 클래스 래퍼 진입점을 제공하여, 단일 세션 연구, 배치 작업, 순수 CDP 제어, 브라우저 통과 후 TLS 계층 세션 재사용을 모두 지원합니다.
오픈소스 환경에서 더 안정적인 기준 구성:
有头真实 Chrome
+ 可选住宅或高质量出口 IP
+ UC 断连重连 或 纯 CDP
+ 需要交互时使用操作系统级点击
Turnstile 주 경로로 권장하지 않는 구성:
真无头模式硬刚 Managed Turnstile
纯 curl_cffi / tls-client 直打 Turnstile
单独依赖 playwright-stealth 作为“一键方案”
| 제한 사항 | 설명 |
|---|---|
| JS 런타임 없음 | Turnstile / 최신 Challenge PoW를 완료할 수 없음 |
| DOM / Web API 없음 | navigator, WebGL, canvas 신호가 없음 |
| 상호작용 없음 | Managed 모드는 실제 체크박스 클릭이 필요 |
| TLS는 신호 중 하나일 뿐 | JA3/JA4 매칭만으로는 충분하지 않음 |
| 항목 | 요구 사항 |
|---|---|
| Python | 3.9+ |
Python 패키지는 requirements.txt에 명시되어 있습니다(SeleniumBase, nodriver, curl_cffi, OpenCV headless, pyvirtualdisplay 등).
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을 설치하세요.
브라우저 전략 실행 전에 먼저 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 패키지는 기본적으로 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을 테스트 권한이 있는 대상 URL로 바꾸세요.
예시 URL을 테스트 권한이 있는 대상 주소로 바꾸세요.
bypass.py (기본)SeleniumBase UC Mode를 통한 단일 Chrome 세션: uc_open_with_reconnect + uc_gui_click_captcha / uc_gui_handle_captcha.
단일 브라우저 UC 모드: 연결을 끊고 페이지를 연 뒤, 챌린지가 감지되면 OS 수준 클릭을 수행합니다.
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다중 프록시 또는 다중 브라우저 배치에 적합합니다. OS 수준 GUI 클릭은 한 데스크톱에서 멀티 윈도우에 안전하지 않습니다. 병렬 워커가 마우스를 놓고 경합할 수 있습니다.
다중 프록시·다중 브라우저 배치 처리에 적합합니다. OS 수준 클릭은 같은 데스크톱에서 멀티 윈도우 안전성을 보장하지 않으며, 병렬 실행 시 서로 간섭할 수 있습니다.
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.pychromedriver 없이 동작하는 CDP 제어입니다. 챌린지 클릭은 verify_cf()(OpenCV 템플릿 매칭)를 사용합니다. 상위 프로젝트 라이선스는 AGPL-3.0입니다.
chromedriver 없는 CDP 제어를 제공합니다. 챌린지 클릭은 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 구성 요소의 상업적·폐쇄 소스 재배포에는 별도의 라이선스 준수 검토가 필요합니다.
폐쇄 소스 상업 배포 시 AGPL 구성 요소에 대한 자체 규정 준수 평가를 먼저 완료하세요.
bypass_curl_cffi.py (Turnstile 전용 아님)HTTP/TLS 핑거프린트 위장 전용입니다. 저강도 또는 구형 Challenge에 적합하며, User-Agent와 출발 IP가 일치하는 경우 브라우저 솔버가 획득한 쿠키를 재사용하는 데도 사용할 수 있습니다.
HTTP/TLS 핑거프린트 위장 전용입니다. 낮은 보안 수준 또는 구형 Challenge에 적합하며, UA와 출발 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()로 폴백합니다. 2026년에는 UC Mode와 함께 선호되는 업그레이드 경로입니다.
SeleniumBase CDP 모드: solve_captcha()를 우선 사용하고, 실패하면 gui_click_captcha()로 대체합니다. 2026년에는 UC Mode와 함께 권장되는 업그레이드 경로입니다.
python bypass_cdp.py https://example.com
python bypass_cdp.py https://example.com -p http://127.0.0.1:7890 -t 90
| 인자 | 설명 | 기본값 |
|---|---|---|
-p, --proxy |
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를 안정적으로 지원하지 않습니다. 실제 연구 환경에서는 검증된 리지덴셜 또는 고품질 프록시 제공업체를 사용하세요.
대부분의 무료 공개 프록시는 HTTPS 터널을 안정적으로 지원하지 못합니다. 연구·프로덕션 환경에서는 검증된 리지덴셜 또는 고품질 프록시를 사용하세요.
저장이 활성화되면 쿠키는 output/cookies/ 아래에 기록됩니다.
저장을 켜면 쿠키가 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에 바인딩되는 경우가 많습니다. 둘 중 하나라도 바뀌면 보통 새로 풀어야 합니다.
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부터 시작하세요. chromedriver가 필요 없는 CDP 스택을 원하면 bypass_nodriver.py를 사용하세요. 배치·프록시 순환에는 simple_bypass.py를 사용하세요. Turnstile에는 bypass_curl_cffi.py를 사용하지 마세요.
bypass.py 또는 bypass_cdp.py를 우선 사용하세요. chromedriver 없는 CDP가 필요하면 bypass_nodriver.py를, 배치와 프록시 순환에는 simple_bypass.py를 사용하세요. Turnstile에는 bypass_curl_cffi.py를 사용하지 마세요.
진짜 헤드리스 모드를 피해야 하는 이유는 무엇인가요?
왜 진짜 헤드리스 모드를 피하나요?
자동화 헤드리스 프로필은 핑거프린팅되기 쉽습니다. 데스크톱이 없는 Linux 서버에서는 Chrome 헤드리스 대신 Xvfb / 가상 디스플레이(install_linux.sh, pyvirtualdisplay 또는 SeleniumBase xvfb=True)를 사용하세요.
헤드리스 자동화는 특징이 더 쉽게 탐지됩니다. 데스크톱이 없는 Linux에서는 Chrome 진짜 헤드리스 대신 Xvfb / 가상 디스플레이를 사용하세요.
cf_clearance는 얼마나 오래 유지되나요?
cf_clearance 유효 기간은?
일반적으로 사이트 정책에 따라 수십 분에서 수 시간입니다. IP와 UA에 묶여 있는 경우가 많아 프록시를 변경하면 무효화되는 일이 잦습니다.
보통 수십 분에서 수 시간이며 사이트 정책에 따라 다릅니다. IP·UA와 바인딩되는 경우가 많아 프록시를 바꾼 뒤에는 대개 다시 풀어야 합니다.
Linux 오류: X11 / display 실패
Linux에 X11 / display 오류가 발생합니다
sudo bash install_linux.sh
# or / 或
sudo apt-get install -y xvfb
pip install pyvirtualdisplay
프록시가 작동하지 않습니다
프록시를 사용할 수 없습니다
HTTPS CONNECT 지원과 인증을 확인하세요. 공개 무료 프록시 목록은 대부분 이 작업에 사용할 수 없습니다.
프록시가 HTTPS CONNECT와 인증을 지원하는지 확인하세요. 공개 무료 목록은 이 시나리오에 대부분 적합하지 않습니다.
nodriver가 OpenCV 누락을 보고합니다
nodriver에 OpenCV 부재 경고가 나타납니다
pip install opencv-python-headless
범용 우회 방법이 있나요?
통과율 100%의 해법이 존재하나요?
없습니다. 방어 체계는 계속해서 진화합니다. 결과는 대상 구성, 출발 IP 평판, 브라우저 구현 충실도, 시점에 따라 달라집니다. 이 도구 키트는 보편적 성공을 주장하지 않습니다.
없습니다. 방어는 계속 진화합니다. 결과는 대상 구성, 출발 IP 평판, 브라우저 구현도, 시점에 따라 달라집니다. 이 도구는 범용 통과를 주장하지 않습니다.
스폰서십 게재, 맞춤 개발, 기술 컨설팅을 환영합니다.
스폰서 노출, 맞춤 개발, 기술 컨설팅 협의를 환영합니다.
| 채널 | 연락처 |
|---|---|
| WeChat / 위챗 | 1837620622 (传康Kk) |
| 이메일 | [email protected] |
| Xianyu / Bilibili | 万能程序员 |
먼저 WeChat으로 연락 주시고 Business / 商务合作이라고 표기해 주세요.
LICENSE 참조).LICENSE 참조)로 배포됩니다.이 프로젝트가 도움이 된다면 저장소에 Star를 눌러 주세요.
이 프로젝트가 도움이 되었다면 Star로 응원해 주세요.
| 비즈니스 | 비즈니스 |
| 라이선스 | 라이선스 |
| # | Script | 전략 | Turnstile | 적합한 용도 |
|---|
| 1 | bypass.py | SeleniumBase UC Mode | Yes | 기본 단일 세션 경로 |
| 2 | simple_bypass.py | UC + 병렬 / 프록시 순환 | Yes | 배치 작업; 병렬 실행 시 시스템 마우스 경합 가능 |
| 3 | bypass_nodriver.py | nodriver 순수 CDP | Yes | chromedriver 불필요 CDP; OpenCV 필요; AGPL-3.0 유의 |
| 4 | bypass_curl_cffi.py | TLS 핑거프린트 / 쿠키 재사용 | No | 구형 JS Challenge 또는 해결 후 쿠키 재사용 전용 |
| 5 | bypass_cdp.py | SeleniumBase CDP Mode | Yes | 일반 UC의 2026년 후속 경로 |
| — | bypass_seleniumbase.py | UC 클래스 래퍼 | Yes | 2차 개발용 임베드 가능 API |
| 우선순위 | 선택 | 비고 |
|---|
| 1 | bypass.py 또는 bypass_cdp.py | 기본 연구 진입점 |
| 2 | bypass_nodriver.py | 강력한 CDP 대안; 라이선스 확인 필요 |
| 3 | simple_bypass.py | 처리량·순환; GUI 클릭은 필요한 경우 직렬화 |
| 4 | 브라우저 해결 후 curl_cffi 재사용 | UA와 출발 IP를 동일하게 유지해야 함 |
| 지양 | Turnstile 대상 순수 HTTP | JS 실행·상호작용 불가 |
| 기능 | 설명 |
|---|
| SeleniumBase UC Mode | 드라이버 연결 해제·재연결 + OS 수준 캡차 클릭 |
| SeleniumBase CDP Mode | WebDriver 부착 신호를 줄인 순수 CDP 경로 |
| nodriver CDP | chromedriver 불필요; verify_cf() 템플릿 클릭 (OpenCV) |
| 병렬 / 프록시 순환 | simple_bypass.py의 배치 워커 및 프록시 파일 순환 |
| 제한 시간 제어 | 주요 흐름에 대한 종단 간 타임아웃 |
| 쿠키 내보내기 | 해당 시 JSON 및 Netscape 형식 |
| 크로스 플랫폼 | macOS, Windows, Linux (헤드리스 호스트의 Linux는 Xvfb 필요) |
| 브라우저 | Google Chrome (amd64가 아닌 Linux에서는 Chromium) |
| 디스플레이 | 유헤드 GUI 권장; Linux 서버: Xvfb / 가상 디스플레이 |
| OS | macOS, Windows, Linux |
| 선택 프록시 | HTTPS CONNECT가 동작하는 HTTP / HTTPS / SOCKS5 |
| 인자 | 설명 | 기본값 |
|---|
url | 대상 URL | 필수 |
-p, --proxy | 프록시 URL | 없음 |
-t, --timeout | 전체 타임아웃(초) | 60 |
-r, --reconnect | 재연결 전 연결 해제 시간(초) | 5 |
--incognito | 시크릿 모드 | off |
--no-save | 쿠키 저장 안 함 | off |
| 인자 | 설명 | 기본값 |
|---|
-p, --proxy | 고정 프록시 | 없음 |
-f, --proxy-file | 프록시 목록 파일 | proxy.txt |
-r, --rotate | 순차 프록시 순환 | off |
-P, --parallel | 병렬 브라우저 | off |
-b, --batch | 배치당 브라우저 수 | 3 |
-t, --timeout | 타임아웃(초) | 60 |
-n, --retries | 최대 배치 수 또는 프록시 시도 횟수 | 3 |
-c, --check-proxy | 프록시 가용성 사전 점검 | off |
-w, --wait | 페이지 대기 / 재연결 대기 시간 | 5 |
--no-save | 쿠키 저장 안 함 | off |
| 인자 | 설명 | 기본값 |
|---|
-p, --proxy | 프록시 URL | 없음 |
-t, --timeout | 전체 타임아웃 | 60 |
--headless | 헤드리스(권장하지 않음) | off |
--no-save | 쿠키 저장 안 함 | off |
| 인자 | 설명 | 기본값 |
|---|
-p, --proxy | 프록시 URL | 없음 |
-f, --fingerprint | 위장 프로필 | chrome136 |
-t, --timeout | 요청 타임아웃 | 30 |
-n, --retries | 재시도 횟수 | 3 |
--no-save | 쿠키 저장 안 함 | off |
| 프록시 URL |
| 없음 |
-t, --timeout | 전체 타임아웃 예산 | 60 |
--no-save | 쿠키 저장 안 함 | off |
| 필드 | 유형 | 의미 |
|---|
success | bool | 사용 가능한 통과 경로 확보 여부 |
cookies | dict | 이름-값 매핑 딕셔너리 |
cf_clearance | str 또는 None | 존재 시 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 |