V2Ray 라우팅 규칙 설정 실전: geosite와 geoip로 중국 본토·해외 트래픽 분기

자주 쓰는 분기 시나리오로 라우팅 규칙 작성법을 설명합니다. 중국 본토 도메인과 IP는 직접 연결하고, 나머지는 프록시로 보내며, 광고 도메인은 차단합니다. 규칙 우선순위와 아웃바운드 태그 연결 관계, 적용 여부 확인 방법까지 다룹니다.

이 글 한눈에 보기

이 글은 노드에 정상적으로 연결할 수 있고 라우팅 정책을 조정하려는 사용자를 대상으로 합니다. 최종 설정은 “광고 차단, 로컬 네트워크 직접 연결, 중국 본토 도메인 직접 연결, 중국 본토 IP 직접 연결, 나머지 프록시” 순서로 트래픽을 처리하며, 코어 로그와 지정 프록시 포트, 도메인 해석 결과를 통해 단계별로 확인합니다.

먼저 분기 목표와 매칭 흐름을 정하세요

라우팅 핵심

라우팅 분기는 VLESS, VMess 등의 프록시 연결을 만드는 기능이 아닙니다. 요청이 코어에 들어온 뒤 어떤 아웃바운드를 사용할지 결정할 뿐입니다. 노드 주소, 포트, 전송 계층, 인증 매개변수는 여전히 프록시 아웃바운드 설정에 속하고, 라우팅 규칙은 이미 존재하는 아웃바운드 태그만 참조합니다. 이 두 계층을 혼동하는 것이 “노드에는 연결되지만 규칙이 적용되지 않는” 가장 흔한 원인 중 하나입니다.

라우팅 핵심

이 예제에서는 세 개의 아웃바운드 태그를 사용합니다. proxy는 현재 프록시 노드, direct는 freedom 직접 연결 아웃바운드, block은 blackhole 차단 아웃바운드에 해당합니다. 태그는 대소문자를 구분하므로 규칙의 outboundTag는 아웃바운드의 tag와 완전히 일치해야 합니다.

애플리케이션이 요청 전송로컬 진입점에서 수신도메인 규칙 매칭IP 규칙 매칭아웃바운드 선택

라우팅 핵심

V2Ray와 Xray의 라우팅 규칙은 배열 순서대로 검사합니다. 요청이 조건에 맞는 첫 번째 규칙과 일치하면 이후 매칭을 중단하므로, 규칙은 “많을수록 우선”이 아니라 “앞에 있을수록 우선”입니다. 광고 도메인은 중국 본토 도메인보다 앞에 배치해야 합니다. 두 집합에 동시에 속한 도메인이 직접 연결 규칙에 먼저 넘어가는 일을 막을 수 있습니다.

광고 차단

매칭 대상
geosite:category-ads-all
아웃바운드 태그
block
권장 위치
첫 번째 규칙

먼저 차단한 뒤 지역을 판단해야 광고 도메인이 중국 본토 규칙에 의해 먼저 직접 연결되지 않습니다.

로컬 네트워크 직접 연결

매칭 대상
geoip:private
아웃바운드 태그
direct
대표 주소
192.168.0.0/16

라우터, 파일 서버 및 기타 내부 네트워크 장치에 대한 로컬 접근 경로를 유지합니다.

중국 본토 리소스 직접 연결

도메인 집합
geosite:cn
IP 집합
geoip:cn
아웃바운드 태그
direct

도메인과 IP를 두 규칙으로 나누면 로그에서 실제 매칭 단계를 확인하기 쉽습니다.

나머지 트래픽은 프록시 사용

매칭 네트워크
tcp,udp
아웃바운드 태그
proxy
권장 위치
마지막 규칙

대체 규칙은 반드시 마지막에 둬야 합니다. 앞에 배치하면 이후의 모든 TCP 및 UDP 규칙을 가로채게 됩니다.

geosite와 geoip는 각각 무엇을 매칭할까

라우팅 핵심

