· 라우팅 · 약 10분

V2Ray 라우팅 규칙 설정 가이드: geosite/geoip로 국내 직접 연결과 해외 프록시 분리

domainStrategy부터 geosite:cn, geoip:private 규칙 순서까지 살펴보고, v2rayN에서 국내 직접 연결·해외 프록시·광고 차단을 설정하는 방법을 안내합니다.

이 글 미리보기

이 글은 노드로 인터넷에 연결할 수 있고 v2rayN에서 라우팅을 조정하려는 사용자를 위한 안내입니다. 도메인 목록과 IP 목록의 차이를 확인하고, 라우팅 해석 전략과 출구 태그, 규칙 순서를 정한 뒤 로그로 국내 직접 연결, 사설망 접속, 광고 차단을 검증합니다. 예시 JSON은 코어 설정 일부이며, 노드 설정 전체를 그대로 가져오는 파일이 아닙니다.

1. 라우팅 설정 전 트래픽과 출구 확인하기

라우팅은 트래픽이 코어에 들어온 뒤 적용됩니다. 앱이 시스템 프록시를 사용하지 않거나 현재 프록시 모드가 처리하지 않는 연결만 사용한다면 규칙을 바꿔도 영향을 받지 않습니다. 먼저 사용할 수 있는 노드를 선택하고, 브라우저가 v2rayN의 로컬 프록시를 사용하도록 설정한 다음 라우팅을 조정하세요. 시스템 프록시는 시스템 프록시 설정을 따르는 앱에 주로 적용되며, 기기의 모든 연결을 가로채는 기능은 아닙니다.

규칙의 outboundTag는 출구를 식별하는 태그이지 프로토콜 이름이 아닙니다. 이 글에서는 proxy를 설정된 노드에, direct를 freedom 직접 연결 출구에, block을 blackhole 차단 출구에 연결합니다. 태그는 대소문자를 구분하므로 실제 설정과 일치해야 합니다.

10808
로컬 프록시 포트 예시입니다. 실제 설정에 맞게 바꾸세요.
3개
출구 태그: proxy / direct / block
4개
기본 라우팅 규칙이며, 일치하지 않는 트래픽은 기본 출구로 보냅니다.

2. geosite와 geoip가 매칭하는 대상

geosite:cn은 도메인 목록으로, 분류된 중국 본토 사이트를 식별하는 데 적합합니다. geoip:cn은 IP 주소 대역 목록으로, IP에 직접 연결하거나 DNS 조회 결과를 기준으로 라우팅을 보완할 때 사용할 수 있습니다. 둘 다 규칙 데이터일 뿐, 사이트의 실제 서비스 지역이나 서버 위치, 접속 품질을 실시간으로 판단하지는 않습니다. 중국 본토 도메인이 해외 인프라를 이용할 수 있고, 해외 서비스가 중국 본토 IP로 연결될 수도 있습니다.

도메인 목록 규칙

항목
domain
중국 본토 목록
geosite:cn
광고 목록
geosite:category-ads-all
데이터 파일
geosite.dat

라우팅에서 대상 도메인을 확인할 수 있어야 하며, 데이터 파일에 지정된 분류가 포함되어 있어야 합니다.

IP 목록 규칙

항목
ip
중국 본토 목록
geoip:cn
사설망 목록
geoip:private
데이터 파일
geoip.dat

대상이 IP이면 바로 매칭할 수 있습니다. 도메인 대상은 라우팅 전략에 따라 IP로 조회할지 결정됩니다.

한 규칙에 domain과 ip를 함께 넣어도 “도메인 또는 IP 중 하나만 일치하면 된다”는 뜻이 아닙니다. 일반적으로 서로 다른 조건 항목은 모두 충족해야 하며, 같은 배열 안의 여러 값은 매칭 후보입니다. 혼동을 피하려면 중국 본토 도메인 규칙과 IP 규칙을 별도로 작성하세요.

3. domainStrategy가 중국 본토 IP 보완 규칙에 미치는 영향

