일반 소개
Shadowfetch는 개발자 tysak이 GitHub에서 유지 관리하고 AGPL v3 라이선스에 따라 릴리스한 Cloudflare Workers용 경량 오픈 소스 도구입니다. 이 도구는 Cloudflare Workers의 기본 가져오기 기능을 기본 TCP 소켓 요청 전달로 대체하며, 사용자에게 더 높은 수준의 개인 정보 보호를 제공하도록 설계되었습니다. 사용자 IP, 지리적 위치 등과 같은 민감한 정보가 유출될 수 있는 기본 제공 가져오기 대신, Shadowfetch는 불필요한 메타데이터와 헤더를 제거하여 요청 프로세스 중에 필요한 데이터만 전달되도록 보장합니다. 요청을 익명화해야 하는 프록시 서비스 등 개인정보 보호 요구사항이 높은 개발자나 애플리케이션에 적합합니다.
모든 종류의 대형 공장 API를 반전시키는 데 Cloudflare Workers를 사용하면 차단될 수 있는 이유는 이 솔루션이 주로 모든 종류의 대형 모델 API를 안전하고 활발하게 사용하는 데 사용되기 때문에 개인 정보를 침해할 수 있기 때문입니다.

기능 목록
- 개인정보 보호 요청 전달: Cloudflare가 기본적으로 추가하는 민감한 헤더(예: 사용자 IP 및 지리적 위치)를 제거합니다.
- 기본 TCP 소켓 지원직접 TCP 연결을 사용하여 내장 가져오기의 메타데이터 삽입을 우회합니다.
- 경량 설계리소스 소비를 줄이고 빠른 응답을 보장하며 빈도가 높은 요청 시나리오에 적합합니다.
- 구성 가능성대상 URL과 인증 토큰은 사용자가 정의할 수 있으므로 다양한 요구사항에 유연하게 적용할 수 있습니다.
- 오픈 소스 협업AGPL v3 라이선스에 따라 커뮤니티의 코드 기여와 최적화를 위한 제안을 환영합니다.
도움말 사용
Shadowfetch는 Cloudflare Workers 환경에서 실행되는 도구로, 설치 및 사용하려면 약간의 기술적 배경 지식이 필요합니다. 다음은 사용자가 빠르게 배포하고 시작하는 데 도움이 되는 자세한 설치 및 운영 가이드입니다.
설치 프로세스
Shadowfetch를 사용하려면 GitHub를 통한 소스 코드와 Cloudflare Workers에 배포해야 합니다. 단계는 다음과 같습니다:
1. 환경 준비하기
- 사전 조건::
- Cloudflare 계정에 등록하고 작업자 기능을 활성화했습니다.
- Node.js 및 npm(랭글러 도구용)을 설치합니다.
- Cloudflare용 랭글러 CLI 도구를 설치합니다:
npm install -g wrangler
- 랭글러에 로그인합니다:
wrangler login
2. Shadowfetch 소스 코드 가져오기
- Shadowfetch 저장소를 복제하거나 다운로드합니다:
git clone https://github.com/tysak/shadowfetch.git cd shadowfetch
- 如果项目没有提供独立的 `wrangler.toml` 文件,需手动创建:
```toml
name = "shadowfetch-worker"
type = "javascript"
account_id = "你的 Cloudflare Account ID"
workers_dev = true
3. 구성 코드
- 프로젝트에서 메인 스크립트 파일을 엽니다(일반적으로
index.js
)를 클릭하고 필요에 따라 구성을 수정합니다. 예를 들어const CONFIG = { AUTH_TOKEN: "your-auth-token", // 用于验证请求的令牌 DEFAULT_DST_URL: "https://example.com", // 默认目标地址 DEBUG_MODE: false, // 调试模式开关 };
- 구성이 완료되면 파일을 저장합니다.
4. Cloudflare Workers에 배포
- 배포할 프로젝트 디렉터리에서 다음 명령을 실행합니다:
wrangler publish
- 배포가 성공하면 Cloudflare는 작업자 URL을 반환합니다(예
https://shadowfetch.your-account.workers.dev
), 이 URL을 통해 서비스에 액세스할 수 있습니다.
5. 배포 검증
- 활용
curl
또는 브라우저 테스트 서비스:curl https://shadowfetch.your-account.workers.dev/image/https://example.com
- 대상 서버에 민감한 헤더(
cf-ipcountry
), 성공적인 배포를 나타냅니다.
사용 방법
섀도우페치의 핵심 기능은 워커를 통해 요청을 가로채 개인정보를 보호하는 방식으로 요청을 전달하는 것입니다. 작동 방식에 대한 자세한 내용은 다음과 같습니다:
기본 요청 전달
- 트리거 방법섀도페치는 경로 패턴을 기반으로 합니다(예
/image/https/...
)를 사용하여 요청을 가로챌 수 있습니다. 예를 들어curl https://shadowfetch.your-account.workers.dev/image/https://example.com
- 처리 흐름::
- 작업자가 요청을 받습니다.
- 섀도우페치는 모든 민감한 헤더(
cf-connecting-ip
). - TCP 소켓을 통해 대상 서버에 직접 연결(
https://example.com
). - 대상 서버의 응답을 반환합니다.
사용자 지정 대상 구성
- 코드에서 설정
DEFAULT_DST_URL
를 사용하면 대상을 지정하지 않은 모든 요청이 이 주소로 전달됩니다. 예를 들어const CONFIG = { DEFAULT_DST_URL: "https://api.example.com" };
- 재배포:
wrangler publish
인증 추가
- 액세스를 제한해야 하는 경우 다음과 같이 설정할 수 있습니다.
AUTH_TOKEN
. 클라이언트 요청은 헤더에 토큰을 포함해야 합니다:curl -H "Authorization: your-auth-token" https://shadowfetch.your-account.workers.dev/image/https://example.com
- 올바른 토큰을 포함하지 않는 요청은 거부됩니다.
주요 기능 작동
개인정보 보호
- 결과 보기섀도페치를 사용한 요청 헤더와 기본 페치를 사용한 요청 헤더를 비교합니다:
- 기본 가져오기:
cf-ipcountry: CN cf-connecting-ip: 1.2.3.4
- 섀도페치:
(仅保留必要头信息,如 Content-Type)
- 기본 가져오기:
- 작동 방법: 추가 구성이 필요하지 않으며 배포 후 자동으로 적용됩니다.
디버그 모드
- 사용 시작
DEBUG_MODE
자세한 로그 보기:const CONFIG = { DEBUG_MODE: true };
- 배포 후 작업자 로그에 액세스합니다:
wrangler tail
- 로그에는 요청 처리 세부 정보가 표시되므로 문제를 쉽게 해결할 수 있습니다.
사용 권장 사항
- 테스트 환경초기 배포에는 로컬 사용을 권장합니다.
wrangler dev
테스트:wrangler dev
- 코드 업데이트GitHub에서 주기적으로 최신 버전을 가져옵니다:
git pull origin main wrangler publish
- 커뮤니티 지원GitHub 이슈에 대한 피드백을 제출하거나 문제가 발생하면 코드에 기여하세요.
사용 예
1. HTTP 프록시
배포된 워커 주소 끝에 다음 형식의 대상 URL을 추가하기만 하면 됩니다:
https://你的_Cloudflare_Worker_域名/密码/https://目标网站/其他路径
예시입니다:
https://bequiet.pages.dev/fonts/https://destination.example.com/dns_query
해당 링크를 방문하면 요청이 다음 주소로 전달됩니다. https://destination.example.com/dns_query
더 이상 실제 IP가 노출되지 않습니다!
2. 웹소켓 프록시
웹소켓을 프록시하려면 대상 프로토콜을 wss://로 시작하는 프로토콜로 바꾸기만 하면 됩니다.
형식은 그대로 유지됩니다:
wss://你的_Cloudflare_Worker_域名/密码/wss://目标网站/其他路径
예시:
wss://bequiet.pages.dev/fonts/wss://destination.example.com/chatroom
클릭 한 번으로 바로 시작할 수 있습니다! wss://destination.example.com/chatroom
.
자주 묻는 질문
- 개인정보 보호에 shadowFetch가 더 나은 이유는 무엇인가요?
Cloudflare 자체의 다양한cf-
이는 대상 서버가 볼 때 요청이 "깨끗한 네이티브 TCP 연결"임을 의미합니다. 즉, 대상 서버가 보기에 귀하의 요청은 "깨끗한 네이티브 TCP 연결"입니다. - 로그를 보기 위해 디버깅을 사용 설정하려면 어떻게 하나요?
핸들이 있는 객체에 대한 분류기DEBUG_MODE
환경 변수가true
여기까지입니다. 작업자 로그에서 자세한 요청 및 응답 디버깅 정보를 확인할 수 있습니다. - 비밀번호로 기본 AUTH_TOKEN을 사용할 수 없나요?
환경 변수에서 "mySecret"과 같이 원하는 문자열로 변경할 수 있으며, 프록시가 성공하려면 링크가 동일한 "mySecret"을 따라야 합니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...