geosite는 도메인 집합입니다. 요청에 도메인 정보가 남아 있으면 코어가 해당 도메인이 geosite:cn 또는 geosite:category-ads-all에 속하는지 바로 판단할 수 있습니다. 집합에는 전체 도메인, 하위 도메인 규칙 또는 키워드 규칙이 포함될 수 있으며, 실제 범위는 클라이언트에 함께 제공되는 데이터 파일 버전에 따라 달라집니다.

라우팅 핵심

geoip는 IP 대역 집합입니다. 애플리케이션이 IP로 직접 접속하거나, 도메인 규칙이 일치하지 않은 뒤 해석을 수행하거나, 트래픽 진입점에서 대상 IP만 확인할 수 있을 때 코어가 geoip:cn으로 지역을 판단할 수 있습니다. 웹사이트 이름으로 소속 지역을 추정하는 기능은 없으며, 대상 주소가 데이터 파일에 기록된 대역에 포함되는지만 비교합니다.

매칭 방식 입력 대상 예시 적합한 용도
geosite 도메인 geosite:cn 사이트 유형 또는 지역별로 관리되는 도메인 집합
geoip IPv4 또는 IPv6 주소 geoip:cn 직접 연결 IP 요청 및 해석된 주소 확인
domain 명시적 도메인 규칙 domain:example.com 고정적으로 예외 처리해야 하는 소수의 사이트
ip 명시적 대역 192.168.0.0/16 내부 네트워크, 전용 서비스 또는 자체 관리 대역

결론: 도메인을 우선 보존하고 IP로 보완하세요

geoip:cn만 작성하면 도메인 요청이 해석 결과에 의존하게 되어 판단 단계가 늘어나고 해석 위치의 영향도 받을 수 있습니다. 먼저 geosite:cn으로 명확한 도메인을 처리한 다음 geoip:cn으로 나머지 중국 본토 주소를 처리하면 규칙을 설명하고 문제를 추적하기가 더 쉽습니다.

전체 라우팅 설정과 규칙 순서

라우팅 핵심

아래 JSON은 라우팅과 세 가지 아웃바운드로 구성한 최소 조합이며, 고급 설정의 구조를 참고하는 용도로 사용할 수 있습니다. 실제 사용 시에는 기존 설정의 인바운드, DNS, 로그 및 프록시 서버 매개변수도 유지해야 하며, 이 내용을 클라이언트 설정 전체에 그대로 덮어써서는 안 됩니다.

라우팅 핵심

domainStrategyIPIfNonMatch로 설정하면 코어가 먼저 도메인 규칙을 확인합니다. 도메인이 일치하지 않을 때 대상 도메인을 해석한 뒤 IP 규칙을 시도합니다. 따라서 geosite를 사용하면서 geoip를 두 번째 판단 단계로 활용할 수 있습니다.

{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "domain": [
          "geosite:category-ads-all"
        ],
        "outboundTag": "block"
      },
      {
        "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"
      }
    ]
  },
  "outbounds": [
    {
      "tag": "proxy",
      "protocol": "vless",
      "settings": {
        "vnext": []
      }
    },
    {
      "tag": "direct",
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "block",
      "protocol": "blackhole",
      "settings": {}
    }
  ]
}

라우팅 핵심

예시의 빈 vnext는 프록시 노드 매개변수를 기존 구독 설정에서 제공해야 한다는 뜻일 뿐이며, 연결 가능한 노드로 사용할 수 없습니다. v2rayN에서는 구독을 가져오면 완전한 프록시 아웃바운드가 생성됩니다. 라우팅을 수동으로 관리할 때는 클라이언트가 생성한 프록시 태그를 참조해야 하며, 서버 정보를 삭제한 빈 배열을 그대로 사용해서는 안 됩니다.

  1. 먼저 광고 도메인과 사용자 지정 도메인처럼 명확히 차단하거나 우선 적용해야 하는 규칙을 배치합니다.
  2. 그다음 geoip:private를 배치해 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 등의 사설 주소가 직접 연결되도록 합니다.
  3. 이후 geosite:cngeoip:cn을 차례로 배치해 중국 본토 도메인과 중국 본토 주소를 각각 처리합니다.
  4. 마지막으로 network: tcp,udpproxy로 보내 일치하지 않은 요청의 대체 경로로 사용합니다.

