라우팅 예상 읽기 시간 14분

V2Ray 라우팅 규칙 설정 실전: 중국 본토 직접 연결과 해외 프록시 분기 방법

v2rayN 라우팅 설정을 예로 들어 domain, ip, geosite 규칙의 매칭 순서와 작성법을 설명하고, 중국 본토 직접 연결·해외 프록시·광고 차단에 자주 쓰는 규칙 조합과 충돌 해결 방법을 소개합니다.

라우팅은 하나의 연결이 최종적으로 어느 아웃바운드로 들어갈지 결정합니다. 노드는 프록시 연결을 만들고, 라우팅 규칙은 어떤 요청을 프록시로 보낼지, 직접 접속할지, 즉시 차단할지를 판단합니다. 두 기능은 서로 독립된 계층입니다. VMess 또는 VLESS 노드를 바꿔도 트래픽 분기 규칙이 자동으로 수정되지는 않으며, 구독을 업데이트해도 로컬에서 직접 만든 라우팅 규칙이 보통 덮어써지지 않습니다.

이 글 한눈에 보기

이 글은 v2rayN에서 노드에 연결할 수 있지만 중국 본토 직접 연결과 해외 프록시를 설정해야 하는 사용자를 위한 안내서입니다. 위에서 아래로 적용되는 매칭 방식, v2rayN 메뉴 조작, domain 및 ip 작성법, GeoSite와 GeoIP 데이터 참조, 광고 도메인 차단, 로그로 잘못된 매칭을 찾는 방법을 다룹니다.

V2Ray 라우팅 규칙 매칭 모델부터 이해하기

V2Ray와 Xray의 라우팅 규칙은 설정 배열에 적힌 순서대로 확인됩니다. 연결이 처음으로 모든 조건에 맞는 규칙을 찾으면 아웃바운드가 결정되고, 뒤의 규칙은 더 이상 판단에 참여하지 않습니다. 따라서 범위가 좁고 의도가 분명한 규칙은 앞에, 범위가 넓은 최종 대체 규칙은 뒤에 배치해야 합니다. 광고 차단은 보통 중국 본토 직접 연결보다 먼저, 중국 본토 직접 연결은 최종 프록시 대체 규칙보다 먼저 둡니다.

규칙의 domainipportnetworkprotocol은 매칭 조건이고, outboundTag는 매칭 후 이동할 대상입니다. v2rayN이 생성하는 설정에는 proxydirectblock 아웃바운드 태그가 자주 사용되지만, 실제 태그는 현재 클라이언트에서 내보낸 설정을 기준으로 확인해야 하며 이름만 보고 추측해서는 안 됩니다.

10808
로컬 SOCKS 기본 포트 예시
10809
로컬 HTTP 기본 포트 예시
3가지
프록시·직접 연결·차단 아웃바운드
1회
첫 매칭 후 검사 중지

포트 번호는 클라이언트 설정에 따라 달라집니다. 위의 1080810809는 로컬 진입 포트와 원격 대상 포트가 서로 다른 개념임을 설명하기 위한 예시일 뿐입니다. 라우팅의 port: 443은 접속 대상의 443번 포트와 매칭되며, v2rayN이 로컬에서 수신하는 포트가 아닙니다. 둘을 혼동하면 브라우저 트래픽이 의도한 규칙을 완전히 우회할 수 있습니다.

  • 도메인 요청: 먼저 도메인 규칙으로 판단합니다. 예를 들어 domain:example.comfull:example.com 또는 geosite:cn을 사용할 수 있습니다.
  • IP 요청: IP 주소로 직접 접속할 때는 geoip:cngeoip:private 또는 CIDR 대역으로 매칭할 수 있습니다.
  • 도메인을 IP로 변환: IP 규칙과 매칭하기 위해 도메인을 조회할지는 domainStrategy에 따라 달라집니다.
  • 최종 이동 대상: 어떤 규칙에도 매칭되지 않으면 라우팅 설정 외부에 정의된 기본 아웃바운드로 연결되며, 결과는 클라이언트의 설정 생성 방식에 따라 달라집니다.

v2rayN에서 되돌릴 수 있는 라우팅 설정 만들기

