geoip.dat·geosite.dat 업데이트 방법 | 라우팅 규칙 데이터베이스 가이드

GeoIP·GeoSite 규칙 데이터베이스의 차이와 클라이언트에서 업데이트하는 방법, geosite:cn·geoip:private 규칙 작성법을 알아봅니다.

이 글의 핵심 내용

중국 본토 사이트의 트래픽이 예상과 다른 경로로 나가거나 업데이트 후 규칙 카테고리를 찾을 수 없다는 메시지가 표시된다면, 먼저 데이터베이스와 라우팅 규칙, 구독의 역할부터 구분해야 합니다. 이 글에서는 파일 확인, 리소스 업데이트, 규칙 점검, 결과 검증 순서로 v2rayN에서 Xray 또는 V2Fly 코어를 사용할 때 Geo 데이터를 관리하는 방법을 안내합니다. 이해하기 쉬운 라우팅 설정 예시와 문제 해결 방법도 함께 살펴봅니다.

GeoIP와 GeoSite: IP 주소와 도메인 분류

geoip.dat에는 국가·지역 또는 특수 용도별 IP 대역이 저장되고, geosite.dat에는 지역·서비스·용도별 도메인 규칙이 저장됩니다. 두 파일은 코어가 읽는 바이너리 데이터로, 노드 목록도 아니고 텍스트 편집기로 바로 수정할 수 있는 JSON 설정 파일도 아닙니다.

항목geoip.datgeosite.dat
매칭 대상대상 IP 주소대상 도메인
주요 참조 위치geoip:cn、geoip:privategeosite:cn
설정 필드라우팅 규칙의 ip라우팅 규칙의 domain
주요 용도IP 대역에 따른 라우팅 및 사설 주소 처리도메인 유형에 따른 라우팅

geosite:cn은 현재 도메인 데이터베이스의 cn 카테고리를 참조한다는 뜻이지, .cn으로 끝나는 모든 도메인을 의미하지는 않습니다. 마찬가지로 geoip:cn은 데이터베이스에 기록된 IP 대역 모음이며, 웹사이트의 언어나 서비스 제공자를 판별하는 기준이 아닙니다. 중국어 사이트가 해외 CDN을 사용할 수도 있고, 글로벌 서비스가 중국 본토 IP로 연결될 수도 있습니다.

파일 2개
IP와 도메인 분류를 각각 제공
규칙 3개
아래 예시에서 순서대로 매칭
10808
이후 테스트에서 사용할 로컬 SOCKS 포트 예시

v2rayN은 구독을 관리하고 설정을 생성해 코어를 실행하는 데스크톱 클라이언트입니다. 실제로 규칙을 읽는 것은 코어입니다. 이 글의 DAT 사용법은 해당 Geo 데이터 방식을 지원하는 Xray 및 V2Fly 설정에 적용됩니다. Android용 v2rayNG는 Xray를, v2flyNG는 V2Fly를 사용하지만 메뉴와 파일 저장 방식이 다르므로 데스크톱 절차를 그대로 적용할 수는 없습니다.

업데이트 전에 구분할 항목: 구독, 라우팅 규칙, Geo 데이터

구독을 업데이트하면 주로 서버 주소, 포트, 프로토콜 매개변수와 노드 목록이 바뀝니다. Geo 파일 업데이트는 분류 데이터를 바꾸고, 라우팅 규칙 수정은 각 카테고리의 트래픽이 어느 출구를 이용할지 결정합니다. 이 셋은 서로 다른 작업입니다. 구독을 업데이트했다고 해서 geosite.dat까지 새로 고쳐지는 것은 아니며, 데이터베이스를 교체해도 직결 규칙이 자동으로 추가되지는 않습니다.

클라이언트에서 업데이트

권장

v2rayN의 Geo 파일 업데이트 메뉴를 우선 사용하세요. 클라이언트에 설정된 리소스 주소에서 데이터를 내려받아 저장할 수 있습니다. 업데이트 후 설정을 다시 불러오고 로그에서 실제로 어떤 파일을 사용하는지 확인하세요.

권장 상황: 평소 유지 관리, 클라이언트의 기존 리소스 설정 사용

파일 직접 교체

실행 중인 코어의 리소스 디렉터리를 먼저 찾은 뒤 기존 파일을 백업하고 교체하세요. 출처와 카테고리 구성, 파일 권한을 직접 확인해야 하며 파일 이름만으로 호환 여부를 판단하면 안 됩니다.

권장 상황: 오프라인 유지 관리, 클라이언트 내장 업데이트가 실패한 경우의 선택적 복구

구독만 업데이트

서버 연결 정보를 새로 고칠 때 사용하는 기능입니다. 노드 상태가 바뀌었다면 업데이트해야 하지만, Geo 카테고리 누락이나 로컬 라우팅 순서를 해결하는 방법으로 사용해서는 안 됩니다.

권장 상황: 노드 주소 변경, 구독 요금제 구성 변경

요점: 출처를 기록한 뒤 업데이트하세요

