Camoufox 프록시와 GeoIP: 당신의 종료 IP는 지문입니다

Geoip를 켜면 Camoufox는 프록시의 종료 IP에서 시간대, 로케일, 좌표 및 위조된 WebRTC 주소를 유도합니다. 잘못된 레이블의 프록시는 프록시가 없는 것보다 더 눈에 띕니다.

대부분의 Camoufox 프록시 튜토리얼은 proxygeoip=True를 설정하는 두 줄에서 멈춥니다. 그 결과는 아무도 적지 않는 것입니다: geoip가 활성화되면 Camoufox는 프록시의 종료 IP에서 시간대, 로케일, 위도, 경도 및 위조된 WebRTC 주소를 유도합니다. 프록시는 네트워크 홉이 아니라 전체 정체성의 진실의 원천이 됩니다. 잘못된 레이블이나 재활용된 종료를 제공하면 Camoufox는 거짓 주위에 완벽하게 일관된 지문을 구축합니다 — 전혀 위조하지 않는 것보다 더 강력한 신호입니다. 여기에 설정, 사람들이 Google에 붙여넣는 오류, SOCKS5 격차, 그리고 종료를 먼저 확인하는 방법이 있습니다.

Geoip가 실제로 당신의 프록시에서 유도하는 것

Camoufox는 Playwright의 Python API를 감싸는 안티 디텍트 Firefox 빌드로, 프록시 구성은 Playwright 모양입니다. 지오 레이어가 그것을 다르게 만드는 것입니다. 프로젝트 문서에 따르면, geoip=True (또는 대상 IP 주소)는 Camoufox가 대상 IP의 경도, 위도, 시간대, 국가 및 로케일을 사용하고 WebRTC IP 주소를 위조하게 만듭니다 — 그런 다음 더 나아가 그 지역의 언어 사용자 분포에서 브라우저 언어를 계산하여 국가의 공식 언어로 기본 설정하지 않습니다. 조회는 선택적 추가로 제공되는 MaxMind 형식 데이터베이스에 대해 실행됩니다:

pip install -U "camoufox[geoip]"
python -m camoufox fetch

[geoip] 추가는 포장 의미에서만 선택 사항입니다 — 문서는 프록시를 사용하는 경우 강력히 권장한다고 언급하며, 이는 과소평가된 것입니다. 그것 없이는 IP가 다른 국가에 있다고 주장하는 동안 호스트 머신의 시간대와 로케일에서 실행되는 스텔스 브라우저를 얻습니다. 여기 인증된 HTTP 게이트웨이와 함께 최소한의 작동 설정이 있습니다:

from camoufox.sync_api import Camoufox

with Camoufox(
    geoip=True,
    humanize=True,          # cursor movement, not a fingerprint setting
    headless=False,
    proxy={
        "server": "http://gate.quantumproxies.io:PORT",
        "username": "USER",
        "password": "PASS",
    },
) as browser:
    page = browser.new_page()
    page.goto("https://httpbin.org/ip")
    print(page.text_content("body"))   # should be the exit IP, not yours

proxy dict의 모양을 주목하세요: 자격 증명은 server URL 내부가 아닌 별도의 usernamepassword 필드에 들어갑니다. 이는 Playwright에서 상속되었으며, 인증된 프록시가 여기서 고통 없이 작동하는 이유입니다 — 확장 쉼, 해제할 인증 대화 상자가 없습니다. 비동기 API는 AsyncCamoufox를 통해 동일합니다. 다른 스텔스 스택과 비교하는 방법은 안티 디텍트 프레임워크 전반의 인증된 프록시 지원 지도를 참조하세요.

잘못된 프록시가 당신을 드러내는 이유

안티 봇 시스템은 단일 잘못된 값을 찾지 않습니다. 그들은 모순을 찾습니다 — 동일한 인간에 대해 둘 다 참일 수 없는 두 신호. IP가 오하이오로 지리적 위치를 설정한 브라우저가 Europe/Rome을 보고하는 것이 그 예입니다. Camoufox의 geoip 기능은 이러한 모순을 제거하기 위해 존재하며, 그 일을 잘 수행합니다. 문제는 항상 IP에 유리하게 모순을 해결한다는 것입니다. 데이터베이스가 당신의 종료가 독일에 있다고 말하지만 주소가 인터넷의 절반이 이미 프록시로 플래그된 재활용된 데이터 센터 범위라면, Camoufox는 당신의 브라우저를 독일 가정 사용자로 꾸미게 됩니다, 독일 가정 사용자가 사용한 적이 없는 ASN에 앉아 있는.