아래 절차는 v2rayN 7.15.x의 한국어가 아닌 중국어 인터페이스를 기준으로 설명합니다. 마이너 버전에 따라 메뉴 배치는 달라질 수 있지만, 핵심 확인 경로는 매개변수 설정, 라우팅 설정, 현재 라우팅 모드입니다. 수정하기 전에 기존 모드를 기록하고, 최소 한 개의 노드가 기본 연결 테스트를 통과했는지 확인하세요. 그렇지 않으면 노드 장애와 라우팅 오류가 로그에서 비슷한 시간 초과로 나타날 수 있습니다.

  1. 코어 확인

    「설정」→「매개변수 설정」→「Core 유형」을 열어 현재 프로토콜에 맞는 코어를 확인합니다. VLESS 노드는 일반적으로 Xray 코어가 처리하며, 기존 VMess 설정은 구독에서 실제로 제공하는 필드에 맞춰 불러와야 합니다.

  2. 포트 기록

    「설정」→「매개변수 설정」→「기본 설정」에서 로컬 SOCKS 및 HTTP 수신 포트를 확인하고, LAN 연결 허용 스위치의 상태도 기록합니다. 그래야 테스트 도구가 잘못된 포트에 연결되는 일을 피할 수 있습니다.

  3. 규칙 복사

    「설정」→「라우팅 설정」으로 이동해 현재 사용할 수 있는 규칙 세트를 복사한 뒤 편집합니다. 유일한 구성을 바로 덮어쓰지 말고 기존 규칙을 남겨 두세요. 문제가 생기면 1분 안에 원래 설정으로 되돌릴 수 있습니다.

  4. 순서 조정

    광고 차단, 사설 주소 직접 연결, 중국 본토 도메인 직접 연결, 중국 본토 IP 직접 연결, 최종 프록시 규칙 순서로 배치하고 각 항목의 아웃바운드 태그가 존재하는지 확인합니다.

  5. 적용 및 재시작

    저장한 뒤 새 라우팅 구성을 선택하고 코어를 재시작한 다음 시스템 프록시를 다시 켭니다. 편집 내용만 저장하고 현재 구성을 전환하지 않으면 실행 중인 설정은 바뀌지 않습니다.

시스템 프록시는 시스템 프록시 설정을 따르는 프로그램에만 영향을 줍니다. 프로그램이 직접 연결을 시작하거나 다른 프록시 포트를 고정해 사용하거나 기존 연결을 캐시하고 있다면 v2rayN 라우팅을 수정해도 트래픽이 즉시 바뀌지 않습니다. 테스트할 때는 대상 프로그램을 종료한 뒤 다시 열고, 시스템 프록시가 현재 v2rayN 수신 포트를 가리키는지 확인해야 합니다.

중국 본토 직접 연결·해외 프록시·광고 차단 조합

관리하기 쉬운 규칙 세트는 확실하게 판단할 수 있는 트래픽부터 처리해야 합니다. 광고 분류에 매칭되면 차단 아웃바운드로 보내고, LAN·루프백 주소·중국 본토 리소스는 직접 연결로 보냅니다. 나머지 TCP 및 UDP 트래픽은 프록시로 보냅니다. 이렇게 하면 모든 해외 도메인을 일일이 등록할 필요가 없고, 새 사이트도 자연스럽게 마지막 프록시 대체 규칙에 들어갑니다.

중국 본토 직접 연결

도메인 모음
geosite:cn
IP 모음
geoip:cn
사설 네트워크 대역
geoip:private
아웃바운드 태그
direct

사설 주소 규칙은 프록시 대체 규칙보다 앞에 둬야 라우터 관리 페이지와 LAN 장치가 원격 노드로 들어가는 것을 막을 수 있습니다.

차단 및 프록시

광고 모음
geosite:category-ads-all
차단 태그
block
네트워크 대체 규칙
tcp,udp
프록시 태그
proxy

대체 규칙은 반드시 마지막에 둬야 합니다. 맨 위에 배치하면 뒤에 있는 중국 본토 직접 연결 규칙이 모두 무시됩니다.

이에 해당하는 코어 설정은 다음과 같은 구조로 작성할 수 있습니다. 이 예시는 routing 객체만 보여 주며, 전체 설정에 넣을 때는 기존 인바운드·아웃바운드·DNS 및 노드 매개변수도 필요합니다. v2rayN 라우팅 편집기가 그래픽 필드를 사용하는 경우에는 같은 순서로 항목을 하나씩 입력해야 하며, 객체 전체를 하나의 도메인 입력란에 붙여 넣어서는 안 됩니다.

{
  "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"
      }
    ]
  }
}