v2rayN에 설정 적용하기

라우팅 핵심

v2rayN 7.10.x의 화면 구성을 기준으로 설명하면, 먼저 「설정」→「매개변수 설정」에서 로컬 수신 포트와 로그 수준을 확인합니다. 일반적인 설정에서는 SOCKS 포트가 10808, HTTP 포트가 10809이지만 업그레이드나 이전 후에는 실제 포트가 다를 수 있으므로, 검증 명령에는 현재 화면에 표시된 값을 사용해야 합니다.

라우팅 핵심

라우팅 진입점은 보통 「설정」→「라우팅 설정」에 있습니다. 새 규칙 집합을 만든 뒤 광고 도메인, 사설 IP, 중국 본토 도메인, 중국 본토 IP, 최종 프록시 규칙을 차례로 추가하고 해당 규칙 집합을 현재 규칙으로 지정합니다. 7.x의 세부 버전에 따라 버튼 위치는 달라질 수 있지만 규칙 이름, 순서, 아웃바운드 태그를 확인하는 방법은 같습니다.

라우팅 핵심

구독을 업데이트하면 노드가 다시 생성될 수 있지만, 일반적으로 사용자 지정 라우팅까지 자동으로 수정하지는 않습니다. 구독 업데이트 후에는 현재 활성 규칙 집합이 기본 설정으로 되돌아가지 않았는지 확인하고, 선택한 노드가 여전히 사용 가능한 프록시 아웃바운드에 연결되는지도 점검하세요. 수정 후에는 코어를 다시 시작해야 하며, 규칙만 저장하고 코어를 다시 불러오지 않으면 실행 중인 라우팅 상태가 바뀌지 않습니다.

중국 본토·해외 트래픽 분기가 실제로 적용되는지 확인하기

라우팅 핵심

“웹페이지가 열린다”는 것은 연결 경로가 기본적으로 작동한다는 뜻일 뿐, 트래픽이 예상한 아웃바운드로 전송됐다는 증거는 아닙니다. 확인할 때는 요청 대상, 코어 로그의 규칙 매칭 결과, 최종 아웃바운드 태그를 함께 살펴보세요. 먼저 로그 수준을 임시로 info로 설정해 점검한 뒤, 기록이 장기간 쌓이지 않도록 원래 설정으로 되돌리는 것이 좋습니다.

라우팅 핵심

1차 테스트는 브라우저로 진행합니다. 중국 본토 도메인 집합에 속하는 것이 확실한 사이트, 프록시가 필요한 사이트, 라우터 관리 주소를 각각 방문하세요. 예상 결과는 중국 본토 사이트가 direct, 나머지 사이트가 proxy, 라우터 주소가 geoip:private를 통해 직접 연결되는 것입니다.

라우팅 핵심

2차 테스트에서는 브라우저 확장 프로그램과 캐시를 우회하고 v2rayN의 HTTP 프록시 포트를 직접 지정해 요청을 보냅니다. 현재 HTTP 포트가 10809라면 Windows, macOS 또는 Linux 터미널에서 아래 명령을 실행할 수 있습니다. 테스트 주소는 접근 로그를 직접 확인할 수 있는 HTTP 서비스로 바꿔야 합니다.

curl --proxy http://127.0.0.1:10809 https://your-test-endpoint.example/
curl --proxy http://127.0.0.1:10809 -I https://your-test-endpoint.example/
nslookup your-test-endpoint.example

라우팅 핵심

확인할 때 반환 IP만 비교하지 마세요. 일부 사이트는 분산 노드를 사용하므로 같은 도메인도 해석 위치에 따라 다른 주소를 반환할 수 있습니다. 더 신뢰할 수 있는 근거는 v2rayN 코어 로그에 표시되는 대상 도메인, 대상 포트, 그리고 해당 direct, proxy 또는 block 아웃바운드입니다.

