게임, 명령줄 도구 또는 독립 실행형 앱이 시스템 프록시를 사용하지 않아 어려움을 겪는 사용자를 위한 글입니다. 가상 네트워크 어댑터의 데이터 흐름부터 Windows v2rayN과 Android v2rayNG의 설정 방법, DNS·라우팅·권한·가상 네트워크 어댑터 충돌 진단까지 다룹니다.
TUN 모드와 시스템 프록시의 본질적인 차이
시스템 프록시는 운영체제가 앱에 공개하는 프록시 설정 모음입니다. 브라우저와 일부 데스크톱 소프트웨어는 이 설정을 직접 읽은 뒤 HTTP 또는 SOCKS 요청을 v2rayN의 로컬 리스닝 포트로 보냅니다. 문제는 시스템 프록시를 따를지 여부를 앱이 스스로 결정한다는 점입니다. 명령줄 프로그램, 게임 런처, 사용자 지정 네트워크 스택을 사용하는 소프트웨어와 일부 UDP 프로그램은 이 설정을 완전히 무시할 수 있습니다.
TUN 모드는 가상 3계층 네트워크 어댑터를 만들고 시스템 라우팅을 수정하여 대상 IP 패킷이 먼저 해당 어댑터로 들어가게 합니다. 클라이언트는 캡처한 TCP·UDP 트래픽을 Xray 코어로 전달하고, 도메인·IP·포트·프로토콜 규칙에 따라 직접 연결, 프록시 또는 차단 출구를 선택합니다. 앱이 프록시 프로토콜을 이해할 필요가 없으므로 일반적으로 시스템 프록시보다 더 넓은 범위의 트래픽을 처리합니다.
“전체 트래픽 가로채기”가 “모든 연결이 프록시 노드를 거친다”는 뜻은 아닙니다. TUN은 트래픽을 통합된 진입점으로 보내고, 최종 출구는 라우팅 규칙이 결정합니다. 예를 들어 로컬 네트워크 주소는 직접 연결하고, 중국 본토 사이트는 GeoSite 및 GeoIP 규칙에 따라 직접 연결하며, 나머지 트래픽만 프록시 노드로 보낼 수 있습니다. 트래픽 가로채기 방식과 분할 라우팅 결과는 서로 독립적인 두 계층입니다.
| 비교 항목 | 시스템 프록시 | TUN 모드 |
|---|---|---|
| 가로채는 대상 | 프록시 설정을 직접 읽는 앱 | 시스템 라우팅에 의해 가상 네트워크 어댑터로 들어오는 IP 트래픽 |
| UDP 처리 | 앱과 프록시 인터페이스에 따라 다름 | 코어에서 통합 처리할 수 있지만 노드 성능의 제한을 받음 |
| 필요한 권한 | 일반적으로 일반 사용자 권한 | Windows에서는 일반적으로 관리자 권한 필요 |
| 주요 용도 | 브라우저, 업무용 소프트웨어 및 일상적인 웹 이용 | 게임, 터미널 도구, 독립 네트워크 스택 앱 및 통합 라우팅 |
결론: 먼저 가로채기 누락을 확인한 뒤 TUN을 활성화하세요
시스템 프록시를 사용하지 않는 특정 프로그램만 인터넷에 연결되지 않는다면 TUN으로 가로채기 범위를 보완할 수 있습니다. 브라우저조차 노드를 통해 접속하지 못한다면 TUN으로 기본 연결 문제를 가리기보다 노드, 구독 및 코어 로그부터 점검해야 합니다.
활성화 전 권한·포트·라우팅 조건 확인
모드를 전환하기 전에 일반 시스템 프록시로 노드를 먼저 검증하세요. 사용 가능한 노드를 선택하고 브라우저로 대상 사이트에 접속되는지 확인한 뒤, 클라이언트 로그에서 연결 성공 기록을 확인합니다. 이렇게 하면 “노드를 사용할 수 없음”과 “TUN 설정 오류”를 분리하여 가상 네트워크 어댑터, DNS, 노드 상태 사이에서 반복적으로 시행착오를 겪는 일을 줄일 수 있습니다.
이 글의 작업 기준은 v2rayN 7.15.4, v2rayNG 1.10.13 및 Xray 코어입니다. 세부 버전에 따라 메뉴 문구가 조금 다를 수 있지만 점검 순서는 같습니다. 먼저 코어 시작 여부를 확인하고, 다음으로 가상 네트워크 어댑터 권한을 점검한 뒤 라우팅과 DNS를 검증하세요. 이전 버전에 해당 스위치가 없다면 클라이언트의 자체 업데이트 메뉴에서 먼저 업그레이드해야 합니다.
로컬 포트를 특정 값으로 고정할 필요는 없지만 중복 리스닝은 피해야 합니다. 이 글의 예시에서는 SOCKS 진입 포트를 10808, HTTP 진입 포트를 10809로 설정합니다. 로그에 “address already in use” 또는 “포트가 사용 중입니다”가 표시되면 해당 프로그램을 종료하거나 「설정」→「매개변수 설정」에서 사용하지 않는 포트로 변경한 뒤 코어를 재시작하세요.
Windows 테스트 기준
- 클라이언트
- v2rayN 7.15.4
- 로컬 SOCKS
- 127.0.0.1:10808
- 로컬 HTTP
- 127.0.0.1:10809
- 라우팅 정책
- 로컬 네트워크 및 로컬 주소 우회
포트는 변경할 수 있지만 각 리스닝 진입점은 반드시 서로 달라야 합니다.
Android 테스트 기준
- 클라이언트
- v2rayNG 1.10.13
- 실행 모드
- VPN
- 앱별 프록시
- 첫 테스트에서는 끄기
- 분할 라우팅 정책
- 먼저 기본 규칙 사용
먼저 기기 전체 트래픽 가로채기를 검증한 뒤 지정 앱 범위로 좁히면 문제를 더 직접적으로 찾을 수 있습니다.
Windows v2rayN에서 TUN 활성화
Windows의 TUN은 가상 네트워크 어댑터를 만들고 라우팅을 기록하므로, 실행 중인 v2rayN을 먼저 완전히 종료한 뒤 시스템 메뉴에서 “관리자 권한으로 실행”을 선택해야 합니다. 일반 권한에서 스위치를 반복해서 눌러도 코어는 시작되지만 라우팅 기록이 실패하거나, 가상 네트워크 어댑터가 생성되지 않거나, 재시작 직후 중지될 수 있습니다.
- 일반 프록시를 확인합니다. v2rayN을 시작하고 구독을 업데이트한 뒤 사용 가능 여부가 확인된 노드를 선택합니다. 먼저 시스템 프록시 모드로 웹 페이지에 접속해 보고, 로그에 연결 시간 초과, 인증서 시간 오류 또는 노드 주소 확인 실패가 있는지 확인합니다.
- 로컬 리스닝을 확인합니다. 「설정」→「매개변수 설정」을 열고 SOCKS 및 HTTP 포트가 다른 프로그램과 충돌하지 않는지 확인합니다. 이 글의 예시는 10808과 10809를 사용하며, 변경 후에는 코어를 재시작해야 새 리스닝 설정이 적용됩니다.
- TUN 설정을 엽니다. 「설정」→「TUN 모드 설정」으로 이동해 TUN을 활성화하고, 첫 테스트 기준으로 “자동 라우팅”과 “엄격한 라우팅” 등 기본 옵션을 유지합니다. 버전에 따라 진입점이 메인 창 도구 모음에 있을 수 있으므로 현재 화면의 TUN 스위치를 기준으로 설정하세요.
- TUN을 시작합니다. v2rayN이 관리자 권한으로 실행 중인지 확인한 후 TUN 모드를 켭니다. 처음 시작할 때 시스템 네트워크 권한 확인 창이 나타날 수 있습니다. 허용한 뒤 가상 네트워크 어댑터 초기화가 완료될 때까지 기다리고, 그동안 스위치를 연속해서 전환하지 마세요.
- 로그를 확인합니다. 실시간 로그를 열어 장치 생성 실패, 포트 사용 중 또는 라우팅 추가 실패가 없는지 확인합니다. 그런 다음 웹 페이지, 명령줄 다운로드 도구, 기존에 시스템 프록시를 읽지 않던 앱을 차례로 테스트합니다.
테스트 순서
1. 일반 시스템 프록시로 대상 사이트에 접속
2. 관리자 권한으로 v2rayN 시작
3. TUN 및 자동 라우팅 활성화
4. 코어 로그에 오류가 없는지 확인
5. TCP, DNS 및 대상 앱 테스트
6. 마지막으로 사용자 지정 분할 라우팅 규칙 활성화
활성화 후에는 다른 네트워크 도구가 기본 라우팅을 수정하거나 또 다른 전체 가상 네트워크 어댑터를 만들도록 동시에 실행하지 않는 것이 좋습니다. 두 프로그램이 낮은 메트릭의 라우팅을 서로 차지하려 하면 연결 상태가 불안정해지고, 일부 사이트가 프록시를 우회하거나 절전 모드 해제 후 도메인 확인이 되지 않을 수 있습니다. 기업 내부망 접속 도구를 함께 사용해야 한다면 먼저 기업 가상 네트워크 어댑터가 처리해야 하는 네트워크 대역을 정한 뒤 V2Ray 라우팅에서 해당 사설 네트워크 대역을 직접 연결로 지정하세요.
가로채기가 성공했는지 확인할 때 작업 표시줄 아이콘만 보지 마세요. 더 확실한 방법은 시스템 프록시를 끄되 TUN은 켜 둔 상태에서 기존에 프록시를 읽지 않던 프로그램을 테스트하는 것입니다. 해당 프로그램이 연결되고 v2rayN 로그에 대상 주소가 표시되면 데이터가 TUN으로 들어간 것입니다. 테스트가 끝난 뒤 일상적인 사용 방식에 따라 시스템 프록시를 함께 유지할지 결정하세요.
Android v2rayNG에서 앱 트래픽 가로채기
v2rayNG는 시스템이 제공하는 VPN 인터페이스로 가상 네트워크 채널을 만듭니다. 작동 방식은 데스크톱 TUN과 비슷하며, 앱 트래픽이 먼저 클라이언트로 들어온 다음 Xray 코어가 라우팅과 출구 처리를 수행합니다. 처음 시작하면 시스템에서 연결 권한을 요청합니다. 권한을 승인하고 상태 표시줄에 네트워크 채널 아이콘이 나타나야 트래픽 가로채기가 실제로 적용됩니다.
- 노드를 가져와 테스트합니다. v2rayNG에서 구독을 업데이트하고 구성을 선택한 뒤 먼저 지연 시간을 테스트합니다. 지연 시간 수치는 탐색 요청에 응답했음을 보여줄 뿐이므로, 실제로 연결을 시작하고 웹 페이지에 접속해 노드가 데이터를 전송할 수 있는지 확인해야 합니다.
- 실행 모드를 선택합니다. 「설정」→「모드」로 이동해 VPN 모드를 선택합니다. 현재 버전이 메인 화면의 시작 버튼으로 시스템 채널을 직접 만든다면 기본 방식을 유지하고, 로컬 프록시 포트만 여는 모드로 전환하지 마세요.
- 첫 테스트에서는 앱별 프록시를 끕니다. 「설정」→「앱별 프록시」로 이동해 모든 일반 앱이 통합된 테스트 경로로 들어가도록 먼저 기능을 끕니다. 전체 연결이 정상임을 확인한 뒤 기능을 활성화하고 프록시를 사용할 앱 또는 우회할 앱을 선택합니다.
- 연결을 시작합니다. 메인 화면으로 돌아가 시작을 누르고 시스템 네트워크 연결 권한을 승인합니다. 연결 상태가 안정될 때까지 기다린 뒤 브라우저, UDP가 필요한 앱 및 백그라운드 업데이트 작업을 차례로 테스트합니다.
- 배터리 절전 제한을 확인합니다. 화면을 잠근 뒤 자주 연결이 끊긴다면 시스템 앱 관리에서 v2rayNG의 백그라운드 실행을 허용하고, 배터리 최적화가 네트워크 서비스를 중지하지 않는지 확인합니다. 구체적인 메뉴는 기기 시스템에 따라 다르지만 일반적으로 「설정」→「앱」→「v2rayNG」→「배터리」에 있습니다.
| 앱별 프록시 설정 | 트래픽 결과 | 적합한 상황 |
|---|---|---|
| 끄기 | 일반 앱이 모두 가상 네트워크로 들어감 | 첫 검증, 누락된 트래픽 진단 |
| 선택한 앱만 프록시 | 선택한 앱만 프록시 경로로 들어감 | 대상이 명확하고 가로채기 범위를 줄이고 싶을 때 |
| 선택한 앱 우회 | 선택한 앱은 직접 연결하고 나머지는 규칙에 따라 처리 | 로컬 서비스 또는 특정 앱을 반드시 직접 연결해야 할 때 |
v2rayNG의 VPN 모드와 노드 프로토콜은 같은 개념이 아닙니다. VMess와 VLESS는 클라이언트와 원격 노드 사이에 프록시 연결을 만드는 방식을 설명하고, VPN 모드는 기기 앱의 트래픽이 클라이언트로 들어오는 방식을 설명합니다. VMess 또는 VLESS 노드로 바꿔도 앱별 프록시 범위는 자동으로 변경되지 않으며, 앱별 목록을 조정해도 구독에 포함된 서버 주소·포트·전송 매개변수는 바뀌지 않습니다.
DNS·분할 라우팅 및 로컬 네트워크 접근
TUN이 연결을 성공적으로 캡처했는데도 웹 페이지에 도메인을 확인할 수 없다고 표시된다면 문제는 대개 DNS 경로에 있습니다. 도메인 확인은 시스템에서 시작할 수도 있고 앱이 직접 수행할 수도 있습니다. DNS 요청이 가상 네트워크 어댑터를 우회하거나, 다른 암호화 DNS 설정이 가로채거나, 연결할 수 없는 서버로 잘못 라우팅되면 IP로는 연결되지만 도메인으로는 열리지 않을 수 있습니다.
문제를 진단할 때는 먼저 알고 있는 IP 서비스에 접속해 “확인 실패”와 “연결 실패”를 구분한 다음, 코어 로그에 53번 포트 요청이 나타나는지 확인하세요. 시스템 DNS, 클라이언트 DNS, 브라우저 보안 DNS와 라우팅 규칙을 동시에 변경하지 마세요. 한 번에 한 항목만 바꾸고 코어를 재시작한 뒤 다시 테스트해야 어느 단계가 적용됐는지 판단할 수 있습니다.
- 로컬 네트워크 주소: 10.0.0.0/8, 172.16.0.0/12 및 192.168.0.0/16은 직접 연결로 유지하여 프린터, 라우터 관리 페이지 및 로컬 네트워크 저장 장치가 원격 노드로 전송되지 않게 하세요.
- 루프백 주소: 127.0.0.0/8은 로컬 접근으로 유지해야 합니다. 그래야 클라이언트의 로컬 리스닝이 다시 TUN으로 들어가 재귀 연결을 만들지 않습니다.
- 도메인 규칙: GeoSite는 도메인 집합을 기준으로 매칭하므로 DNS 확인 전에 출구를 결정할 때 적합합니다. 사용자 지정 전체 도메인 규칙은 범위가 넓은 분류 규칙보다 앞에 배치해야 합니다.
- IP 규칙: GeoIP는 대상 IP를 얻은 뒤 분할 라우팅에 참여하며, 지역 주소와 사설 네트워크 대역을 매칭하는 데 사용할 수 있습니다. 하지만 도메인 단계의 규칙을 대신할 수는 없습니다.
- 규칙 순서: 대부분의 라우팅 설정은 위에서 아래로 내려가며 처음 일치한 규칙을 적용합니다. 정확한 규칙을 앞에 두고, 적용 범위가 넓은 기본 규칙은 마지막에 배치하세요.
로컬 네트워크 접근을 예로 들면, TUN을 켠 뒤 192.168.1.1을 열 수 없을 때 먼저 해당 네트워크 대역에 직접 연결 규칙이 있는지 확인하고, 엄격한 라우팅이 규칙에 포함되지 않은 트래픽을 차단하는지 점검해야 합니다. 기기가 회사 네트워크와 가정용 네트워크에 동시에 연결되어 있다면 두 네트워크가 동일한 사설 네트워크 대역을 사용하는지도 확인하세요. 네트워크 대역이 겹치면 도메인 규칙만으로 어느 네트워크 어댑터에 전달할지 판단할 수 없습니다.
결론: TUN은 진입점을 통합하고 라우팅은 출구를 결정합니다
“일부 앱은 정상인데 일부 사이트만 이상한” 경우에는 모든 트래픽을 강제로 프록시로 보내지 말고 매칭된 규칙과 DNS 경로부터 확인해야 합니다. 로컬 네트워크와 루프백은 직접 연결로 유지하고, 정확한 도메인 규칙으로 예외를 덮어쓰는 방식이 단일 전체 출구보다 일반적으로 안정적입니다.
일반적인 충돌과 단계별 해결 방법
TUN 문제는 “권한 및 장치, 라우팅, DNS, 노드”의 네 계층으로 나누어 처리해야 합니다. 클라이언트를 계속 재설치하기보다 로그에 명시된 오류부터 확인하세요. 장치 생성 실패는 대개 권한 또는 가상 네트워크 어댑터 충돌과 관련이 있고, 요청이 로그에 들어왔지만 시간 초과가 발생한다면 노드, 프로토콜 매개변수 또는 원격 네트워크 문제일 가능성이 큽니다.
TUN을 켠 뒤 컴퓨터 전체가 인터넷에 연결되지 않나요?
먼저 TUN을 끄고 일반 네트워크가 복구되는지 확인한 다음 관리자 권한으로 v2rayN을 다시 시작하세요. 「설정」→「TUN 모드 설정」에서 자동 라우팅을 유지하고, 가상 네트워크 어댑터를 만드는 다른 프로그램은 잠시 중지한 뒤 다시 테스트합니다.
로그에 포트가 이미 사용 중이라고 표시되나요?
중복 실행 중인 v2rayN 프로세스를 종료하고 10808, 10809 등 로컬 포트를 다른 프로그램이 사용 중인지 확인하세요. 그런 다음 「설정」→「매개변수 설정」에서 포트를 변경하고 저장한 뒤 코어를 재시작합니다.
웹 페이지는 열리지만 게임이나 음성 통화는 여전히 실패하나요?
노드가 필요한 UDP 트래픽을 지원하는지 확인하고, 해당 포트가 차단 출구로 잘못 전송되도록 라우팅 규칙이 설정되어 있지 않은지 점검하세요. 먼저 기본 라우팅으로 다시 테스트한 다음 사용자 지정 규칙을 하나씩 복원하여 어떤 규칙이 영향을 주는지 확인합니다.
v2rayNG가 화면을 잠근 뒤 몇 분 후 자동으로 연결이 끊기나요?
시스템 「설정」→「앱」→「v2rayNG」→「배터리」로 이동해 백그라운드 실행을 허용하고 네트워크 서비스를 중지하는 제한을 해제하세요. 클라이언트에서 네트워크 변경 시 자동 재연결이 활성화되어 있는지도 확인합니다.
TUN은 켜져 있지만 로컬 네트워크 장치에 접근할 수 없나요?
대상 장치가 속한 사설 네트워크 대역을 직접 연결에 추가하고 해당 규칙이 프록시 기본 규칙보다 앞에 있는지 확인하세요. 여러 네트워크에 동시에 연결되어 있다면 시스템 라우팅 테이블에서 동일한 네트워크 대역의 메트릭과 출구 네트워크 어댑터를 점검합니다.
시스템 절전 또는 네트워크 전환 후 문제가 발생했다면 먼저 TUN을 중지하고 가상 네트워크 어댑터 상태가 해제될 때까지 기다린 다음 다시 시작하세요. 무선 네트워크에서 유선 네트워크로, 가정용 네트워크에서 모바일 핫스팟으로 전환하면 기본 게이트웨이와 인터페이스 번호가 바뀝니다. 자동 라우팅이 제때 재구성되지 않으면 이전 라우팅이 이미 무효화된 인터페이스를 계속 가리킬 수 있습니다.
그래도 복구되지 않으면 최소 구성으로 테스트하세요. 노드 하나, 기본 라우팅, 기본 DNS만 유지하고 앱별 프록시와 추가 규칙은 끈 상태에서 TUN만 활성화합니다. 최소 구성에서 정상 작동한 뒤에는 설정을 한 번에 하나씩만 복원하세요. 이를 통해 문제가 노드 설정, DNS, 사용자 지정 라우팅 또는 다른 네트워크 프로그램에서 비롯됐는지 분명히 알 수 있습니다.
TUN을 사용할 때와 시스템 프록시를 유지할 때
TUN은 통합 가로채기, UDP 처리 또는 시스템 프록시를 따르지 않는 앱에 적합하지만, 가상 네트워크 어댑터·라우팅·DNS라는 세 가지 관리 요소가 추가됩니다. 브라우저와 일반 데스크톱 소프트웨어에서만 프록시를 사용한다면 시스템 프록시가 더 단순하며, 문제가 발생해도 로컬 포트와 앱 설정으로 원인을 찾기 쉽습니다.
- 브라우저와 업무용 소프트웨어가 모두 시스템 프록시를 따름: 시스템 프록시를 우선 사용하세요.
- 명령줄 도구, 게임 또는 독립 앱이 시스템 프록시를 우회함: TUN을 사용하세요.
- 도메인·IP·포트 기준으로 통합 분할 라우팅 필요: TUN을 사용하고 로컬 네트워크 직접 연결을 유지하세요.
- 기업 가상 네트워크 어댑터를 계속 실행해야 함: 네트워크 대역과 라우팅 우선순위를 먼저 설계한 뒤 TUN을 함께 사용할지 결정하세요.
- 임시 문제 해결: 먼저 시스템 프록시로 돌아가 노드를 확인한 뒤 TUN·DNS·사용자 지정 규칙을 단계적으로 복원하세요.
올바른 활성화 순서는 노드를 먼저 검증하고, 가상 네트워크 어댑터를 만든 다음 로그와 DNS를 확인한 뒤 마지막으로 분할 라우팅 규칙을 추가하는 것입니다. 가로채기 진입점, 규칙 매칭, 프록시 출구를 분리해 점검하면 TUN 모드의 대부분의 문제를 “연결되었지만 접속할 수 없음”이라는 모호한 상태가 아니라 구체적인 한 단계의 문제로 좁힐 수 있습니다.