GeoIP·GeoSite 데이터베이스 업데이트 가이드: 라우팅 규칙에서 geoip.dat·geosite.dat 사용법

GeoIP·GeoSite 데이터베이스의 구성과 클라이언트에서 간편하게 업데이트하는 방법, geosite:cn·geoip:private 등의 규칙 적용 순서와 주의사항을 알아봅니다.

핵심 내용

GeoSite는 도메인 집합, GeoIP는 IP 주소 집합을 기준으로 매칭합니다. v2rayN으로 라우팅을 설정하는 Mac 사용자를 위해 데이터베이스 업데이트 위치, Xray·V2Ray 라우팅 필드, 규칙 순서와 로그 확인 방법을 설명합니다. 먼저 요청이 코어에 전달되는지 확인한 다음 데이터베이스와 규칙을 점검하세요. 구독 업데이트만으로 두 파일이 갱신되지는 않습니다.

GeoIP와 GeoSite는 무엇을 매칭할까?

geosite.dat에는 태그별 도메인 규칙 집합이 저장됩니다. 항목은 전체 도메인, 도메인 접미사 또는 그 밖에 지원되는 매칭 형식일 수 있습니다. geoip.dat에는 태그별 IP 대역 집합이 저장되며, 국가·지역별 분류와 특정 용도의 주소 분류가 포함되는 경우가 많습니다. 두 파일 모두 바이너리 데이터베이스이므로 일반 도메인 텍스트의 파일명만 바꿔서는 사용할 수 없습니다.

GeoSite: 도메인 집합

주요 파일
geosite.dat
라우팅 필드
domain
참조 예시
geosite:cn
매칭 대상
요청의 대상 도메인

태그 제공 여부는 사용 중인 데이터베이스의 출처와 내용에 따라 다릅니다.

GeoIP: IP 주소 집합

주요 파일
geoip.dat
라우팅 필드
ip
참조 예시
geoip:private
매칭 대상
대상 IP 또는 라우팅 과정에서 확인된 IP

주소 분류는 웹사이트 분류와 다르며, 연결 가능 여부를 뜻하지도 않습니다.

geosite:cn은 “.cn으로 끝나는 모든 도메인”이 아니라 데이터베이스에서 cn이라는 이름으로 정의된 집합입니다. 다른 도메인 접미사가 포함될 수도 있고 새로 개설된 사이트가 아직 등록되지 않았을 수도 있습니다. geoip:cn은 데이터베이스의 IP 대역을 기준으로 매칭하므로 웹사이트 운영 주체 또는 사용자의 위치를 판단할 수는 없습니다.

geoip:private는 사설망 및 특수 용도 주소를 직접 연결하는 규칙에 자주 사용되지만, 모든 로컬 네트워크 도메인을 포함하는 목록은 아닙니다. 예를 들어 192.168.1.1은 IP 대상이고 printer.local은 도메인 대상이므로 후자는 이름 해석도 필요합니다. 특정 주소가 포함되어 있는지는 현재 데이터베이스 내용을 기준으로 확인하세요.

시스템 프록시를 확인한 뒤 업데이트 방법 선택하기

라우팅 규칙은 프록시 코어에 전달된 연결만 처리합니다. macOS 시스템 프록시는 시스템 프록시 설정을 따르는 앱에 주로 적용됩니다. 앱이 시스템 프록시를 우회한다면 GeoSite 규칙을 바꿔도 연결 경로가 달라지지 않을 수 있습니다. TUN은 더 많은 트래픽을 처리할 수 있지만 라우팅, DNS, 제외 항목도 확인해야 합니다. 스위치가 켜져 있다는 이유만으로 모든 요청이 코어에 전달된다고 단정할 수는 없습니다.

파일 2종
이 문서에서 다루는 파일: geoip.dat와 geosite.dat
전략 3종
AsIs、IPIfNonMatch、IPOnDemand
53
일반 DNS에서 주로 사용하는 UDP/TCP 포트

데이터베이스 업데이트, 구독 업데이트, 코어 업데이트는 서로 다른 작업입니다. 구독에는 노드 매개변수가, 데이터베이스에는 라우팅에 참조할 수 있는 집합이 들어 있으며, 코어는 설정을 실행합니다. VMess 또는 VLESS 노드로 바꿔도 데이터베이스 태그가 자동으로 수정되지는 않으며, 데이터베이스를 업데이트해도 사용할 수 없는 노드 인증 정보가 복구되지는 않습니다.

클라이언트에서 업데이트

권장

v2rayN의 Geo 파일 업데이트 메뉴를 사용하면 다운로드와 파일 배치를 클라이언트가 처리합니다. 완료 후 업데이트 결과를 확인하고 코어를 재시작해 파일이 로드됐는지 점검하세요.

추천 대상: 내장 라우팅을 사용하며 파일 경로를 직접 다루고 싶지 않은 일반 사용자

파일 직접 교체

데이터베이스 출처, 태그 집합, 코어 리소스 경로를 정확히 알고 있을 때만 진행하세요. 교체 전에 기존 파일을 보관하고, 앱 번들 안의 파일을 직접 수정하거나 시스템 디렉터리 권한을 변경하지 마세요.