중국 본토 사이트가 여전히 프록시를 거치는 이유는?

라우팅 핵심

먼저 geosite:cn이 최종 프록시 규칙보다 앞에 있는지 확인한 다음, 로그에 대상 도메인이 남아 있는지 점검하세요. 진입점에서 대상 IP만 제공한다면 domainStrategygeoip:cn이 정상적으로 로드되었는지도 확인해야 합니다.

로컬 네트워크 주소가 갑자기 열리지 않을 때는?

라우팅 핵심

geoip:privatedirect를 가리키는지 확인하고, network: tcp,udp 대체 규칙보다 앞에 배치되어 있는지도 점검하세요. 192.168.1.1에 접속할 때 로그에 proxy가 표시되어서는 안 됩니다.

광고 규칙 때문에 페이지 일부가 표시되지 않을 때는?

라우팅 핵심

먼저 category-ads-all을 일시적으로 비활성화하고 다시 테스트하세요. 오차단이 원인으로 확인되면 필요한 도메인에 더 앞선 direct 규칙을 추가해야 하며, 광고 규칙 전체를 중국 본토 직접 연결 규칙 뒤로 옮겨서는 안 됩니다.

규칙을 저장했지만 로그가 바뀌지 않을 때는?

라우팅 핵심

방금 수정한 규칙 집합이 활성화되어 있는지 확인한 뒤 코어를 다시 시작하세요. v2rayN에서 사전 정의 라우팅 방식도 동시에 활성화되어 있다면 현재 방식이 사용자 지정 규칙을 덮어쓰는지 점검합니다.

UDP 요청이 규칙대로 분기되지 않을 때는?

라우팅 핵심

대체 규칙의 networktcp,udp가 모두 포함되어 있는지 확인하고, 현재 프록시 노드의 전송 설정이 대상 UDP 트래픽을 지원하는지도 점검하세요. 라우팅 규칙에 일치했다고 해서 해당 아웃바운드가 요청을 반드시 처리할 수 있다는 뜻은 아닙니다.

흔한 오차와 유지 관리 전략

라우팅 핵심

트래픽 분기 결과는 도메인 소속, 서비스 배포 위치, 규칙 데이터 업데이트에 따라 달라집니다. 중국 본토 서비스가 해외 주소를 사용할 수도 있고, 해외 브랜드가 중국 본토에 노드를 배치할 수도 있습니다. 따라서 geosite와 geoip는 실시간 사업자 소속이 아니라 규칙 데이터 기준의 분류를 제공합니다. 업무 시스템이나 자체 서비스처럼 대상이 명확한 경우에는 명시적 도메인 규칙이 지역 집합보다 안정적인 편입니다.

라우팅 핵심

사용자 지정 오버라이드 규칙은 적고 명확하게 유지하세요. 강제로 직접 연결해야 한다면 구체적인 도메인 규칙을 광고 및 지역 규칙보다 앞에 두고 direct를 지정합니다. 강제로 프록시를 사용해야 할 때도 지역 직접 연결 규칙보다 앞에 두고 proxy를 지정하세요. 오버라이드 규칙을 추가할 때마다 용도를 기록해야 몇 달 뒤 설명할 수 없는 예외 목록만 남는 일을 피할 수 있습니다.

결론: 분기 문제는 순서, 태그, 데이터 순으로 확인하세요

대부분의 문제는 세 단계로 좁혀갈 수 있습니다. 앞선 규칙이 요청을 먼저 가로챘는지 확인하고, 일치한 outboundTag가 존재하는지 확인한 다음, geosite 및 geoip 집합이 정상적으로 로드되었는지 확인하세요. 세 항목이 모두 정상일 때만 DNS와 노드 전송 계층을 추가로 점검하면 됩니다.

V2Ray 클라이언트 받기 Windows, macOS, Android, Linux에 맞게 선택