이는 종료 품질을 차단 문제뿐만 아니라 지문 문제로 만듭니다. 두 가지 확인이 모든 실행에 포함되어야 합니다: 종료의 실제 ASN과 국가, 그리고 IP가 이미 사기 또는 프록시 점수를 가지고 있는지 여부. 우리의 무료 IP 품질 검사기는 둘 다 답변하며, 200개 이상의 국가에서 실제 ISP 범위의 주거 프록시는 파생된 정체성을 전혀 그럴듯하게 만드는 것입니다. 그것은 여전히 아래 레이어에서 면제되지 않습니다 — 엔진은 여전히 TLS 핸드셰이크를 방출하며, JA3/JA4 지문은 위조된 값이 전송되기 전에 그것을 읽습니다.

주거 종료 IP가 Camoufox geoip 조회를 공급하는 흐름 다이어그램, 이는 시간대, 로케일, 좌표 및 WebRTC 주소를 유도한 후 지문이 주입됩니다.
Geoip가 켜져 있으면 하나의 입력에서 다섯 가지 정체성 신호가 계산됩니다: 종료 IP. 그 입력을 잘못 선택하면 전체 체인이 일관되게 잘못됩니다.

실제로 발생할 Camoufox 프록시 오류

세 가지 실패가 이슈 트래커를 지배하며, 그 중 어느 것도 당신의 자격 증명이 잘못되었다는 것을 의미하지 않습니다:

첫 번째와 세 번째 경우에 대한 깨끗한 해결책은 문서화되어 있지만 사용되지 않습니다: geoipTrue뿐만 아니라 IP 주소를 허용합니다. 동일한 프록시를 통해 종료를 직접 해결한 다음 Camoufox에 답을 제공하세요. 내부 조회를 완전히 건너뛰고, 보너스로 각 세션이 실행된 종료를 기록할 수 있습니다:

import requests
from camoufox.sync_api import Camoufox

HOST = "gate.quantumproxies.io:PORT"
USER, PASS = "USER-session-a1b2", "PASS"     # sticky session id in the username

PROXY = {"server": f"http://{HOST}", "username": USER, "password": PASS}
url = f"http://{USER}:{PASS}@{HOST}"          # percent-encode odd characters

# 1) resolve the exit through the same gateway and session
exit_ip = requests.get(
    "https://api.ipify.org", proxies={"http": url, "https": url}, timeout=15
).text.strip()

# 2) hand Camoufox the address instead of letting it discover one
with Camoufox(geoip=exit_ip, proxy=PROXY, humanize=True) as browser:
    page = browser.new_page()
    page.goto("https://browserscan.net")
    print("session exit:", exit_ip)

두 가지 세부 사항이 중요합니다. 고정 세션을 사용하여 1단계에서 해결된 IP가 2단계에서도 여전히 종료가 되도록 하세요 — 요청당 회전에서는 서로 다른 주소이며, 파생된 지오는 첫 페이지 로드부터 잘못됩니다. @, : 또는 #를 포함하는 자격 증명을 퍼센트 인코딩하세요: dict 형식은 면역이지만 URL 형식은 그렇지 않습니다.

Camoufox와 SOCKS5: WebRTC 및 인증 격차

SOCKS5는 Camoufox 사용자가 막히는 곳이며, 그 이유는 기능 누락보다 더 흥미롭습니다. 이슈 #368은 정확히 그것을 설명합니다: UDP를 전달하는 프록시가 없으면 WebRTC가 당신을 노출할 수 있습니다. WebRTC는 UDP를 통해 협상하며, HTTP 프록시는 TCP 전용이며, SOCKS5는 UDP 연결 모드를 가진 일반적인 프로토콜 중 하나입니다 — 사람들이 여기서 그것을 원하는 이유입니다. Camoufox의 대답은 미디어 경로를 라우팅하는 대신 geoip 데이터에서 WebRTC 주소를 위조하는 것이며, 이는 일반적인 누출을 커버합니다. block_webrtc 옵션은 WebRTC가 비활성화된 브라우저처럼 보이는 대가로 표면을 완전히 제거합니다.