추천 대상: 내장 업데이트가 실패했거나 사용자 지정 데이터베이스를 사용하는 고급 사용자

v2rayN에서 Geo 파일 업데이트하기

v2rayN 메뉴 이름은 버전과 인터페이스 언어에 따라 다를 수 있습니다. 일반적인 데스크톱 화면에서는 「업데이트 확인」→「Geo files 업데이트」에서 진행합니다. GeoIP와 GeoSite가 별도 항목으로 표시되면 각각 업데이트하세요. 아래 안내는 흔히 볼 수 있는 메뉴를 기준으로 하며, 특정 버전의 메뉴 위치가 모든 플랫폼에서 같다고 가정하지 않습니다.

  1. 현재 코어 확인

    메인 화면에서 현재 노드와 실행 로그에 표시된 코어 이름을 확인하세요. 이 문서의 설정 예시는 DAT 데이터베이스를 읽는 Xray 또는 V2Ray용입니다. 현재 설정이 다른 규칙 형식을 사용한다면 그대로 적용하지 마세요.

  2. 기존 규칙 보관

    「설정」→「라우팅 설정」을 열어 현재 활성화된 라우팅 프리셋, 규칙 순서, 도메인 전략을 기록하세요. 사용자 지정 규칙을 사용한다면 문제가 생겼을 때 복구할 수 있도록 먼저 기존 내용을 저장해 두세요.

  3. 파일 업데이트 실행

    「업데이트 확인」→「Geo files 업데이트」를 선택하세요. 메뉴에 「GeoIP 업데이트」와 「GeoSite 업데이트」가 따로 있으면 두 항목을 차례로 실행하고 각각의 결과가 표시될 때까지 기다리세요.

  4. 코어 다시 불러오기

    다운로드가 끝나면 클라이언트에서 코어를 재시작하세요. 해당 메뉴를 찾지 못하면 클라이언트를 정상 종료한 뒤 다시 실행합니다. 구독만 새로고침하는 것보다 데이터베이스를 다시 읽도록 하는 편이 문제 확인에 효과적입니다.

  5. 로드 로그 확인

    데이터베이스 읽기 실패, 집합을 찾을 수 없음, 라우팅 설정 오류가 없는지 확인하세요. 그런 다음 직접 연결이 확실한 대상과 프록시 연결이 확실한 대상을 각각 테스트해 실제 아웃바운드가 예상대로인지 점검합니다.

파일을 직접 다룰 때는 먼저 코어를 중지하고 클라이언트 로그나 리소스 디렉터리 설정에서 실제 파일 위치를 확인하세요. 앱 설치 디렉터리와 사용자 데이터 디렉터리는 다를 수 있으며, macOS에서는 데이터베이스를 앱 번들에 넣는다고 가정해서는 안 됩니다. 교체 후 태그가 누락되면 규칙을 계속 추가하기보다 기존 파일을 복원하는 편이 원인을 찾기 쉽습니다.

geosite:cn과 geoip:private 올바르게 사용하기

아래는 Xray/V2Ray 형식의 routing 설정 일부이며, 단독으로 실행할 수 있는 전체 설정이 아닙니다. 예시에 나오는 direct와 proxy는 전체 설정에 이미 정의된 아웃바운드 태그와 일치해야 합니다. v2rayN은 실행용 설정을 생성하므로 클라이언트의 라우팅 편집기에서 수정하는 것이 좋습니다. 생성 후 곧 덮어써질 임시 파일은 직접 편집하지 마세요.

{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "domain": [
          "full:example.com"
        ],
        "outboundTag": "proxy"
      },
      {
        "type": "field",
        "domain": [
          "geosite:cn"
        ],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "ip": [
          "geoip:private",
          "geoip:cn"
        ],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "network": "tcp,udp",
        "outboundTag": "proxy"
      }
    ]
  }
}

예시의 example.com은 정확한 도메인 매칭을 보여 주기 위한 값일 뿐입니다. 실제 사용 시에는 원하는 아웃바운드로 보내야 하는 도메인으로 바꾸세요. 마지막 규칙은 TCP/UDP 트래픽을 명시적으로 처리하는 기본 규칙이며, 모든 클라이언트의 기본 동작을 뜻하지는 않습니다. 기본 규칙이 없다면 매칭되지 않은 트래픽은 보통 기본 아웃바운드로 전달되지만, 기본 아웃바운드가 반드시 프록시라고 가정해서는 안 됩니다.

규칙 순서와 DNS 전략 함께 설정하기

규칙은 순서대로 검사하며, 매칭되면 해당 아웃바운드를 사용하고 더 “정확한” 다음 규칙을 계속 찾지 않습니다. 일반적으로 명시적인 예외를 먼저 배치하고, 그다음 도메인 집합, IP 집합, 마지막으로 기본 규칙을 둡니다. 모든 TCP/UDP 연결을 처리하는 규칙을 맨 앞에 두면 뒤의 GeoSite·GeoIP 규칙은 해당 연결을 처리할 수 없습니다.