domainStrategy는 routing 객체 안에서 rules와 같은 수준에 둡니다. 라우팅 판단 중 도메인을 IP로 조회할지 제어하며, 앱의 프록시 사용 여부를 결정하거나 DNS 설정 전체를 대신하지는 않습니다. 이름이 비슷한 아웃바운드 조회 설정은 적용 범위가 다르므로 서로 대체할 수 없습니다.

AsIs

요청에서 받은 대상 형식 그대로 라우팅하며, IP 규칙을 위해 도메인을 따로 조회하지 않습니다. 대상이 처음부터 IP라면 IP 규칙에 매칭될 수 있습니다.

적합한 경우: 도메인 목록을 주로 사용하고 라우팅 단계의 DNS 조회를 줄이려는 설정

IPIfNonMatch

권장

도메인이 첫 번째 규칙 검사에서 매칭되지 않으면 조회를 시도한 뒤 IP 규칙에 적용합니다. 이 글에서는 도메인 규칙을 먼저 적용하고 중국 본토 IP 규칙으로 보완하는 데 사용합니다.

적합한 경우: 중국 본토 도메인은 직접 연결하고 중국 본토 IP 식별도 보완하는 일반적인 라우팅

IPOnDemand

라우팅 과정에서 IP가 필요한 규칙을 만나면 도메인 조회를 시도합니다. IP 규칙의 위치가 조회 시점과 최종 연결 경로에 더 직접적으로 영향을 줍니다.

적합한 경우: IP 규칙을 일찍 적용해야 하며 DNS와 규칙 순서를 명확히 설계한 설정

4. 광고·중국 본토 도메인·사설망·중국 본토 IP 순으로 설정하기

규칙은 위에서 아래로 검사하며, 먼저 매칭된 규칙이 출구를 결정합니다. 일부 광고 도메인이 중국 본토 목록에도 포함되어 먼저 허용되는 일을 막기 위해 광고 분류를 중국 본토 도메인보다 앞에 둡니다. 그다음 중국 본토 도메인, 사설망 IP, 중국 본토 IP를 처리하고 나머지 연결은 프록시 출구로 보냅니다. 아래 예시는 routing 일부만 보여주므로 기존 전체 설정에 합쳐야 합니다.

{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "domain": ["geosite:category-ads-all"],
        "outboundTag": "block"
      },
      {
        "type": "field",
        "domain": ["geosite:cn"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "ip": ["geoip:cn"],
        "outboundTag": "direct"
      }
    ]
  }
}

위 규칙을 사용하려면 해당 출구가 이미 있어야 합니다. 기존 노드의 인증·전송·보안 설정은 그대로 유지하고 출구 태그를 proxy로 지정하세요. 예시에 맞추려고 노드 설정을 새로 작성하지 마세요. 아래 두 객체는 직접 연결 및 차단 출구의 정의 예시입니다. 기존 outbounds 배열에 추가하고 프록시 출구 뒤에 배치하세요.

[
  {
    "tag": "direct",
    "protocol": "freedom",
    "settings": {}
  },
  {
    "tag": "block",
    "protocol": "blackhole",
    "settings": {}
  }
]

5. v2rayN에 설정을 적용하고 생성된 설정 확인하기

