구독 정보를 가져온 뒤 직결과 프록시 규칙을 설정하려는 데스크톱 사용자에게 적합합니다. 먼저 도메인 목록과 IP 주소 목록의 차이를 알아보고, 클라이언트가 실제로 사용하는 데이터 파일을 업데이트한 다음 v2rayN에서 규칙을 순서대로 추가하고 아웃바운드를 확인합니다. 예시는 V2Ray/Xray의 라우팅 필드를 다루며, 클라이언트 전체 설정을 그대로 덮어쓰는 용도가 아닙니다.
GeoIP와 GeoSite: 서로 다른 매칭 대상
geosite.dat에는 태그별 도메인 목록이, geoip.dat에는 태그별 IP 주소 대역 목록이 저장됩니다. 두 파일은 라우팅 조건을 판별하는 데이터이지 노드 구독 정보가 아니며, VMess 또는 VLESS 연결을 설정하지도 않습니다. 규칙 데이터베이스를 업데이트해도 서버가 추가되거나 구독 인증 정보가 바뀌지는 않습니다.
GeoSite: 도메인 목록
- 파일 이름
geosite.dat- 규칙 필드
domain- 참조 형식
geosite:cn- 매칭 대상
- 연결에 포함되거나 스니핑으로 확인한 도메인
태그에 포함되는 항목은 데이터 소스에서 관리하므로, 태그 이름만 보고 전체 목록을 알 수는 없습니다.
GeoIP: IP 주소 목록
- 파일 이름
geoip.dat- 규칙 필드
ip- 참조 형식
geoip:private- 매칭 대상
- 대상 IP 또는 정책에 따라 확인한 IP
IP 주소의 위치 정보는 라우팅 판단에 쓰이며, 웹사이트 서비스가 제공되는 위치와는 다릅니다.
geosite:cn은 일반적으로 데이터 소스에 등록된 중국 관련 도메인과 매칭되고, geoip:cn은 해당 IP 대역과 매칭됩니다. 서로 대체할 수 있는 규칙은 아닙니다. 도메인이 여러 지역에 분산된 CDN을 사용할 수 있고, 하나의 IP에서 여러 도메인이 서비스될 수도 있습니다. 도메인 규칙과 IP 규칙은 각각 설정해야 합니다.
규칙 데이터베이스는 세 번째 단계에서 사용하는 데이터일 뿐입니다. 앱이 시스템 프록시나 TUN을 사용하지 않으면 파일을 업데이트해도 해당 앱의 연결은 라우팅 과정에 들어오지 않습니다. 연결에 IP만 있고 도메인이 없으면 GeoSite 규칙으로 웹사이트 이름을 바로 식별할 수 없습니다. 스니핑으로 도메인을 확인할 수 있는지는 트래픽 프로토콜과 클라이언트 설정에 따라 달라집니다.
업데이트 전 확인할 사항: 코어, 출처, 백업
v2rayN은 클라이언트이며, V2Ray/Xray는 연결을 처리하는 코어입니다. 이 글에서는 해당 코어가 사용하는 DAT 규칙 데이터베이스를 다룹니다. 다른 규칙 형식을 쓰는 설정으로 전환할 때는 파일 이름이 비슷하다는 이유만으로 호환된다고 판단하면 안 됩니다. 현재 설정의 코어와 시작 로그를 확인한 뒤 업데이트할 파일을 결정하세요.
- 현재 상태를 기록합니다. v2rayN 버전, 현재 라우팅 프리셋, 도메인 확인 정책, 코어 로그에 표시된 리소스 경로를 적어 두세요. 프로그램 바로 가기의 위치만 기록해서는 안 됩니다.
- 라우팅 규칙을 백업합니다. 「설정」→「라우팅 설정」에서 활성화된 규칙과 순서를 기록하세요. 특히 사용자 지정 직결, 차단, 프록시 규칙을 확인해야 합니다.
- 데이터 파일을 백업합니다. 실제로 불러오는
geoip.dat와geosite.dat를 찾아 별도의 백업 폴더에 복사하세요. 백업 파일을 현재 사용 중인 파일과 같은 이름으로 저장하지 마세요. - 출처를 확인합니다. 우선 클라이언트에 설정된 규칙 데이터베이스 출처를 그대로 사용하세요. 출처를 바꾸기 전에는 해당 문서에서 기존 규칙이 참조하는 모든 태그를 제공하는지 확인해야 합니다.
구독 업데이트, 클라이언트 업데이트, 코어 업데이트, 규칙 데이터베이스 업데이트는 서로 다른 작업입니다. 구독 업데이트는 주로 노드 정보를 새로고침합니다. 클라이언트를 업그레이드할 때 관련 데이터가 함께 제공될 수 있지만, 현재 규칙 데이터베이스까지 업데이트됐다고 단정할 수는 없습니다. 문제를 찾을 때는 한 번에 한 종류만 변경해야 노드, 규칙, 데이터 소스 중 무엇이 원인인지 구분할 수 있습니다.
규칙 데이터베이스 업데이트: 클라이언트 기능과 수동 교체
먼저 v2rayN의 내장 업데이트 기능을 사용하세요. 일반적인 데스크톱 인터페이스의 「업데이트 확인」 메뉴에는 「Geo 파일 업데이트」 항목이 있습니다. 메뉴 이름은 버전과 인터페이스에 따라 달라질 수 있습니다. 현재 버전에 해당 항목이 없다면 버전별 안내를 확인하고, 「구독 업데이트」를 같은 기능으로 착각하지 마세요.
- 현재 네트워크에서 설정된 리소스 다운로드 주소에 접속할 수 있는지 확인하세요. 업데이트 옵션에 프록시를 통한 다운로드가 있다면 먼저 현재 노드가 작동하는지 확인한 뒤 해당 방식을 선택하세요.
- Geo 파일 업데이트를 실행한 뒤 로그에서 다운로드 결과를 확인하세요. 한 번에 여러 파일을 업데이트했다면 마지막 메시지만 보지 말고 파일별 성공 여부를 확인해야 합니다.
- 업데이트가 끝나면 코어를 다시 시작하세요. 코어만 재시작하는 방법을 모른다면 v2rayN을 정상 종료한 후 다시 실행하면 됩니다. 트레이로 최소화하는 것은 재시작이 아닙니다.
- 다시 연결하고 시작 로그를 확인해 파일 읽기 실패, 누락된 태그, 라우팅 초기화 오류가 없는지 살펴본 다음 트래픽 분배를 확인하세요.
수동 교체 시 먼저 실제 리소스 폴더를 찾으세요
내장 다운로드가 실패했거나 데이터 소스를 고정해야 할 때는 수동 업데이트를 사용할 수 있습니다. 코어를 중지한 뒤 신뢰할 수 있는 규칙 데이터 공개 출처에서 DAT 파일을 받아 코어가 실제로 읽는 리소스 폴더에 넣으세요. 파일 이름은 geoip.dat, geosite.dat로 유지해야 합니다. 압축 파일은 먼저 풀어야 합니다. 웹페이지 내용을 DAT 확장자로 저장해도 규칙 데이터베이스로 사용할 수 없습니다.
- 경로를 임의로 추측하지 마세요. 포터블 버전, 설치 버전, 플랫폼에 따라 데이터 폴더가 다를 수 있으며, 한 컴퓨터에 클라이언트 복사본이 여러 개 남아 있을 수도 있습니다.
- 코어를 단독 실행한다면 환경 변수도 확인하세요. Xray는
XRAY_LOCATION_ASSET, V2Ray는V2RAY_LOCATION_ASSET으로 리소스 폴더를 지정할 수 있습니다. 클라이언트에서 코어를 실행한다면 해당 실행 환경을 기준으로 확인하세요. - 되돌릴 수 있도록 백업을 유지하세요. 두 파일을 모두 업데이트한 뒤 문제가 생기면 먼저 같은 시점에 백업한 파일로 복원한 다음 코어를 다시 시작하세요. 서로 다른 출처의 파일이 섞이면 원인을 파악하기 어려워집니다.
파일의 수정 시간은 참고 자료일 뿐, 새 데이터가 로드됐다는 증거는 아닙니다. 업데이트 후 동작이 전혀 바뀌지 않았다면 먼저 다른 복사본을 교체한 것은 아닌지, 코어를 실제로 재시작했는지 확인하세요. 여러 출처에서 파일을 연달아 받아 같은 폴더에 덮어쓰면 문제를 추적하기 어려워집니다.
v2rayN 라우팅 설정: 필드와 규칙 순서
「설정」→「라우팅 설정」으로 이동해 사용할 라우팅 구성을 선택한 뒤 규칙을 수정하거나 추가하세요. 일반적인 규칙 편집 화면에는 「도메인」, 「IP」, 아웃바운드 선택 항목이 있습니다. 실제 화면 구성은 현재 버전에 따라 다를 수 있습니다. geosite:cn은 도메인 항목에, geoip:cn과 geoip:private는 IP 항목에 입력하세요. 세 줄을 모두 도메인 입력란에 붙여 넣으면 안 됩니다.
| 목적 | 입력 위치 | 내용 | 아웃바운드 선택 |
|---|---|---|---|
| 로컬 네트워크 주소 직결 | IP | geoip:private | 직결 |
| 목록에 포함된 도메인 직결 | 도메인 | geosite:cn | 직결 |
| 해당 지역 IP 직결 | IP | geoip:cn | 직결 |
| 지정 도메인 프록시 연결 | 도메인 | full:example.com | 프록시 |
V2Ray/Xray는 규칙을 순서대로 확인하며, 먼저 매칭된 규칙이 아웃바운드를 결정합니다. 우선 적용해야 하는 구체적인 예외는 포괄적인 목록보다 앞에 배치하세요. 예를 들어 어떤 도메인이 직결 목록에 포함되어 있어도 프록시를 사용하려면 해당 도메인 전용 프록시 규칙을 목록 직결 규칙보다 앞에 두면 됩니다. 표의 example.com은 규칙의 정확한 매칭 방식을 설명하기 위한 문서용 예시 도메인입니다.
{
"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"
}
]
}
}
한 규칙에 도메인과 IP처럼 서로 다른 조건을 함께 입력하면 일반적으로 모든 조건을 동시에 만족해야 합니다. 도메인이나 IP 중 하나만 일치해도 된다는 뜻이 아닙니다. 따라서 도메인 직결과 IP 직결은 규칙을 분리해야 합니다. domain:example.com과 full:example.com을 혼동하는 경우도 많습니다. 앞의 형식은 해당 도메인과 하위 도메인을 포함하고, 뒤의 형식은 지정한 도메인 전체와 정확히 일치할 때만 매칭됩니다.
도메인 확인 정책: GeoIP가 매칭되는 시점
domainStrategy는 라우팅 단계에서 도메인 대상을 처리하는 방식을 제어하며, DNS 서버 주소 설정과는 다릅니다. 요청 대상이 처음부터 IP라면 IP 규칙에 바로 매칭될 수 있습니다. 도메인이 포함된 요청을 IP 규칙에 매칭하기 위해 별도로 확인할지는 선택한 정책에 따라 달라집니다.
AsIs: IP 규칙과 매칭하기 위해 라우팅 단계에서 도메인을 직접 확인하지 않습니다. 주로 도메인 규칙으로 트래픽을 분배하는 설정에 적합하지만, 도메인 요청이geoip:cn규칙만 있다는 이유로 자동 확인되지는 않습니다.IPIfNonMatch: 도메인이 어떤 규칙에도 매칭되지 않으면 IP를 확인해 다시 매칭을 시도합니다. 위 예시는 이 정책을 사용해 먼저 도메인 목록을 적용한 뒤 IP 주소의 위치를 고려합니다.IPOnDemand: 매칭 과정에서 IP 조건이 필요하면 바로 IP 확인을 시작합니다. IP를 더 일찍 확인하므로 규칙 순서와 DNS 응답 결과가 동작에 미치는 영향을 함께 점검해야 합니다.
IPIfNonMatch 설정의 끝에 모든 요청과 일치하는 기본 규칙을 미리 넣으면, 도메인 단계에서 이미 규칙이 매칭되어 예상대로 ‘불일치 후 IP 확인’이 진행되지 않을 수 있습니다. 따라서 정책 이름만 보고 GeoIP가 반드시 실행된다고 판단해서는 안 됩니다. 전체 규칙 목록을 확인하세요. DNS가 반환하는 CDN 주소가 달라지면 같은 도메인도 네트워크에 따라 서로 다른 IP 목록과 매칭될 수 있습니다.
이 주소 대역은 geoip:private를 이해하기 위한 대표 예시이며, 해당 목록 전체를 의미하지는 않습니다. 목록에는 다른 특수 용도 주소도 포함될 수 있습니다. 로컬 네트워크 서비스에 접속할 수 있는지는 TUN 라우팅, 시스템 방화벽, 대상 기기의 권한에도 영향을 받으므로 모든 접속 실패를 GeoIP 탓으로 돌려서는 안 됩니다.
확인 및 문제 해결: 먼저 매칭을 확인한 뒤 규칙 수정
확인할 때는 직결되어야 하는 도메인, 프록시를 사용해야 하는 대상, 권한이 있는 로컬 네트워크 서비스를 각각 선택하세요. 테스트 앱의 트래픽이 실제로 클라이언트 프록시를 거치도록 한 뒤 연결 로그에서 대상과 아웃바운드 태그를 확인합니다. 지연 시간이 줄거나 웹페이지가 열렸다는 사실만으로 규칙이 올바르게 적용됐다고 볼 수는 없습니다.
- 수정한 라우팅 구성을 저장하고 활성화한 뒤 이전 프리셋이 다시 선택되지 않았는지 확인하세요.
- 테스트 연결을 새로 만드세요. 브라우저의 기존 연결이 이전 아웃바운드를 계속 사용할 수 있으므로 테스트 페이지를 닫았다가 다시 여는 것이 좋습니다.
- 필요할 때만 로그 수준을 일시적으로 높여 대상 도메인, IP, 아웃바운드를 확인하세요. 확인이 끝나면 평소 로그 수준으로 되돌려 상세 접속 기록이 장기간 쌓이지 않게 하세요.
- 한 번에 변수 하나만 바꾸세요. 먼저 규칙 순서를 수정하고, 다음으로 도메인 확인 정책을 조정한 뒤, 마지막으로 규칙 데이터 소스 변경을 고려하세요.
업데이트 후 geosite 태그를 찾을 수 없다는 메시지가 표시되면 어떻게 하나요?
오류에 표시된 태그 이름 전체를 먼저 기록하고, 규칙이 IP 목록이 아닌 도메인 목록을 참조하는지 확인하세요. 현재 데이터 소스에서 해당 태그를 제공하는지도 확인해야 합니다. 출처를 바꾼 뒤 오류가 발생했다면 기존 데이터 파일을 복원하거나 새 출처에서 지원한다고 명시한 목록으로 규칙을 바꾼 다음 코어를 다시 시작하세요.
파일을 교체했는데 라우팅 결과가 왜 그대로인가요?
코어가 실제로 파일을 읽는 폴더를 확인하고 업데이트 후 재시작했는지 점검하세요. 다음으로 앞쪽 규칙이 이미 매칭되는지, 앱이 기존 연결을 계속 재사용하는지 확인합니다. 마지막으로 편집한 라우팅 구성이 현재 활성화된 구성인지, 이름만 같은 백업 구성이 아닌지 확인하세요.
geoip:cn을 추가했는데 중국 내 웹사이트가 계속 프록시로 연결되나요?
요청 대상이 도메인인지 IP인지 먼저 확인한 다음 도메인 확인 정책을 점검하세요. AsIs에서는 도메인 요청을 해당 IP 규칙에 매칭하기 위해 직접 확인하지 않습니다. 앞선 도메인 규칙에서 프록시로 이미 매칭됐다면 뒤의 GeoIP 규칙이 이를 덮어쓰지도 않습니다. geosite:cn의 위치와 전체 기본 규칙을 우선 확인하세요.
geosite.dat만 업데이트해도 되나요?
단독으로 업데이트할 수 있지만, 예상한 출처의 파일인지, 기존 태그가 포함되어 있는지 확인해야 합니다. 두 종류의 데이터 출처를 동시에 바꾼다면 하나의 변경 작업으로 기록하고 기존 파일을 각각 보관하는 것이 좋습니다. 어느 한 파일이라도 로드에 실패하면 먼저 정상 작동하던 상태로 되돌린 뒤 계속 점검하세요.
안정적인 설정을 위해서는 변경 내역을 추적할 수 있어야 합니다. 데이터 출처, 업데이트 시각, 규칙 순서, 도메인 확인 정책을 기록하세요. 규칙 데이터베이스를 최신 상태로 유지하면 목록을 보완할 수 있지만, 잘못된 아웃바운드 선택을 고쳐 주거나 DNS 및 시스템 프록시 점검을 대신하지는 않습니다. 클라이언트 기본 설정은 빠른 시작 가이드에서, 라우팅 및 DNS 용어는 용어집에서 확인할 수 있습니다.