업데이트 전에 현재 코어, Geo 리소스 주소, 사용자 지정 카테고리 이름을 기록하세요. 추가 카테고리에 의존하는 규칙이 있다면 업데이트 후 해당 카테고리가 여전히 있는지 확인한 뒤 평소처럼 사용하세요.

데이터를 관리하는 프로젝트가 달라도 모두 geosite.dat를 제공할 수 있지만, 포함된 카테고리는 서로 다를 수 있습니다. 어떤 데이터베이스에서 cn을 인식한다고 해서 라우팅 템플릿이 참조하는 다른 카테고리도 제공된다는 뜻은 아닙니다. 출처를 바꿀 때는 파일 다운로드 가능 여부와 카테고리 존재 여부를 따로 확인하세요.

v2rayN에서 Geo 파일 업데이트하기: 5단계

아래 설명은 「업데이트 확인」 메뉴가 있는 데스크톱 버전 v2rayN을 기준으로 합니다. 버전에 따라 메뉴 위치가 다를 수 있습니다. 「Geo 파일 업데이트」가 보이지 않는다면 현재 버전의 리소스 업데이트 메뉴부터 확인하세요. 「구독 업데이트」를 대신 사용하면 안 됩니다. 작업 전 현재 정상적으로 작동하는 설정을 보관하고, 노드·DNS·라우팅을 한 번에 바꾸지 마세요.

  1. 현재 설정 기록

    현재 노드와 사용 중인 코어, 활성화된 라우팅 설정을 확인하고 사용자 지정 규칙을 기록하세요. 로컬 수신 포트를 확인하려면 「설정」→「매개변수 설정」에서 로컬 수신 관련 옵션을 살펴보세요. 모든 설치 환경에서 포트 10808을 사용하는 것은 아닙니다.

  2. 리소스 업데이트 실행

    메인 화면에서 「업데이트 확인」→「Geo 파일 업데이트」를 선택하세요. 클라이언트 메시지를 확인해 다운로드가 완료됐는지 살펴봅니다. 현재 버전에서 리소스별 작업 결과를 표시한다면 GeoIP와 GeoSite 상태를 각각 확인하세요.

  3. 다운로드 실패 시 조치

    시간 초과가 발생하면 먼저 시스템 시간, 리소스 주소, 현재 노드의 연결 상태를 확인하세요. 업데이트 요청이 프록시를 거치는지는 클라이언트 구현과 설정에 따라 다릅니다. 시스템 프록시를 켜도 모든 업데이트 요청이 프록시를 통과하는 것은 아닙니다.

  4. 설정 다시 불러오기

    업데이트가 완료되면 코어를 다시 시작하세요. 메뉴 위치를 모르겠다면 클라이언트를 종료한 뒤 다시 실행할 수 있습니다. 파일이 디스크에 저장됐더라도 실행 중인 코어가 다시 읽었다는 보장은 없습니다. 이후 시작 로그에서 리소스 로드 오류가 있는지 확인하세요.

  5. 라우팅 결과 확인

    기존 라우팅 설정은 유지한 채 직결될 것으로 예상되는 도메인, 프록시를 사용할 것으로 예상되는 도메인, 로컬 네트워크 주소를 각각 테스트하세요. 웹페이지가 열리는지만 보지 말고 연결 로그의 출구 태그와 비교하세요.

파일을 직접 교체한 뒤에는 읽기 권한과 파일 내용도 확인하세요. 다운로드 과정에서 오류 응답 페이지가 저장되면 파일 이름이 여전히 geoip.dat여도 코어는 데이터베이스로 해석할 수 없습니다. 파싱 오류가 발생하면 먼저 백업을 복원한 다음 리소스를 다시 받으세요.

규칙 작성법: geosite:cn과 geoip:private의 위치

아래는 설명을 위한 routing 설정 일부이며, 단독으로 실행할 수 있는 완전한 설정은 아닙니다. outbounds에 direct라는 태그의 직결 출구가 이미 있고 기본 출구는 프록시라고 가정합니다. 규칙에 일치하지 않으면 Xray와 V2Fly는 일반적으로 첫 번째 아웃바운드를 사용하므로 아웃바운드 순서도 함께 확인해야 합니다.

{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "domain": ["geosite:cn"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "ip": ["geoip:cn"],
        "outboundTag": "direct"
      }
    ]
  }
}

IPIfNonMatch는 도메인이 기존 규칙과 일치하지 않을 때 IP를 조회해 다시 매칭한다는 뜻입니다. 규칙 끝에 모든 TCP·UDP 요청과 바로 일치하는 기본 규칙을 추가하면 도메인 단계에서 이미 매칭되어 예상한 IP 추가 매칭까지 진행되지 않을 수 있습니다. 이 전략을 사용하면서 모든 요청이 GeoIP 검사를 받는다고 가정하지 마세요.

업데이트 후에도 라우팅이 잘못될 때: 4단계 확인