인증된 SOCKS5는 더 어려운 격차입니다. 토론 #334는 트릭을 요청하는 사용자와 로그인 및 비밀번호가 있는 SOCKS5 엔드포인트로 브라우저 트래픽을 전달하기 위해 로컬 프록시 서버를 실행하는 것이 유일하게 작동한 것이라고 보고합니다. 그것은 여전히 현재의 상태이며, 당신에게 세 가지 옵션을 남깁니다, 선호도 순서로:

IP 화이트리스트를 사용한 SOCKS5 엔드포인트 얻기

검증된 주거 종료에 기반한 일관된 Camoufox 정체성과 잘못된 레이블의 프록시로부터의 모순된 신호를 비교하는 체크리스트
실패 모드는 누락된 값이 아닙니다. 그것은 그 뒤의 IP와 일치하지 않는 확신에 찬 값입니다.

Geoip를 신뢰하기 전에 사전 비행 체크리스트

자주 묻는 질문

Camoufox에서 프록시를 어떻게 설정하나요?

Playwright 스타일의 dict를 Camoufox() 생성자에 전달하세요: proxy={"server": "http://host:port", "username": "USER", "password": "PASS"}. 자격 증명은 서버 URL이 아닌 별도의 필드에 속합니다. geoip=True를 함께 추가하여 시간대, 로케일 및 좌표가 호스트 머신 대신 해당 종료에서 유도되도록 하세요.

Camoufox는 SOCKS5 프록시를 지원하나요?

프록시 dict는 socks5:// 서버를 수용하지만, 인증된 SOCKS5는 알려진 문제점입니다 — 토론 #334는 로컬 릴레이를 유일한 신뢰할 수 있는 경로로 보고하며, 전체 SOCKS5 지원은 여전히 열려 있는 개선 요청입니다 (#368). 실질적인 수정은 IP 화이트리스트로, 자격 증명 요구를 완전히 제거하거나 게이트웨이의 HTTP 포트를 사용하는 것입니다.

Camoufox에서 geoip=True는 무엇을 하나요?

MaxMind 형식 데이터베이스에서 종료 IP를 조회하고 결과를 사용하여 브라우저의 경도, 위도, 시간대, 국가 및 로케일을 설정하고 WebRTC 주소를 위조하며, 해당 지역에 대한 그럴듯한 언어를 선택합니다. camoufox[geoip] 추가가 설치되어야 합니다. 자체 발견 단계를 건너뛰려면 True 대신 IP 문자열을 전달할 수도 있습니다.

왜 InvalidProxy: Failed to connect to proxy 오류가 발생하나요?

Geoip 사전 검사가 프록시를 통해 공용 IP API에 도달할 수 없기 때문입니다. 이러한 엔드포인트는 HTTPS이므로 프록시는 CONNECT 터널링을 지원해야 합니다; 평범한 HTTP만 전달하는 게이트웨이는 여기서 실패하며 다른 곳에서는 작동하는 것처럼 보입니다. 동일한 프록시를 통해 HTTPS 요청으로 테스트하거나 종료를 직접 해결하고 geoip="1.2.3.4"로 전달하세요.

Camoufox의 geoip 옵션은 네트워크와 브라우저가 일치하도록 하는 지문 일관성의 가장 어려운 부분을 자동으로 해결하는 조건으로 IP 품질에 돈을 쓰는 것이 더 많은 회피 코드에 돈을 쓰는 것보다 낫다는 생태계에서 최고의 논거입니다. 먼저 종료를 구매한 다음 geoip를 켜세요. Firefox 대신 Chromium이 필요하다면, 동일한 규율이 우리의 Patchright 프록시 설정 가이드로 이어집니다. 이는 기술적 지침이지 법적 조언이 아닙니다: 법과 대상의 조건 내에서 스크랩하세요.

검증된 주거 종료에서 Camoufox 실행