domainStrategy: IPIfNonMatch는 도메인 규칙에 매칭되지 않을 때 해당 도메인을 조회한 뒤 IP 규칙을 다시 시도할 수 있다는 뜻입니다. “먼저 IP를 조회한 다음 도메인을 확인한다”는 의미가 아니며, 모든 도메인을 조건 없이 미리 조회하지도 않습니다. 이 모드는 geosite:cngeoip:cn을 함께 사용하는 일반적인 트래픽 분기에 적합합니다.

  1. 라우터 관리 주소나 LAN 서비스를 열어 geoip:private가 직접 연결로 들어가는지 확인합니다.
  2. 자주 사용하는 중국 본토 사이트에 접속하고, 로그에 표시된 대상 도메인과 최종 아웃바운드가 direct인지 확인합니다.
  3. 프록시가 필요한 대상에 접속해 범위가 넓은 사용자 지정 도메인 규칙 때문에 일찍 직접 연결되지 않는지 확인합니다.
  4. 광고 분류 요청이 포함된 것으로 알려진 테스트 페이지를 열고 차단된 도메인을 확인합니다. 페이지에 빈 공간이 생겼다는 이유만으로 판단하지 마세요.

domain·ip·GeoSite·GeoIP의 배치 순서

domain 규칙은 사이트 소속과 명확한 도메인을 표현하는 데 적합합니다. full:api.example.com은 완전한 호스트 이름만 매칭하고, domain:example.com은 주 도메인과 하위 도메인을 매칭하며, regexp:는 꼭 필요한 정규식 조건에 사용합니다. 정규식은 처리 비용과 오매칭 위험이 더 크므로 완전한 도메인이나 접미사로 표현할 수 있다면 먼저 선택하지 않는 것이 좋습니다.

geosite:cn은 도메인을 분류해 정리한 데이터 모음이고, geoip:cn은 IP 대역을 기준으로 정리한 데이터 모음입니다. 둘은 같은 데이터의 표기만 다른 것이 아닙니다. 사이트가 해외 호스팅 주소를 사용하더라도 서비스 분류가 중국 본토라면 GeoSite가 먼저 직접 연결로 보낼 수 있습니다. 반대로 도메인이 모음에 없지만 중국 본토 IP로 해석되면 IPIfNonMatch가 GeoIP 규칙을 계속 적용할 수 있습니다.

권장 구성: 도메인 우선, IP 보완, 프록시 대체

도메인 판단 계층
  • 광고 분류는 먼저 block으로 보냅니다
  • 정확한 예외는 분류 모음보다 앞에 둡니다
  • geosite:cn은 direct로 보냅니다
  • 매칭되지 않을 때는 로그 확인을 위해 원래 도메인을 유지합니다
IP 및 대체 계층
  • geoip:private로 LAN 접속을 보호합니다
  • geoip:cn으로 중국 본토 IP 판단을 보완합니다
  • 마지막에 tcp,udp를 proxy로 보냅니다
  • DNS 조회 결과는 현재 네트워크 환경과 일치해야 합니다

규칙 순서의 핵심은 “도메인이 항상 IP보다 우선한다”가 아닙니다. 더 명확한 예외를 먼저 배치하고, 그다음 분류 모음을 두며, 마지막에 모든 연결을 포괄하는 대체 조건을 배치하는 것이 핵심입니다.

사용자 지정 예외는 모음 규칙보다 앞에 둬야 합니다. 예를 들어 중국 본토 분류 도메인이 현재 네트워크에서 직접 연결에 실패한다면 완전한 도메인 프록시 규칙을 추가하고 geosite:cn보다 앞에 배치할 수 있습니다. 반대로 해외 서비스 중 로컬 네트워크에서만 직접 연결해야 하는 대상이 있다면 정확한 직접 연결 규칙을 프록시 대체 규칙보다 앞에 둬야 합니다.

{
  "type": "field",
  "domain": [
    "full:api.example.com",
    "domain:static.example.net"
  ],
  "outboundTag": "proxy"
}

세 가지 트래픽 분기 방식의 적용 범위

모든 환경에 통하는 고정된 최적의 분기 방식은 없습니다. 일반적인 데스크톱 사용에는 분류 데이터와 대체 규칙 조합이 적합하고, 특정 업무 도메인을 엄격하게 제어하려면 정확한 규칙이 적합합니다. 단기 진단에는 전체 프록시를 잠시 사용해 문제가 분기 계층에 있는지 확인할 수 있습니다. 진단이 끝나면 오매칭을 가리는 전체 모드에 장기간 의존하지 말고, 동작을 설명할 수 있는 규칙 세트로 되돌려야 합니다.

분류 데이터 및 프록시 대체

권장

geosite:cngeoip:cn 및 사설 주소 직접 연결을 사용하고, 마지막에는 TCP 및 UDP 규칙으로 프록시에 보냅니다. 규칙 수가 적고 지리 데이터를 업데이트하면 새로 추가된 도메인과 네트워크 대역까지 적용할 수 있습니다.

