시스템 프록시는 앱이 연결을 로컬 프록시 포트로 보낼지 결정하고, 전체 프록시와 중국 본토 우회는 커널에 들어온 연결의 출구를 결정합니다. 일반적인 웹 검색은 ‘시스템 프록시 자동 설정+중국 본토 우회 라우팅’으로 시작하고, 라우팅 문제를 점검할 때는 잠시 전체 프록시로 바꿔 비교하세요. 이 글에서는 Windows용 v2rayN을 기준으로 포트 확인, 명령줄 테스트, 로그 확인 방법을 설명해 ‘프록시를 켰으니 모든 트래픽이 노드를 통과한다’고 오해하지 않도록 돕습니다.
시스템 프록시와 라우팅 모드: 별개의 두 설정
먼저 연결이 커널에 들어오는지 확인한 다음, 커널이 어떤 출구를 선택하는지 살펴보세요. v2rayN은 노드 관리, 커널 실행, 시스템 프록시 설정을 담당하는 클라이언트 인터페이스입니다. V2Ray 또는 Xray 커널은 연결을 받아 라우팅 규칙을 적용하고 서버에 연결합니다. 구독 정보에 노드가 있어도 시스템 프록시가 활성화된 것은 아니며, 모든 앱이 프록시를 사용하는 것도 아닙니다.
입구: 시스템 프록시
- 적용 대상
- 시스템 프록시 설정을 따르는 앱
- 로컬 주소
127.0.0.1- 포트 예시
10808(실제 리스닝 포트 확인)- 주요 역할
- 앱의 요청을 로컬 프록시 입구로 전달
앱이 시스템 프록시를 무시한다면 라우팅을 바꿔도 자동으로 커널에 들어오지 않습니다.
출구: 커널 라우팅
- 적용 대상
- 이미 커널에 들어온 연결
- 매칭 조건
- 도메인, IP, 포트 등
- 전체 프록시 모드
- 일반적으로 일반 목적지 연결을 프록시 출구로 전달
- 중국 본토 우회
- 중국 본토에 해당하는 목적지를 직접 연결 출구로 분기
모드 이름은 미리 설정된 선택 항목일 뿐이며, 실제 동작은 생성된 라우팅 규칙에 따라 달라집니다.
예를 들어 시스템 프록시를 따르는 브라우저는 먼저 로컬 컴퓨터의 127.0.0.1:10808에 연결합니다. 이후 커널은 중국 본토 사이트에 직접 연결하고 다른 사이트는 노드로 보낼 수 있습니다. 브라우저가 로컬 프록시를 사용하더라도 모든 연결이 원격 서버를 통과하는 것은 아닙니다. 따라서 ‘시스템 프록시가 켜져 있음’과 ‘웹사이트의 출구가 여전히 로컬 네트워크임’은 동시에 성립할 수 있습니다.
전체 프록시와 중국 본토 우회: 용도에 맞게 선택
중국 본토와 해외 사이트를 함께 이용하는 일상적인 환경이라면 중국 본토 우회를 우선 사용하세요. 특정 도메인이 잘못 직접 연결되는지 확인할 때는 잠시 전체 프록시로 바꿔 비교하면 됩니다. 전체 라우팅은 네트워크 어댑터 수준의 트래픽 가로채기가 아니며, 속도를 높이는 설정도 아닙니다. 시스템 프록시를 무시하는 프로그램을 자동으로 가로채지 않으며, 게임·음성 통화 등 UDP 트래픽이 같은 입구로 들어온다고 보장하지도 않습니다.
중국 본토 우회 라우팅
권장중국 본토 서비스는 보통 직접 연결하고, 그 외 목적지는 설정된 규칙에 따라 프록시를 사용합니다. 중국 본토 연결이 우회하는 일을 줄일 수 있지만 도메인 및 IP 규칙 데이터에 의존합니다. 분류 누락, 오래된 데이터, 잘못된 규칙 순서로 오분류가 발생할 수 있습니다.
적합한 경우: 일상적인 웹 검색, 중국 본토 업무와 해외 자료 조사를 함께 할 때
전체 라우팅
커널에 들어온 일반 목적지 연결을 프록시 출구로 보내 라우팅 규칙의 영향을 배제하기 쉽습니다. 중국 본토 사이트도 원격 서버를 경유할 수 있어 지연 시간, 지역 판별, 로그인 보안 확인 동작이 달라질 수 있습니다.
적합한 경우: 단시간 문제 해결, 프록시 출구 확인, 모든 연결에 같은 출구가 필요한 앱
직접 연결 라우팅
요청이 먼저 로컬 커널을 거친 다음 로컬 네트워크를 통해 목적지에 직접 연결될 수도 있습니다. 네트워크 기준 상태를 확인할 때 유용하지만, ‘직접 연결 라우팅’과 ‘시스템 프록시 해제’는 서로 다른 작업입니다.
적합한 경우: 로컬 네트워크 연결 가능 여부 비교, 노드 관련 문제 진단
‘중국 본토 우회’는 ‘서버가 중국 본토에 있으면 무조건 직접 연결’하는 실시간 위치 판별 기능이 아닙니다. 커널은 대개 규칙 데이터를 기준으로 연결을 분류하며, 각 목적지의 실제 위치를 하나씩 조회하지 않습니다. 여러 지역에 걸친 CDN, 같은 도메인의 서로 다른 DNS 응답, 앱의 IP 직접 연결은 최종 분류에 영향을 줄 수 있습니다. 사설 주소 규칙이 미리 설정에 포함되어 있는지 확인해야 LAN 연결이 직접 연결되는지도 알 수 있습니다. 모드 이름만으로 판단하지 마세요.
v2rayN 설정 순서: 입구를 확인한 뒤 라우팅 변경
아래 안내는 v2rayN 7.x의 일반적인 인터페이스를 기준으로 합니다. 세부 버전, 화면 구성, 커널 조합에 따라 항목이 다를 수 있으므로 현재 설정에서 포트를 확인하세요. 오래된 가이드의 10809를 그대로 사용하면 안 됩니다. 설정에 따라 혼합 입구 또는 HTTP와 SOCKS 입구를 각각 제공할 수 있으며, 포트 번호가 같아도 프로토콜 종류까지 같은 것은 아닙니다.
-
노드 선택
메인 화면의 노드 목록에서 사용할 노드를 선택하고 마우스 오른쪽 버튼을 눌러 ‘활성 서버로 설정’을 선택합니다. 먼저 노드가 유효한 구독 또는 기존 설정에서 가져온 것인지, 커널이 정상적으로 시작되는지 확인하세요. 프로토콜이 VMess, VLESS 또는 다른 종류인지와 관계없이 이 글의 ‘입구와 라우팅을 나눠 확인하는 방법’은 동일합니다.
-
포트 확인
‘설정’ → ‘매개변수 설정’에서 로컬 리스닝 포트와 입구 프로토콜을 확인하고 실제 값을 기록합니다. 이 글의 테스트는
10808을 사용하지만, 해당 포트가 실제로 SOCKS 또는 혼합 입구를 제공할 때만 적용됩니다. 설정을 저장한 뒤 커널이 새 설정으로 다시 시작되었는지 확인하세요. -
입구 활성화
메인 창 하단의 ‘시스템 프록시’ 드롭다운에서 ‘시스템 프록시 자동 설정’을 선택합니다. 트레이 아이콘을 마우스 오른쪽 버튼으로 클릭한 뒤 ‘시스템 프록시’에서 같은 항목을 선택해도 됩니다. 여기서 ‘자동 설정’은 클라이언트가 시스템 프록시를 설정한다는 뜻이지, PAC 방식으로 트래픽을 분기한다는 뜻은 아닙니다.
-
라우팅 설정
메인 창 하단의 ‘라우팅’에서 ‘중국 본토 우회’에 해당하는 프리셋을 선택합니다. 해당 프리셋에 LAN 직접 연결 규칙도 포함되어 있는지 확인하세요. 비교 테스트가 필요하면 같은 메뉴에서 ‘전체’를 선택하고, 노드를 바꾸거나 DNS를 수정하지 마세요.
-
연결 다시 설정
대상 페이지를 닫았다가 다시 열고, 필요하면 앱도 재시작해 이전 출구를 계속 사용하는 기존 연결을 끊습니다. 로그에서 목적지 주소와 출구 태그를 확인하세요. 일상적인 프리셋으로 되돌린 뒤 중국 본토 목적지 하나와 그 외 목적지 하나를 각각 테스트합니다.
브라우저는 되는데 명령줄은 안 될 때: 프록시를 명시해 테스트
브라우저에서 연결된다는 것은 해당 브라우저의 연결 경로가 작동한다는 뜻일 뿐입니다. 명령줄 도구는 환경 변수를 읽을 수도 있고, 데스크톱 시스템 프록시를 전혀 무시할 수도 있습니다. 앱마다 자체 프록시 설정이 있을 수도 있습니다. 테스트 명령에 프록시 주소를 직접 지정하면 어떤 설정을 읽었는지 모르는 문제를 피할 수 있습니다.
# SOCKS 테스트: 목적지 도메인을 프록시 측에서 확인
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/
# 직접 연결 비교: 프록시 설정을 명시적으로 무시
curl --noproxy "*" --connect-timeout 10 --max-time 20 -I https://example.com/
Windows PowerShell에서는 명령 앞의 curl을 curl.exe로 바꾸면 구형 환경의 동명 명령 별칭으로 인해 매개변수가 다르게 처리되는 일을 피할 수 있습니다. 여기서 10초는 연결 시간 제한이고 20초는 전체 요청의 시간 제한이며, 성능 측정값이 아닙니다. 목적지에서 HTTP 오류 상태를 반환하더라도 연결 자체는 수립되었을 수 있으므로 상태 코드만으로 노드 장애를 판단하지 마세요.
| 테스트 결과 | 먼저 확인할 항목 | 다음 단계 |
|---|---|---|
| 프록시를 명시하면 성공하지만 브라우저에서는 실패 | 브라우저가 시스템 프록시를 읽는지, 별도 프록시 설정이 있는지 | 시스템 프록시 주소를 확인하고 브라우저를 재시작한 뒤 테스트 |
| 즉시 연결 거부 오류가 표시됨 | 로컬 포트에서 리스닝하지 않거나 포트 번호가 잘못됨 | 커널 시작 로그를 확인하고 입구 프로토콜과 포트를 대조 |
| 로컬 입구에는 연결되지만 목적지 연결 시간 초과 | 노드, 서버 연결 매개변수, 원격 DNS 응답 및 목적지 연결 가능 여부 | 라우팅은 그대로 두고 정상 작동이 확인된 다른 노드로 비교 |
| 전체 프록시에서는 성공하지만 중국 본토 우회에서는 실패 | 도메인 또는 IP가 직접 연결로 분류되었고 직접 연결 경로를 사용할 수 없음 | 매칭된 규칙을 확인하고 해당 목적지에 더 구체적인 프록시 규칙 추가 |
socks5h는 목적지 도메인 처리를 프록시 측에 맡깁니다. 도메인을 먼저 로컬에서 확인하는 방식과는 다릅니다. 다만 프록시 측에서 도메인을 확인한다고 해서 반드시 원격 노드에서 DNS 조회가 이루어지는 것은 아니며, 실제 동작은 커널의 DNS 및 라우팅 설정에 따라 달라집니다. HTTP 입구를 테스트하려면 --proxy http://127.0.0.1:10808을 사용할 수 있습니다. 단, 현재 포트가 실제로 HTTP 프록시를 지원해야 합니다.
중국 본토 우회 규칙의 매칭 순서: 도메인, IP, 기본 출구
라우팅 규칙은 순서대로 확인하며, 일반적으로 처음 일치한 규칙이 출구를 결정합니다. 더 구체적인 예외 규칙은 범위가 넓은 규칙보다 앞에 두세요. 아래는 ‘사설 주소는 직접 연결, 중국 본토 도메인과 주소는 직접 연결, 나머지는 프록시로 전달’하는 의도를 보여주는 V2Ray/Xray 스타일 라우팅 예시이며, 그대로 실행할 수 있는 완성 설정은 아닙니다.
{
"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"
}
]
}
}
direct와proxy는 출구 태그이며, 완성된 설정의outbounds에 각각 대응하는 항목이 있어야 합니다. 이름만으로 직접 연결이나 프록시 기능이 자동 생성되지는 않습니다.geosite:cn과geoip:cn은 커널에서 사용할 수 있는 규칙 데이터에 의존합니다. 데이터가 없으면 설정을 불러오지 못할 수 있으며, 데이터 내용에 따라 분류 결과도 달라집니다.IPIfNonMatch는 도메인 규칙이 일치하지 않을 때 IP 주소를 확인한 뒤 IP 규칙을 추가로 적용할 수 있다는 뜻입니다. DNS 조회 결과에 따라 트래픽 경로가 달라질 수 있고 조회 부하도 늘어날 수 있습니다.- 마지막 규칙은 TCP와 UDP 연결을 명시적으로 처리합니다. 기본 규칙이 없으면 어떤 규칙에도 일치하지 않는 연결은 대개 첫 번째 출구를 사용하므로, 반드시 프록시를 통과한다고 가정하면 안 됩니다.
v2rayN의 라우팅 프리셋을 사용할 때는 클라이언트의 라우팅 설정에서 규칙을 관리하세요. 위 예시를 실행 중에 생성되는 파일에 임의로 붙여 넣지 마세요. 클라이언트를 재시작하거나 설정을 바꾸면 파일이 다시 생성될 수 있습니다. 스니핑으로 일부 연결에 도메인 정보를 보완할 수는 있지만, IP로 직접 연결되는 모든 연결의 도메인을 안정적으로 복원하지는 못합니다. 분기 문제를 해결하는 유일한 방법으로 삼아서도 안 됩니다.
데스크톱 브라우징과 개별 앱: 입구를 각각 설정
권장 방법: 앱별로 입구를 나눈 뒤 라우팅을 함께 확인
시스템 프록시를 따르는 앱
- ‘시스템 프록시 자동 설정’을 켜고 중국 본토 우회 라우팅부터 사용합니다.
- 브라우저에서 새 연결을 만들어 중국 본토 목적지와 그 외 목적지를 확인합니다.
- 특정 사이트에서만 문제가 발생하면 잠시 전체 프록시로 바꿔 비교한 다음 규칙을 수정합니다.
앱에서 프록시를 별도로 설정하는 경우
- 앱 설정에서
127.0.0.1과 실제 리스닝 포트를 입력합니다. - HTTP 또는 SOCKS5를 명확히 선택하고 포트 번호만 그대로 복사하지 마세요.
- 먼저 명령에 프록시 매개변수를 직접 지정해 테스트한 뒤 환경 변수 설정 여부를 결정합니다.
시스템 프록시는 앱의 입구를 설정하고, 라우팅은 출구를 선택합니다. 더 폭넓은 트래픽을 가로채야 한다면 TUN 모드를 별도로 검토하세요.
TUN 모드는 가상 네트워크 인터페이스를 통해 조건에 맞는 트래픽을 가로채며, 일반 시스템 프록시와는 다른 방식입니다. 시스템 라우팅, 권한, DNS, 우회 설정을 함께 다뤄야 합니다. 명령줄 도구 하나가 시스템 프록시를 읽지 않는다는 이유만으로 TUN을 우선 해결책으로 선택하지 마세요. 먼저 프록시 매개변수를 직접 지정해 테스트하면 문제를 더 쉽게 파악할 수 있습니다.
Android용 v2rayNG는 Xray 커널을 사용하고 v2flyNG는 V2Fly 커널을 사용합니다. 시스템 VPN 인터페이스를 통해 트래픽을 가로채는 방식은 Windows의 시스템 HTTP 프록시 설정과 다릅니다. 앱별 적용 범위와 커널 라우팅도 각각 확인해야 합니다. 데스크톱의 설정 절차를 Android에 그대로 적용하지 마세요. 모드 이름이 비슷해도 입구 방식은 다를 수 있습니다.
자주 묻는 질문: 전체 프록시 미작동, 종료 후 인터넷 끊김, 라우팅 문제
전체 프록시를 선택했는데도 일부 프로그램이 로컬 출구를 사용하는 이유는 무엇인가요?
먼저 프로그램의 연결이 로컬 입구에 들어오는지 확인하세요. 같은 목적지에 프록시를 명시한 명령을 실행해 보세요. 성공한다면 해당 프로그램의 자체 네트워크 설정을 확인합니다. 전체 라우팅은 커널에 들어온 연결만 처리하므로 시스템 프록시를 무시하는 앱은 전체 모드로 바꿔도 자동으로 가로채지지 않습니다.
v2rayN을 종료한 뒤 브라우저에서 사이트가 열리지 않는 이유는 무엇인가요?
시스템 프록시가 중지된 로컬 포트를 계속 가리키고 있을 수 있습니다. v2rayN을 다시 실행하고 ‘시스템 프록시’에서 ‘시스템 프록시 해제’를 선택한 다음 정상적으로 종료하세요. Windows의 ‘설정’ → ‘네트워크 및 인터넷’ → ‘프록시’에서도 수동 프록시를 확인할 수 있습니다. 회사나 기관에서 관리하는 프록시 설정은 기존 네트워크 정책에 따라 처리하세요.
중국 본토 우회에서는 사이트가 열리지 않지만 전체 프록시에서는 열립니다. 어떻게 해결하나요?
노드는 그대로 두고 문제가 발생한 도메인을 기록한 뒤 로그에서 출구 태그를 확인하세요. 직접 연결 규칙에 걸렸다면 해당 도메인의 프록시 예외 규칙을 범위가 넓은 직접 연결 규칙보다 앞에 배치합니다. 앱에서 새 연결을 만든 후 확인하고, 일상적인 모든 트래픽을 계속 전체 프록시로 설정할 필요는 없습니다.
전체 프록시를 켠 뒤 중국 본토 사이트가 느려졌습니다. 프로토콜을 바꿔야 하나요?
먼저 중국 본토 우회로 돌아가 같은 페이지에 새로 연결해 테스트하세요. 직접 연결이 정상으로 돌아온다면 VMess 또는 VLESS 자체보다 연결 경로가 원격으로 우회한 것이 원인일 가능성이 큽니다. 원인을 정확히 확인할 수 있도록 프로토콜, 노드, DNS를 동시에 바꾸지 말고 라우팅만 한 번에 변경하세요.
시스템 프록시를 켜면 도메인 조회도 반드시 노드를 통과하나요?
반드시 그렇지는 않습니다. 앱이 직접 DNS를 조회하거나 브라우저의 보안 DNS가 활성화되어 있을 수 있고, 커널에도 별도의 DNS 정책이 적용될 수 있습니다. 연결 입구와 DNS 조회 경로를 구분한 뒤 브라우저의 DNS 설정과 커널의 DNS 설정을 확인하세요. 시스템 프록시 스위치나 출구 IP만으로 DNS 경로를 입증할 수는 없습니다.
최종 판단은 세 가지 근거를 확인해야 합니다. 로컬 리스닝이 정상인지, 목적지 연결이 커널에 들어왔는지, 로그에서 어떤 출구를 선택했는지 살펴보세요. 출구 IP 조회 결과는 해당 조회 요청만 보여주며 기기 전체의 모든 트래픽을 나타내지는 않습니다. ‘입구 → 라우팅 → 노드’ 순서로 점검하면 모드를 반복해서 바꾸는 것보다 재현 가능한 결론을 얻기 쉽습니다.