이 글은 v2rayN 라우팅 규칙을 관리하는 사용자를 위한 안내입니다. 도메인 데이터베이스와 IP 데이터베이스의 차이를 살펴본 뒤, 커널이 실제로 읽는 데이터 파일을 업데이트하고 규칙 순서, 도메인 조회 정책, 로그를 통해 결과를 확인합니다. Android용 v2rayNG와 v2flyNG에도 기본 원리는 적용되지만, 파일을 불러오는 경로는 데스크톱과 다릅니다.
GeoIP와 GeoSite는 각각 무엇을 매칭할까요?
geosite.dat에는 태그별로 분류된 도메인 규칙이, geoip.dat에는 태그별 IP 주소 대역이 저장됩니다. 이 파일들은 라우팅 데이터이지 구독 정보나 서버 설정이 아닙니다. 데이터 파일을 업데이트해도 VMess, VLESS 등의 연결 설정은 바뀌지 않으며, 사용할 수 있는 노드가 자동으로 추가되지도 않습니다.
GeoSite 도메인 데이터베이스
- 파일명
geosite.dat- 매칭 대상
- 도메인 및 데이터베이스에 정의된 도메인 규칙
- 참조 위치
- 라우팅 규칙의
domain - 자주 쓰는 표기
geosite:cn
분류는 데이터 출처에 따라 다릅니다. 같은 이름의 태그라도 규칙 데이터베이스마다 구성이 완전히 같다고 보장할 수 없습니다.
GeoIP 주소 데이터베이스
- 파일명
geoip.dat- 매칭 대상
- 대상 IP 주소
- 참조 위치
- 라우팅 규칙의
ip - 자주 쓰는 표기
geoip:private、geoip:cn
주소 분류가 곧 웹사이트의 소속 국가를 뜻하지는 않습니다. CDN이나 여러 지역에서 제공되는 서비스 때문에 둘이 다를 수 있습니다.
geosite:cn은 “.cn으로 끝나는 도메인만 매칭”하는 규칙이 아니며, 실행 중에 웹사이트의 언어를 판별하는 것도 아닙니다. 데이터베이스의 cn 분류를 참조합니다. geoip:cn은 해당 주소 대역 분류를 참조하므로 두 규칙을 서로 대신 사용할 수 없습니다.
V2Ray와 Xray를 사용하는 일반적인 배포 환경에서는 이러한 DAT 데이터를 사용합니다. v2rayNG는 Xray 커널을, v2flyNG는 v2fly 커널을 사용합니다. v2rayN은 현재 선택한 커널에 따라 필요한 데이터 형식이 달라질 수 있습니다. 다른 규칙 형식을 사용하는 커널을 실행 중이라면 파일명이 비슷하다는 이유만으로 이 글의 DAT 설정을 적용하지 마세요.
규칙 파일 출처와 업데이트 방식 선택
주요 데이터는 v2fly의 도메인 분류 및 주소 데이터 구축 프로젝트와 커뮤니티에서 관리하는 호환 규칙 데이터베이스에서 제공됩니다. 도메인 목록을 정리하고 컴파일해 DAT 파일을 만들기 때문에, 텍스트 편집기로 바로 수정할 수 있는 도메인 목록이 아닙니다. cn, private 또는 특정 서비스 태그가 포함되어 있는지는 각 데이터베이스의 분류 설명을 확인해야 합니다.
클라이언트 내장 업데이트
권장클라이언트에 설정된 데이터 출처와 대상 폴더를 사용하면 파일을 잘못된 위치에 넣을 위험을 줄일 수 있습니다. 그래도 업데이트 전에 현재 선택한 커널과 내장 데이터 출처에 기존 규칙에서 참조하는 태그가 있는지 확인하세요.
적합한 경우: 일반적인 라우팅 규칙을 사용하며 사용자 지정 데이터 출처가 없는 경우
파일 직접 교체
데이터 출처를 고정해 사용하거나 오프라인으로 관리할 때 적합합니다. 형식과 태그, 실제 리소스 폴더를 직접 확인하고 이전에 정상 작동하던 파일을 보관해야 합니다. 날짜나 출처가 다른 데이터를 무작정 섞어 사용하지 마세요.
적합한 경우: 관리된 배포 환경이나 롤백이 필요한 사용자 지정 규칙
v2rayN에서 Geo 파일 업데이트하기
아래 안내는 ‘업데이트 확인’ → ‘Geo 파일 업데이트’ 메뉴가 있는 v2rayN 화면을 기준으로 합니다. 버전에 따라 설정이나 업데이트 메뉴에 해당 기능이 있을 수 있습니다. 현재 사용하는 프로그램에 메뉴가 없다면 추측한 폴더를 찾아 파일을 덮어쓰지 마세요. 먼저 클라이언트 도움말과 현재 커널 로그에서 리소스 경로를 확인하세요.
-
현재 설정 기록하기
‘설정’ → ‘라우팅 설정’을 열고 사용 중인 라우팅 구성, 규칙 순서, 기본 아웃바운드를 기록하세요. 기존 Geo 파일을 백업하고 어느 폴더에서 가져온 파일인지 적어 두면 복구하기 쉽습니다.
-
현재 커널 확인하기
시작 로그에서 커널 이름과 시작 매개변수를 확인해 Xray 또는 v2fly의 DAT 방식을 사용 중인지 확인하세요. 프로그램 설치 폴더, 작업 폴더, 리소스 폴더는 서로 다른 위치일 수 있습니다.
-
데이터 업데이트 실행하기
‘업데이트 확인’ → ‘Geo 파일 업데이트’를 선택하세요. 다운로드와 파일 교체가 모두 완료될 때까지 기다립니다. 네트워크 오류가 표시되면 먼저 다운로드 연결을 해결한 뒤 다시 시도하세요. 일부 작업만 성공한 상태를 전체 업데이트 완료로 간주하지 마세요.
-
현재 커널 재시작하기
클라이언트에서 서비스를 다시 시작하거나, 클라이언트를 완전히 종료한 뒤 다시 열어 커널이 파일을 새로 읽게 하세요. 기본 창만 닫으면 프로그램이 트레이에 최소화된 것일 수 있으며, 서비스가 재시작된 것은 아닙니다.
-
시작 로그 확인하기
리소스 파일을 찾을 수 없음, 분류를 찾을 수 없음, 설정 분석 실패와 같은 오류가 있는지 확인하세요. 그런 다음 직접 연결되어야 하는 도메인, 프록시를 사용해야 하는 도메인, 로컬 네트워크 주소를 각각 테스트해 라우팅 결과를 확인합니다.
파일을 직접 업데이트할 때는 먼저 커널을 중지한 다음, 호환되는 파일을 확인된 리소스 폴더에 넣으세요. 파일명은 geoip.dat와 geosite.dat로 정확히 유지해야 합니다. 웹페이지나 압축 파일, 확장자가 중복된 파일의 이름을 바꿔 데이터 파일로 사용하지 마세요. 업데이트 후 시작에 실패하면 백업을 복원하고 재시작한 뒤 새 데이터베이스의 태그와 형식을 점검하세요.
Android 기기에서는 v2rayNG 또는 v2flyNG에서 제공하는 Geo 데이터 업데이트나 리소스 가져오기 기능을 사용하세요. 메뉴 이름은 버전에 따라 달라질 수 있으므로 데스크톱 경로를 그대로 따라 하면 안 됩니다. 앱 전용 폴더와 시스템 ‘다운로드’ 폴더도 서로 다릅니다. 메뉴를 찾지 못하더라도 현재 작동하는 설정을 보존하고, 업데이트를 시도하려고 앱 데이터를 삭제하지 마세요.
geosite:cn 및 geoip:private 라우팅 설정
아래는 기본 V2Ray/Xray 설정의 routing 객체 예시이며, 그대로 가져와 사용할 수 있는 완전한 클라이언트 설정은 아닙니다. 기존 아웃바운드 태그가 direct와 proxy라고 가정합니다. 각각 직접 연결과 프록시 연결을 뜻합니다. 실제 태그가 다르면 설정에 이미 존재하는 이름으로 바꿔야 합니다.
{
"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"
},
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "proxy"
}
]
}
}
- 사설 주소 우선 처리:
geoip:private를 사용하면 내부 네트워크 대상이 프록시를 거치는 일을 방지할 수 있습니다. 데이터 출처에 이 태그가 있어야 합니다. ‘프록시를 거칠 필요가 없는 모든 주소’를 뜻하는 태그는 아닙니다. - 도메인 분류에 따라 직접 연결: 대상 도메인이
geosite:cn에 해당하면 이 규칙에 따라 직접 연결합니다. IP 분류를 다시 확인할 필요는 없습니다. - 주소 분류로 보완:
geoip:cn은 알려진 대상 IP를 매칭할 수 있습니다. 도메인 연결이 IP 규칙에 매칭되는지는 도메인 조회 정책에도 영향을 받습니다. - 마지막 기본 규칙: 예시에서는 나머지 TCP 및 UDP 트래픽을 프록시로 보냅니다. 클라이언트가 이미 기본 규칙을 생성했다면 충돌할 수 있는 마지막 규칙을 중복으로 추가하지 마세요.
v2rayN의 ‘설정’ → ‘라우팅 설정’에서 편집할 때는 보통 도메인 조건, IP 조건, 아웃바운드를 각각 입력해야 합니다. JSON 전체를 ‘도메인’ 입력란에 붙여 넣지 마세요. 하나의 규칙에 domain과 ip를 함께 입력하면 일반적으로 두 조건을 모두 충족해야 합니다. 어느 한쪽만 충족해도 된다는 뜻이 아닙니다. 도메인이나 주소 중 하나가 일치하면 직접 연결하려면 예시처럼 규칙을 두 개로 나누세요.
실제 주소로 라우팅 결과 확인하기
업데이트 적용 여부는 웹페이지가 열리는지만으로 판단할 수 없습니다. 접속에 성공해도 프록시 기본 규칙, 앱 캐시 또는 기존 연결 덕분일 수 있습니다. 먼저 커널을 재시작하고 테스트 앱의 기존 연결을 끊은 다음, 새 요청의 대상과 아웃바운드 기록을 확인하세요. 현재 로그 수준에서 라우팅 정보가 보이지 않으면 잠시 로그 상세 수준을 높이고, 확인을 마친 뒤 원래대로 되돌리세요.
| 테스트 대상 | 예상 결과 | 배제해야 할 변수 |
|---|---|---|
192.168.1.1 같은 실제 내부 네트워크 기기 | 요청이 실제로 커널에 전달되면 사설 주소 규칙에 따라 직접 연결 | 시스템 프록시가 내부 네트워크 주소를 우회하도록 설정되어 있으면 커널에 요청이 전달되지 않을 수 있음 |
현재 데이터베이스의 cn 태그에 포함된 도메인 확인 | 도메인 규칙에 따라 직접 연결 | 요청에 IP만 있고 도메인이 전달되지 않았거나 분류 데이터 출처가 다름 |
| 프록시 규칙에 명시적으로 추가한 테스트 도메인 | 설정된 프록시 아웃바운드 선택 | 앞에 더 광범위한 직접 연결 규칙이 있음 |
| 명시적 분류가 없는 대상 | 조회 정책과 기본 규칙에 따라 처리 | 기본 규칙으로 접속된 것을 Geo 분류에 매칭된 것으로 오인 |
IPv4 사설 주소 대역은 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16의 세 가지입니다. 이 주소 범위는 CIDR을 이해하는 데 도움이 되지만, 모든 데이터베이스에서 geoip:private가 포함하는 전체 범위는 아닙니다. 실제 데이터베이스에는 루프백, 링크 로컬, IPv6 관련 범위도 들어갈 수 있으므로 데이터 출처의 정의를 확인하세요.
Geo 파일만으로 DNS 요청이 의도한 아웃바운드로 전달된다고 보장할 수는 없습니다. 기존 DNS의 53번 포트 요청, 앱 자체의 암호화된 DNS 조회, 커널 내장 DNS가 서로 다른 경로를 사용할 수 있습니다. 도메인 라우팅에 문제가 있다면 요청에 도메인이 유지되는지, DNS 설정은 어떤지, TUN이 어느 범위까지 트래픽을 가로채는지 함께 확인하세요. 조회 경로 문제를 가리려고 분류 데이터베이스를 반복해서 바꾸지 마세요.
업데이트 실패 및 규칙 미매칭 문제 해결
파일을 교체했는데 라우팅 결과가 그대로인 이유는 무엇인가요?
먼저 현재 커널을 재시작한 다음 시작 매개변수와 리소스 폴더를 확인하세요. PC에 v2rayN이 여러 개 설치되어 있다면 바탕 화면 바로 가기로 실행한 프로그램이 파일을 교체한 프로그램과 다를 수 있습니다. 마지막으로 현재 라우팅 구성이 올바르게 활성화되어 있는지 확인하세요. 사용하지 않는 구성만 수정했을 수도 있습니다.
로그에 GeoSite 태그를 찾을 수 없다고 표시되면 어떻게 하나요?
규칙의 태그 철자를 확인하고 현재 데이터 출처에서 해당 분류를 제공하는지 살펴보세요. 출처가 다른 데이터베이스가 같은 태그 구성을 제공한다고 가정하지 마세요. 기존 데이터 파일을 복원하거나 규칙을 구체적인 도메인 조건으로 바꿀 수 있습니다. 변경하기 전에 원래 규칙을 저장해 두면 비교하기 쉽습니다.
Geo 파일 업데이트가 계속 시간 초과되는데 재설치해야 하나요?
먼저 업데이트 주소에 접속할 수 있는지 확인하세요. 클라이언트에서 프록시를 통한 다운로드를 지원한다면 사용 가능한 프록시로 연결한 뒤 다시 시도할 수 있습니다. 커널을 재시작할 때 업데이트 작업이 중단되는지도 확인하세요. 재설치해도 데이터 출처에 접속할 수 없는 문제는 해결되지 않으므로, 우선 현재 사용 가능한 파일을 보관하세요.
업데이트 후 한국 내 웹사이트가 프록시를 거치기 시작하면 어떻게 확인하나요?
‘활성화된 라우팅 구성 → 규칙 순서 → 도메인 전달 여부 → 태그에 대상 포함 여부 → 조회 정책’ 순서로 점검하세요. 필요하면 분류 규칙 앞에 full:example.com 같은 정확한 도메인 테스트 규칙을 추가해 규칙 경로만 확인한 뒤 삭제하세요. 문제를 찾는 대신 모든 트래픽을 직접 연결하도록 바꾸지 마세요.
장기적으로 관리할 때는 한 번에 한 종류의 변수만 변경하는 것이 좋습니다. 먼저 데이터 파일을 업데이트하고 확인한 다음 규칙이나 DNS를 조정하세요. 데이터 출처와 교체 위치, 작업 시간을 기록하면 필요할 때 되돌릴 수 있습니다. 업데이트 주기는 실제 분류 변경에 맞추면 됩니다. 파일 날짜를 최신으로 유지하려고 이미 검증된 규칙을 자주 교체할 필요는 없습니다.