적합한 경우: 일상적인 웹 탐색, 구독 노드 전환, 장기 유지 관리

정확한 도메인 허용 목록

full: 또는 domain:으로 직접 연결 및 프록시 대상을 관리하면 동작을 예측하기 쉽지만, 도메인이 바뀔 때 수동으로 추가해야 합니다. 서비스에 여러 API 도메인이 포함되어 있다면 로그를 함께 확인해 전체 목록을 수집해야 합니다.

적합한 경우: 고정된 업무 서비스, 소수의 지정 도메인, 엄격한 예외 제어

임시 전체 프록시

관리 대상 연결 대부분을 프록시로 보내 노드와 대상 서비스의 연결 가능 여부를 확인합니다. 중국 본토 직접 연결 규칙은 검증할 수 없고, LAN이나 로컬 서비스에 문제가 생길 수도 있습니다.

적합한 경우: 단기 문제 해결, 노드 출구 확인, 분기 결과 비교

v2rayNG가 Xray 코어를 사용할 때 domain·GeoSite·GeoIP와 규칙 순서의 기본 논리는 동일하지만, Android에서는 앱별 프록시 설정, LAN 우회, 시스템 네트워크 전환의 영향도 받습니다. v2flyNG가 v2fly 코어를 사용할 때는 해당 코어가 실제로 지원하는 설정 필드를 기준으로 삼아야 합니다. 데스크톱에서 생성한 전체 설정을 모바일 인터페이스의 규칙으로 그대로 옮겨 적지 마세요.

  • 같은 구독은 노드만 제공할 뿐, 클라이언트가 달라지면 라우팅 설정까지 완전히 동일하게 생성된다는 뜻은 아닙니다.
  • VMess와 VLESS는 노드 연결 방식을 설명할 뿐, 특정 대상 도메인을 직접 연결할지 프록시로 보낼지는 결정하지 않습니다.
  • 노드를 바꾼 뒤에도 라우팅은 일반적으로 계속 적용되지만, 아웃바운드 태그를 사용자 지정으로 변경했다면 참조 항목을 다시 확인해야 합니다.
  • 앱별 프록시를 활성화하면 선택되지 않은 앱은 코어로 들어오지 않을 수 있으므로 해당 라우팅 로그도 남지 않습니다.

규칙 충돌 및 잘못된 트래픽 분기 점검 순서

점검은 “요청이 코어에 들어왔는가”에서 시작해 “어떤 규칙에 매칭됐는가”를 확인한 다음 “해당 아웃바운드가 연결 가능한가”를 살펴보는 순서로 진행해야 합니다. 노드만 반복해서 바꾸는 방법으로는 프록시 아웃바운드의 일부만 확인할 수 있으며, 시스템 프록시 포트 오류·규칙 순서 오류·오래된 Geo 데이터·DNS 조회 불일치는 찾을 수 없습니다.

v2rayN 메인 화면에서 로그 창을 열고, 라우팅 결과를 확인할 수 있는 수준으로 로그 레벨을 임시 조정한 다음 대상 도메인 하나만 접속하는 것이 좋습니다. 여러 웹 페이지를 동시에 열면 백그라운드 요청이 대량으로 발생해 광고·이미지·API 도메인이 뒤섞이므로 어떤 연결이 테스트 중인 페이지에 해당하는지 확인하기 어렵습니다.

현상 우선 확인할 항목 판단 근거 조치
중국 본토 사이트가 프록시로 연결됨 프록시 대체 규칙이 맨 위에 있는지 확인 로그에는 먼저 proxy가 표시되고, 이후 direct 규칙은 실행될 기회를 얻지 못함 tcp,udp 대체 규칙을 목록 마지막으로 이동
지정한 해외 도메인이 직접 연결됨 범위가 넓은 domain 규칙에 포함되는지 확인 대상 하위 도메인이 상위 도메인 접미사 또는 GeoSite 분류에 매칭됨 full 정확한 프록시 규칙을 추가해 앞에 배치
도메인과 IP의 테스트 결과가 다름 domainStrategy 및 DNS 도메인이 IP 매칭으로 넘어가지 않았거나 다른 네트워크에서 조회된 결과를 사용함 IPIfNonMatch 및 현재 DNS 설정 확인
LAN 주소가 열리지 않음 geoip:private의 위치 사설 주소가 마지막 프록시 규칙에 먼저 가로채짐 사설 네트워크 대역 직접 연결을 프록시 대체 규칙보다 앞에 배치
수정 후에도 변화가 없음 현재 라우팅 구성 및 코어 상태 복사본을 편집했지만 실행 중에는 이전 구성이 선택되어 있음 구성을 전환하고 코어를 재시작한 뒤 대상 연결을 새로 생성
일부 새 도메인의 분기가 이상함 GeoSite 및 GeoIP 데이터 날짜 분류 파일이 오래되어 대상 도메인이나 네트워크 대역이 아직 수록되지 않음 데이터 파일을 업데이트한 뒤 코어를 재시작하고 다시 테스트