웹사이트가 열린다는 사실만으로 특정 연결이 성공했다는 것은 알 수 있지만, 트래픽이 예상한 출구를 이용했는지는 확인할 수 없습니다. Geo 데이터를 검증할 때는 노드와 라우팅 설정, 테스트 대상을 고정하고 한 번에 조건 하나만 바꾸세요. 아래 네 단계를 순서대로 확인하면 데이터베이스를 연달아 교체하는 것보다 원인을 찾기 쉽습니다.

  1. 파일 단계: 업데이트 시각과 실제 리소스 경로, 시작 로그를 확인하세요. 파일이 없거나 읽기에 실패했거나 데이터 파싱 오류가 발생하면 라우팅을 수정하기 전에 리소스 로드부터 해결하세요.
  2. 규칙 단계: 참조한 카테고리가 실제로 있는지, 현재 활성화된 라우팅 설정이 올바른지, 앞에 있는 규칙이 트래픽을 먼저 처리하지 않는지 확인하세요. 규칙은 위에서 아래 순서로 확인하며 처음 일치한 결과가 적용됩니다.
  3. 도메인 단계: 코어가 도메인과 IP 중 무엇을 받았는지 확인하세요. 브라우저 자체 DNS 해석, 앱의 IP 직접 연결, TUN 처리 방식에 따라 매칭에 사용할 수 있는 정보가 달라질 수 있습니다.
  4. 출구 단계: 연결 로그에서 아웃바운드 태그를 확인하세요. 현재 로그 수준에서 매칭 정보가 기록되지 않는다면 로그 설정을 잠시 조정할 수 있습니다. 출구는 올바른데 속도가 느리다면 노드와 회선 문제를 확인하세요.

로컬 SOCKS 인바운드가 실제로 127.0.0.1:10808에서 수신 중이라면 아래 명령으로 진입 경로를 고정해 테스트할 수 있습니다. socks5h를 사용하면 curl이 도메인 조회를 프록시 쪽에 맡기므로 도메인 매칭 조건을 유지하기 쉽습니다. 이 명령은 요청 경로만 확인하며 특정 GeoSite 카테고리와 일치했음을 단독으로 증명하지는 않습니다.

curl --proxy socks5h://127.0.0.1:10808 --head https://example.com/

여기서 사용한 포트는 예시이므로 클라이언트의 실제 수신 포트와 일치해야 합니다. 연결이 거부되면 먼저 포트 수신 상태와 코어 실행 여부를 확인하세요. 요청이 성공했다면 해당 시각의 로그에서 출구를 확인합니다. 로컬 네트워크 대상을 테스트할 때도 규칙이 직결을 선택했는지와 대상 서비스에 실제로 접속할 수 있는지는 별도로 판단해야 합니다.

자주 묻는 질문: 카테고리 누락, 업데이트 오류, 관리 주기

geosite 카테고리가 없다는 오류가 나면 다시 다운로드하는 게 도움이 되나요?

먼저 오류에 표시된 카테고리 이름을 기록하고 현재 리소스 출처를 확인하세요. 출처에서 해당 카테고리를 제공하지 않는다면 같은 파일을 반복해서 받아도 결과는 바뀌지 않습니다. 기존 데이터 출처로 복원하거나 새 출처에서 제공하는 카테고리에 맞춰 규칙을 수정하세요. 수정 전에는 라우팅 설정을 백업하세요.

업데이트 성공이라고 표시되는데 중국 본토 사이트가 계속 프록시로 연결되는 이유는 무엇인가요?

먼저 코어를 다시 시작한 다음 활성화된 라우팅 설정에 geosite:cn 또는 geoip:cn이 포함되어 있는지 확인하세요. 그 뒤 앞선 규칙, 도메인을 확인할 수 있는지, 대상이 현재 데이터베이스에 포함되는지 살펴보세요. 다운로드가 한 번 성공했다고 이 네 가지 조건이 모두 올바른 것은 아닙니다.

데이터베이스를 매일 직접 업데이트해야 하나요?

매일 업데이트해야 한다는 공통 기준은 없습니다. 평소에는 정기적으로 확인하고, 사이트 주소 이전이나 카테고리 변경 또는 명확한 오분류가 있을 때 필요한 항목만 업데이트하세요. 출처를 바꿀 때마다 기존 파일을 보관해 데이터 변경과 다른 설정 수정을 한 번에 섞지 않는 것이 좋습니다.

Android에서도 데스크톱 리소스 디렉터리를 그대로 사용할 수 있나요?

그대로 사용할 수 없습니다. v2rayNG와 v2flyNG의 앱 데이터 디렉터리와 리소스 업데이트 메뉴는 각 버전에 따라 다릅니다. 우선 앱에서 제공하는 리소스 업데이트 기능을 사용하세요. 사용자 지정 설정을 가져올 때는 사용하는 코어와 카테고리 이름, 리소스 파일이 서로 호환되는지 먼저 확인해야 합니다.

마지막으로 업데이트 날짜와 출처, 라우팅 템플릿 변경 여부, 재시작 후 정상 작동 여부를 간단히 기록해 두세요. Geo 데이터는 분류 정보를 제공하고, 규칙은 출구를 선택하며, DNS와 인바운드 방식은 매칭에 필요한 정보를 제공합니다. 각 단계를 나눠 확인해야 파일을 업데이트할지, 규칙을 조정할지, 앱 트래픽이 실제로 클라이언트를 통과하는지 판단할 수 있습니다.

v2rayN 다운로드