domainStrategy라우팅 동작주요 점검 항목
AsIs라우팅 매칭을 위해 도메인을 추가로 해석하지 않습니다. 대상이 원래 IP라면 IP 규칙으로 매칭할 수 있습니다.도메인 요청이 GeoIP 규칙만으로 모두 분류될 것이라고 기대해서는 안 됩니다.
IPIfNonMatch도메인 규칙에 매칭되지 않으면 IP로 해석한 뒤 다시 매칭을 시도합니다.앞쪽의 도메인 규칙이나 기본 규칙이 이미 매칭됐는지 확인하세요.
IPOnDemand매칭 중 IP가 필요한 규칙에 도달하면 필요에 따라 대상 도메인을 해석합니다.앞쪽에 배치된 IP 규칙이 뒤에 있는 도메인 예외보다 먼저 매칭될 수 있습니다.

특히 주의하세요. 앞의 예시는 IPIfNonMatch를 사용하며 마지막에 기본 규칙도 설정되어 있습니다. 도메인이 geosite:cn에 매칭되지 않더라도 기본 규칙에 먼저 매칭될 수 있으므로, “GeoSite에 매칭되지 않았다”는 이유만으로 추가 IP 해석이 반드시 진행되는 것은 아닙니다. 이 예시는 도메인 기준 라우팅을 우선하며, IP 규칙은 대상이 처음부터 IP인 연결에도 적용될 수 있습니다.

분류되지 않은 도메인을 해석한 뒤 GeoIP로 라우팅해야 한다면 기본 규칙과 기본 아웃바운드를 다시 설계하거나 IPOnDemand 사용을 검토할 수 있습니다. 이때 규칙 순서도 함께 확인해야 합니다. 전략 이름만 바꾸고 동작이 올바르다고 판단해서는 안 됩니다. 필요 시 해석하는 방식을 쓴다면 지정 프록시로 보낼 도메인 예외를 포괄적인 IP 규칙보다 앞에 배치해 예외가 먼저 처리되도록 하세요.

업데이트 후에도 적용되지 않을 때: 증상별 점검

구독 교체, DNS 변경, 라우팅 전환, 데이터베이스 업데이트를 한꺼번에 하지 마세요. 한 번에 조건 하나만 바꾸고 대상 도메인, 대상 IP, 매칭된 규칙, 아웃바운드 태그를 기록하세요. 그래야 “요청이 코어에 전달되지 않음”, “데이터베이스를 로드할 수 없음”, “규칙이 잘못 매칭됨”을 구분할 수 있습니다.

증상우선 확인할 항목해결 방법
업데이트 후 코어가 시작되지 않음파일 경로, 데이터베이스 형식, 집합 태그시작 로그를 확인하고 기존 파일을 복원한 뒤 설정에서 참조하는 집합이 실제로 있는지 확인하세요.
중국 본토 웹사이트가 계속 프록시를 사용함도메인이 데이터베이스에 있는지, 앞선 규칙에 가려졌는지먼저 명시적인 도메인 규칙을 추가해 확인한 뒤 집합이나 데이터베이스 출처를 조정하세요.
로컬 네트워크 기기에 연결할 수 없음요청 대상이 도메인인지 IP인지, 해석 결과와 TUN 제외 항목먼저 기기의 실제 사설 IP로 테스트한 다음 이름 해석과 라우팅을 각각 점검하세요.
규칙을 바꿔도 동작이 달라지지 않음현재 활성화된 라우팅 프리셋, 기존의 장시간 연결프리셋이 적용됐는지 확인하고 테스트 연결을 새로 만든 뒤 필요하면 코어를 재시작하세요.
특정 앱에서만 문제가 발생함앱이 시스템 프록시를 따르는지, 자체 DNS를 사용하는지먼저 트래픽이 유입되는 경로를 확인하세요. GeoSite 항목을 추가하는 것만으로 해결하려 하지 마세요.

같은 설정 방식은 Android의 v2rayNG에도 적용할 수 있지만, v2rayNG는 Xray 코어를 사용하므로 메뉴와 리소스 디렉터리는 데스크톱과 다릅니다. v2flyNG는 v2fly 코어를 사용하므로 지원하는 설정 기능과 데이터베이스 로드 방식은 실제 버전에서 확인해야 합니다. 구독을 가져올 수 있다고 해서 모든 클라이언트가 동일한 라우팅 데이터베이스를 공유하는 것은 아닙니다.

일상적인 관리는 세 단계로 정리할 수 있습니다. 파일을 업데이트하고 정상적으로 로드됐는지 확인한 다음, 규칙 순서와 도메인 전략을 점검하고, 새 연결로 아웃바운드를 테스트하세요. 데이터베이스는 매칭 집합을 제공하고, 설정은 연결 경로를 정하며, 시스템 프록시와 TUN은 트래픽을 코어로 전달합니다. 이 세 단계를 구분하면 라우팅 문제를 더 빠르게 진단할 수 있습니다.

v2rayN 다운로드플랫폼에 맞는 클라이언트 선택