v2rayN의 라우팅 편집 화면은 코어 설정을 생성하고, 구독은 주로 노드 정보를 제공합니다. 둘을 같은 것으로 혼동하지 마세요. 데스크톱 버전에 따라 메뉴 이름이 조금 다를 수 있습니다. 여기서는 ‘설정’ → ‘라우팅 설정’ 메뉴가 있는 화면을 기준으로 설명합니다. 화면이 다르면 최종 생성된 routing과 outbounds를 확인 기준으로 삼으세요.

  1. 기존 규칙 백업

    ‘설정’ → ‘라우팅 설정’으로 이동한 뒤 기존 규칙을 저장하거나 현재 설정을 내보내세요. 사용 중인 라우팅 구성을 기록해 두면 기존 업무용 예외 규칙을 실수로 덮어쓰는 일을 막을 수 있습니다.

  2. 별도 구성 만들기

    ‘라우팅 설정’에서 새 라우팅 구성을 만들거나 기존 구성을 복사하세요. 도메인 전략을 IPIfNonMatch로 설정하고 광고·중국 본토 도메인·사설망·중국 본토 IP 규칙을 하나씩 추가하세요. 코어 설정 전체 JSON을 단일 규칙의 도메인 입력란에 붙여 넣으면 안 됩니다.

  3. 출구 연결 확인

    각 규칙이 프록시·직접 연결·차단 중 올바른 출구를 사용하는지 확인하세요. 화면에 한국어 옵션이 표시되더라도 생성된 설정의 outboundTag가 실제 출구 정의와 일치해야 합니다. 기본 출구가 선택한 노드인지도 확인하세요.

  4. 활성화하고 다시 불러오기

    저장한 뒤 새 구성을 활성 라우팅으로 지정하고 서비스를 재시작하거나 코어를 다시 실행하세요. 구성을 저장만 하고 활성화하지 않았다면 기존 라우팅이 계속 적용될 수 있습니다.

  5. 프록시 입력 포트 확인

    ‘설정’ → ‘매개변수 설정’에서 로컬 리스닝 포트를 확인하세요. 이 글에서는 127.0.0.1:10808을 테스트 입력 주소 예시로 사용합니다. 실제 포트와 인바운드 프로토콜은 현재 설정을 기준으로 확인한 뒤 트레이 메뉴에서 시스템 프록시 상태를 점검하세요.

6. 로그로 규칙 문제와 DNS 문제 구분하기

테스트할 때는 한 번에 조건 하나만 바꾸세요. 먼저 중국 본토 목록에 포함된 것을 확인한 도메인에 접속하고, 다음으로 목록에 없는 도메인에 접속한 뒤, 마지막으로 필요한 사설망 주소에 접속합니다. 테스트 중에는 액세스 로그를 켜고, 필요하면 오류 로그의 상세 수준을 높여 대상 주소와 최종 출구 태그를 확인하세요. 검증이 끝나면 평소 사용하는 로그 수준으로 되돌립니다.

검증 순서: 먼저 규칙 매칭을 확인하고, 그다음 DNS 조회를 점검하세요

도메인 규칙 검증
  • 중국 본토 목록에 포함된 도메인은 direct 출구로 표시되어야 합니다.
  • 광고 목록에 포함된 테스트 도메인은 block으로 표시되어야 합니다.
  • 로그에 IP만 표시된다면 앱이 이미 도메인을 조회했는지 확인하세요.
  • 기존 연결을 끊고 요청을 다시 보내세요. 연결 재사용이 판단을 방해할 수 있습니다.
IP 및 기본 출구 검증
  • 사설망 대상이 direct로 처리되는지 확인하세요.
  • 도메인 목록에 매칭되지 않을 때의 조회 결과를 확인하세요.
  • 중국 본토 IP 보완 규칙에 매칭되면 direct로 연결되어야 합니다.
  • 그 밖의 연결은 실수로 직접 연결되지 않고 첫 번째 프록시 출구를 사용해야 합니다.

규칙 적용 여부는 웹페이지가 열리는지보다 로그에 표시된 출구로 판단하는 것이 정확합니다. 연결 가능 여부는 DNS, 노드, 대상 서비스에도 영향을 받습니다.

앱이 도메인을 먼저 IP로 조회한 다음 IP를 로컬 프록시에 전달하면 geosite가 원래 도메인을 직접 확인할 수 없습니다. 인바운드 스니핑으로 일부 HTTP 또는 TLS 트래픽에서 식별 가능한 도메인 정보를 복구할 수 있지만 모든 프로토콜과 암호화 방식에서 동작하는 것은 아닙니다. 사용하기 전에 현재 코어의 스니핑 설정을 확인하고 DNS 설정의 대안으로 여기지 마세요.

DNS 설정도 별도로 설계해야 합니다. 라우팅 판단을 위한 조회 요청이 자동으로 프록시를 통해 전송되는 것은 아닙니다. 조회 결과가 이상하다면 먼저 코어에서 사용하는 DNS 서버와 연결 경로를 확인한 뒤 중국 본토 IP 보완 규칙을 유지할지 결정하세요. 문제 해결 로그를 공유할 때는 구독 주소, 인증 정보, 개인 접속 기록을 먼저 삭제하세요.

클라이언트 다운로드v2rayN / v2rayNG