로그에서 대상 연결이 전혀 보이지 않는다면 먼저 프로그램이 시스템 프록시를 따르는지, 수정 전에 만들어진 장기 연결을 재사용하고 있지는 않은지 확인하세요. 브라우저는 모든 창을 닫았다가 다시 열고, 명령줄 도구는 v2rayN의 HTTP 또는 SOCKS 포트를 명시적으로 지정해야 합니다. 연결이 코어에 들어왔는데도 시간 초과가 발생한다면 매칭된 아웃바운드 태그와 노드 상태를 다시 확인하세요.

  1. 고정된 테스트 대상: 완전한 도메인 하나를 선택하고, 홈페이지에서 계속 바뀌는 서드파티 리소스에만 의존하지 마세요.
  2. DNS 캐시 정리: 규칙이 IP 판단에 의존한다면 오래된 조회 기록 때문에 이전과 이후 테스트가 서로 다른 네트워크 대역으로 연결될 수 있습니다.
  3. 첫 매칭 확인: 규칙 목록의 위에서부터 대상에 적용될 수 있는 첫 조건을 찾으세요. 기대한 규칙 하나만 확인해서는 안 됩니다.
  4. 아웃바운드 개별 확인: 잠시 대상 완전한 도메인을 지정한 아웃바운드로 보내 프록시 또는 직접 연결 자체가 정상인지 확인하세요.
  5. 규칙을 하나씩 복원: 최소 규칙 세트에서 시작해 분류 항목을 추가하고, 매번 조건 하나만 변경하세요.

장기 유지가 가능한 트래픽 분기 기준

안정적인 규칙 세트에는 중복 도메인을 대량으로 쌓을 필요가 없습니다. 광고 차단, 사설 주소 직접 연결, 중국 본토 도메인 직접 연결, 중국 본토 IP 직접 연결, 최종 프록시의 다섯 계층을 유지하고 문제가 확실한 사이트에만 소수의 정확한 예외를 추가하는 편이, 출처가 불분명하고 조건이 서로 겹치는 규칙 목록을 여러 개 가져오는 것보다 관리하기 쉽습니다.

GeoSite 및 GeoIP 데이터는 정기적으로 업데이트해야 하지만, 업데이트 후 주요 업무 도메인의 분류가 바뀌었는지도 확인해야 합니다. 분류 데이터는 일괄 판단을 위한 자료일 뿐 현재 네트워크 환경에 대한 절대적인 결론은 아닙니다. 오분류가 반복해서 재현된다면 full: 규칙으로 로컬 예외를 만들고, 주석이나 규칙 이름에 추가 이유와 날짜를 기록하세요.

  • 규칙 이름에 용도를 명확히 적으세요. 예: “광고 차단”, “LAN 직접 연결”, “중국 본토 도메인 직접 연결”, “최종 프록시”.
  • 정확한 예외는 모음 규칙보다 앞에 두고, 범위가 넓은 네트워크 대체 규칙은 하나만 남겨 마지막에 배치하세요.
  • 수정할 때마다 LAN, 중국 본토 도메인, 해외 도메인, 직접 IP의 네 가지 대상을 각각 테스트하세요.
  • v2rayN, v2rayNG 또는 v2flyNG를 업데이트한 뒤 현재 코어·라우팅 구성·로컬 포트가 기존 값으로 유지되는지 확인하세요.
  • 구독 업데이트 후 노드 프로토콜이 VMess에서 VLESS로 바뀌었다면 먼저 노드 연결을 확인한 다음 라우팅 결과를 판단하세요.

최종 판단 기준은 페이지가 “열리는 것처럼 보이는가”가 아니라 로그의 대상·매칭 규칙·아웃바운드 태그가 서로 일치하는가입니다. 규칙 순서가 명확하고 예외 범위가 충분히 좁으며 대체 규칙의 위치가 고정되어 있다면 중국 본토 직접 연결과 해외 프록시의 동작을 반복해서 검증할 수 있고, 클라이언트 업데이트나 구독 변경 후에도 차이를 빠르게 찾을 수 있습니다.

v2rayN 다운로드 클라이언트 설치 패키지 페이지로 이동