소개
GoodbyeDPI는 Windows용 Deep Packet Inspection(DPI) 우회 유틸리티로, ValdikSS가 개발하여 GitHub에서 오픈소스로 제공됩니다. 이 프로그램은 인터넷 서비스 제공업체가 사용하는 DPI 시스템을 우회하여 특정 웹사이트에 대한 접근 차단을 해제하는 데 사용됩니다. 관리자 권한이 필요한 Windows 7, 8, 8.1, 10, 11에서 실행되며, WinDivert 드라이버를 활용해 패킷을 필터링하고 사용자 공간으로 리디렉션합니다. 콘솔 창이 열려 있는 동안 실행되며, 창을 닫으면 종료됩니다.
상세정보
수동형 DPI 우회
수동형 DPI는 광학 스플리터 또는 포트 미러링을 통해 트래픽을 복사하지만 차단하지는 않으며, 대상보다 빠르게 HTTP 302 리다이렉트 또는 TCP RST 패킷을 전송합니다. GoodbyeDPI는 이러한 패킷을 식별하고 차단하여 정상적인 연결이 유지되도록 합니다. IP 식별 필드가 0x0000 또는 0x0001인 패킷을 대상으로 하며, 이는 러시아 제공업체에서 흔히 관찰됩니다.
능동형 DPI 우회 (7가지 방법)
- 첫 번째 데이터 패킷에 대한 TCP 레벨 프래그먼테이션
- 지속적(keep-alive) HTTP 세션에 대한 TCP 레벨 프래그먼테이션
- Host 헤더를 hoSt로 대체
- Host 헤더 이름과 값 사이의 공백 제거
- HTTP 메서드(GET, POST 등)와 URI 사이의 추가 공백 삽입
- Host 헤더 값의 대소문자 혼합 (예: test.com → tEsT.cOm)
- 저 TTL 값, 잘못된 TCP 체크섬 또는 잘못된 TCP 시퀀스/확인 번호를 가진 가짜 HTTP/HTTPS 패킷 전송
이 방법들은 TCP 및 HTTP 표준과 완전히 호환되며, 대부분의 웹사이트를 손상시키지 않습니다. 다만, Host 헤더에 추가 공백을 삽입하는 방법은 일부 오래된 또는 비관용적인 서버에서 문제를 일으킬 수 있으나, HTTP/1.1 사양의 허용 범위 내에 있습니다.
모드셋 및 고급 옵션
프로그램은 사용 편의를 위해 사전 설정된 모드셋을 제공합니다:
- 레거시 모드셋 (-1~-4): 기본적인 우회 조합으로, 호환성을 중시하는 환경에 적합
- 현대적 모드셋 (-5~-9): –auto-ttl, –wrong-seq, –wrong-chksum, –reverse-frag, –max-payload 등을 결합하여 더 안정적이고 빠른 성능 제공, -9가 기본값
또한 다음과 같은 고급 옵션을 통해 세부 조정이 가능합니다:
- –dns-addr 및 –dns-port: UDP DNS 요청을 사용자 지정 IP 및 포트로 리디렉션 (예: Yandex DNS 77.88.8.8:1253)
- –blacklist: 특정 호스트 이름 목록에 대해서만 우회 작업 수행
- –set-ttl 및 –auto-ttl: 가짜 요청 모드에서 TTL 값 조절 (위험 동반, 신중 사용 권장)
- –native-frag 및 –reverse-frag: 패킷 분할을 통한 효율적인 프래그먼테이션, 윈도우 크기 축소 없음
- –max-payload: 큰 페이로드 패킷 처리 생략으로 CPU 사용량 감소 (예: 파일 전송 건너뛰기)
다운로드 및 설치 방법
공식 GitHub 저장소의 Releases 페이지에서 최신 버전의 ZIP 파일을 다운로드합니다. 다운로드 후 압축을 해제하면 goodbyedpi.exe 실행 파일과 함께 다양한 국가 및 사용 사례를 위한 .cmd 스크립트가 포함되어 있습니다.
- 러시아 사용자: 1_russia_blacklist_dnsredir.cmd 실행
- 기타 국가 사용자: 2_any_country_dnsredir.cmd 실행
이 스크립트들은 Yandex DNS를 사용한 DNS 리디렉션을 포함한 권장 모드로 프로그램을 실행합니다. 스크립트를 실행하면 콘솔 창이 열리며, 창이 열려 있는 동안 프로그램이 활성 상태를 유지합니다. 창을 닫으면 프로그램이 종료됩니다.
수동으로 실행하려면 압축 해제된 폴더에서 goodbyedpi.exe를 직접 실행할 수 있습니다. 옵션 없이 실행 시 기본 모드(-9)가 적용됩니다. 사용 가능한 모든 옵션을 보려면 goodbyedpi.exe -h 또는 goodbyedpi.exe --help 명령을 실행합니다.
기본 사용법
프로그램을 실행한 후에는 콘솔 창을 열어 두어야 합니다. 창을 최소화하거나 다른 작업으로 전환해도 계속 실행되며, 창을 닫으면 즉시 종료됩니다. Windows 서비스로 설치하려면 저장소에 포함된 service_install_*.cmd 스크립트를 참조하여 수정 후 사용할 수 있습니다.
작동 여부를 확인하려면 먼저 브라우저에서 DNS over HTTPS(DoH)를 활성화하여 ISP의 DNS 조작을 차단해야 합니다. 예를 들어 Chrome에서는 설정 → 개인정보 및 보안 → 보안 → Secure DNS → NextDNS 사용, Firefox에서는 설정 → 일반 → 네트워크 설정 → DNS over HTTPS 활성화 → NextDNS 선택 순으로 설정합니다. 그 후 goodbyedpi.exe를 옵션 없이 실행해 보고, 차단된 웹사이트에 정상적으로 접근할 수 있다면 성공입니다.
차단된 사이트 목록이 알려진 경우 –blacklist 옵션을 사용하여 해당 도메인에 대해서만 우회 작업을 수행할 수 있습니다. 예를 들어 goodbyedpi.exe --blacklist blocked_sites.txt와 같이 실행하면 지정된 파일에 있는 호스트 이름과 하위 도메인에 대해서만 패킷 조작이 이루어집니다.
지원 환경 및 시스템 요구사항
GoodbyeDPI는 Windows 7, 8, 8.1, 10, 11 (x64 아키텍처)에서 실행됩니다. 관리자 권한이 필수이며, 이는 WinDivert 드라이버를 로드하고 패킷 필터링을 설정하기 위해 필요합니다. Windows 7의 경우 오래된 버전에서는 SHA256 디지털 서명 지원이 부족하여 WinDivert 드라이버 로드가 실패할 수 있으므로, KB3033929 업데이트(x86 또는 x64)를 설치하거나 Windows Update를 통해 전체 시스템을 업데이트하는 것이 권장됩니다.
Intel/Killer 네트워크 카드의 경우 ‘Advanced Stream Detect’ 기능이 GoodbyeDPI와 호환되지 않으므로, Killer Control Center에서 해당 기능을 비활성화해야 합니다. 또한 QUIK 거래 소프트웨어는 먼저 실행한 후 GoodbyeDPI를 시작해야 간섭을 피할 수 있습니다.
최신 버전 및 업데이트
현재 최신 버전은 v0.2.2이며, 2026년 9월 9일에 마지막으로 업데이트되었습니다. 이 버전에서 현대적 모드셋(-5~-9)이 도입되어 –auto-ttl, –wrong-seq, –wrong-chksum, –reverse-frag, –max-payload 옵션을 결합한 더 안정적이고 빠른 우회 방식이 제공됩니다. 이전 버전(v0.1.7)에서 HTTPS 프래그먼테이션과 관련된 버그가 수정되어, 일부 SSL/TLS 스택에서 발생하던 연결 오류가 해결되었습니다.
제한 사항 및 확인 사항
- Windows 7에서 오래된 버전을 사용하는 경우 WinDivert 드라이버 로드 실패 가능성 → KB3033929 업데이트 또는 시스템 업데이트 필요
- Intel/Killer 네트워크 카드의 ‘Advanced Stream Detect’ 기능은 GoodbyeDPI와 호환되지 않음 → 비활성화 필요
- QUIK 거래 소프트웨어는 먼저 실행한 후 GoodbyeDPI를 시작해야 간섭 방지
- –set-ttl 및 –auto-ttl 옵션은 잘못된 TTL 값으로 웹사이트 접근 문제를 일으킬 수 있음 → –blacklist와 함께 사용하거나 신중하게 사용 권장
- 일부 네트워크 환경 또는 가상 머신에서는 –wrong-chksum 옵션이 작동하지 않을 수 있음
FAQ
- GoodbyeDPI는 무료인가요?
네, Apache-2.0 라이선스 하에 오픈소스로 제공되며, 무료로 사용 및 수정할 수 있습니다. - Windows만 지원하나요?
현재 공식적으로 지원되는 플랫폼은 Windows뿐입니다. 그러나 유사한 목적의 zapret, Green Tunnel 등 크로스플랫폼 대안이 존재합니다. - 인터넷 연결이 필요한가요?
프로그램 자체는 로컬에서 실행되지만, 우회하려는 대상 웹사이트에 접근하기 위해서는 활성 인터넷 연결이 필요합니다. - 관리자 권한 없이 실행할 수 있나요?
아니요, WinDivert 드라이버를 로드하고 패킷 필터를 설정하기 위해 관리자 권한이 필수입니다. - 어떤 언어로 작성되었나요?
주로 C 언어로 작성되었으며, 빌드에는 GNU Make과 mingw-w64가 사용됩니다.
시스템 요구사항
관리자 권한이 필요하며, Windows 7, 8, 8.1, 10 또는 11 운영체제에서 실행됩니다. WinDivert 드라이버 로드를 위해 Windows 7의 경우 KB3033929 업데이트가 필요할 수 있습니다.


