이 글은 Windows 데스크톱용 v2rayN을 기준으로 설명합니다. 브라우저는 인터넷에 연결되지만 명령 프롬프트나 다른 앱에서는 프록시가 작동하지 않는 경우에 적합합니다. 먼저 노드를 확인하고 관리자 권한으로 TUN을 켠 뒤, 네트워크 어댑터와 라우팅, 연결 로그를 함께 확인해 트래픽이 제대로 전달되는지 살펴봅니다. 연결이 끊기면 정해진 순서에 따라 설정을 되돌리고, 노드와 DNS, 라우팅 규칙을 한꺼번에 변경하지 마세요.
시스템 프록시와 TUN: 트래픽을 처리한다고 모두 프록시를 거치는 것은 아닙니다
시스템 프록시는 운영체제가 앱에 제공하는 프록시 설정입니다. 브라우저는 대개 이 설정을 따르지만, 일부 명령줄 도구와 게임, 백그라운드 서비스는 자체 네트워크 설정을 사용해 시스템 프록시를 따르지 않을 수 있습니다. TUN은 3계층 가상 네트워크 인터페이스를 만들고 라우팅을 통해 조건에 맞는 IP 패킷을 프록시 코어로 전달합니다. 각 앱이 HTTP 또는 SOCKS 프록시를 직접 지원하지 않아도 사용할 수 있습니다.
요약에서 말하는 ‘모든 트래픽’은 TUN이 처리 대상으로 삼는 범위를 뜻하며, 모든 패킷이 반드시 프록시 서버를 거친다는 뜻은 아닙니다. 로컬 네트워크 제외 설정, 인터페이스 바인딩, IPv6 구성, 특정 시스템 트래픽에 따라 적용 범위가 달라집니다. TUN으로 들어온 트래픽도 규칙에 따라 직접 연결하거나 프록시로 전달하거나 차단할 수 있습니다. TUN을 켜도 ‘로컬 네트워크 우회’ 라우팅이 자동으로 전역 프록시로 바뀌지는 않습니다.
| 비교 항목 | 시스템 프록시 | TUN 모드 |
|---|---|---|
| 적용 위치 | 앱이 프록시 설정을 읽음 | 시스템 라우팅 및 가상 네트워크 어댑터 |
| 주요 적용 대상 | 설정을 따르는 브라우저 등의 앱 | 라우팅된 TCP·UDP 트래픽 |
| Windows 권한 | 현재 사용자 프록시 변경에는 보통 관리자 권한이 필요하지 않음 | 일반적으로 관리자 권한 필요 |
| 트래픽 분기 규칙 변경 여부 | 자동으로 변경되지 않음 | 자동으로 변경되지 않음 |
| 주요 점검 항목 | 프록시 주소, 로컬 수신 포트 | 네트워크 어댑터, 라우팅, DNS, 코어 로그 |
판단 기준: 일부 앱만 프록시를 사용하지 않을 때 TUN 고려
브라우저와 다른 앱이 모두 정상적으로 연결된다면 시스템 프록시를 그대로 사용하세요. 브라우저는 정상이지만 시스템 프록시를 따르지 않는 앱에서 연결 문제가 생긴다면, 먼저 해당 앱이 수동 프록시 설정을 지원하는지 확인한 뒤 TUN 사용 여부를 결정하세요.
시작 전 준비: 기존 설정 기록 및 노드 연결 확인
v2rayN은 클라이언트 인터페이스이며, 실제 트래픽 전달은 코어가 담당합니다. VMess 또는 VLESS 노드를 사용한다고 해서 TUN을 사용할 수 있는 것은 아닙니다. 현재 클라이언트에 적절한 TUN 백엔드와 관련 구성 요소가 있어야 합니다. 일부 버전은 sing-box로 TUN 연결을 처리합니다. 따라서 ‘TUN 스위치’를 켜면 모든 트래픽이 Xray의 특정 설정 하나로 전달된다고 생각해서는 안 됩니다.
아래 내용은 최근 Windows 버전에서 흔히 볼 수 있는 메뉴 이름을 기준으로 설명합니다. 데스크톱 버전에 따라 버튼 위치와 TUN 설정 항목이 달라질 수 있으므로 먼저 ‘도움말’ → ‘정보’에서 현재 버전을 확인하고 화면에 표시된 항목과 대조하세요. 같은 항목이 없다면 예전 버전의 스크린샷을 그대로 따라 하거나 코어 설정을 임의로 추가하지 마세요.
- 설정 보관. 현재 설정 폴더를 백업하거나 구독 그룹, 활성 노드, 라우팅 모드, DNS의 기존 값을 기록해 두세요. 백업에 구독 주소와 인증 정보가 포함될 수 있으므로 안전한 위치에 보관하세요.
- 기본 연결 확인. TUN은 아직 켜지 말고 사용 가능한 노드를 선택한 다음 시스템 프록시로 실제 웹페이지를 열어 보세요. 지연 시간 표시가 정상인 것만으로는 충분하지 않습니다. 실제 요청이 완료되는지 확인해야 합니다.
- 로컬 포트 기록. ‘설정’ → ‘매개변수 설정’에서 로컬 수신 포트와 수신 유형을 확인하세요. 이 글에서는
127.0.0.1:10808을 예시로 들지만, 실제 값은 현재 설정을 따릅니다. - 다른 트래픽 처리 기능 중지. 다른 VPN, 가상 네트워크 어댑터 기반 트래픽 처리 도구, 네트워크 가속 기능을 잠시 종료하세요. 회사 장비라면 먼저 관리 정책을 확인하고 조직의 네트워크 보안 서비스를 임의로 중지하지 마세요.
- 설치 폴더 확인. 전체 설치 패키지 또는 압축을 완전히 푼 폴더를 사용하세요. 실행 파일 하나만 복사하지 말고 현재 사용자 계정에 설정과 로그를 기록할 권한이 있는지 확인하세요.
Windows에서 TUN 켜기 및 설정 비교
처음 켤 때는 트래픽 처리 방식만 변경하고 이미 작동하는 노드와 라우팅 방식은 그대로 유지하세요. 구독을 새로 가져오거나 프로토콜을 바꾸고, DNS를 수정하면서 TUN까지 동시에 켜지 마세요. 문제가 생기면 원인을 찾기 어려워집니다.
- 클라이언트를 완전히 종료하세요. 창만 닫지 말고 시스템 트레이 메뉴에서 v2rayN을 종료하세요. 기존 프로세스가 끝났는지 확인합니다.
- 관리자 권한으로 다시 실행하세요. v2rayN 실행 파일을 마우스 오른쪽 버튼으로 클릭하고 ‘관리자 권한으로 실행’을 선택한 뒤 Windows 권한 확인 창에서 허용하세요. 관리자 권한으로 실행되지 않았다면 권한 문제부터 해결하고 TUN 스위치를 반복해서 누르지 마세요.
- 활성 노드 확인. 메인 화면에서 현재 선택된 서버와 라우팅 모드를 확인하세요. 노드가 선택되어 있다는 사실만으로 연결 확인까지 끝난 것은 아닙니다.
- 시스템 프록시 해제. 메인 화면이나 시스템 트레이의 ‘시스템 프록시’ 메뉴에서 ‘시스템 프록시 해제’를 선택하세요. 첫 테스트에서는 접속 방식을 하나만 사용해야 문제를 구분하기 쉽습니다. 시스템 프록시를 해제해도 코어가 종료되는 것은 아닙니다.
- TUN 켜기. 메인 화면에서 ‘TUN 사용’ 스위치를 켜세요. 관리자 권한으로 다시 실행하거나 코어를 재시작하라는 메시지가 표시되면 안내에 따르세요. 그런 다음 로그에서 권한 오류, 어댑터 생성 오류, 설정 로드 오류가 있는지 확인합니다.
- TUN 기본 설정부터 사용. 고급 항목을 확인해야 한다면 ‘설정’ → ‘매개변수 설정’의 TUN 관련 페이지로 이동하세요. 일부 버전에서는 메뉴 이름이 ‘TUN 모드 설정’일 수 있습니다. 해당 항목이 없다면 현재 버전의 기본값을 유지하고 다른 버전의 매개변수를 가져오지 마세요.
기준 설정: 시스템 프록시로 확인
- 실행 권한
- 현재 사용자
- 시스템 프록시
- 시스템 프록시 자동 설정
- TUN 사용
- 끔
- 로컬 주소
- 127.0.0.1
- 포트 기록
- 10808, 설정 예시
포트 번호만 보고 프로토콜을 판단할 수 없습니다. 실제 HTTP 또는 혼합 수신 포트와 일치해야 합니다.
목표: TUN만 따로 확인
- 실행 권한
- 관리자
- 시스템 프록시
- 시스템 프록시 해제
- TUN 사용
- 켬
- 활성 노드
- 기존 기준 노드 유지
- 라우팅 모드
- 기존 모드 유지
로컬 프록시 포트는 계속 수신 대기 상태로 둘 수 있습니다. TUN은 가상 네트워크 어댑터로 연결되므로 시스템 네트워크 어댑터의 포트를 10808로 변경할 필요가 없습니다.
처음 실행할 때 Windows 방화벽 알림이 나타나면 프로그램 경로와 적용할 네트워크 범위를 확인하세요. 스위치를 켜기 위해 방화벽 전체를 끄거나 로컬 수신 주소를 0.0.0.0으로 변경하지 마세요. 수신 범위를 넓혀도 가상 네트워크 어댑터 권한 문제는 해결되지 않으며, 같은 네트워크의 다른 장치가 로컬 프록시에 접속할 수 있게 될 수 있습니다.
작동 여부 확인: 네트워크 어댑터, 라우팅, 실제 요청
‘스위치가 켜짐’은 화면의 상태가 바뀌었다는 뜻일 뿐입니다. 제대로 확인하려면 가상 인터페이스가 있는지, 라우팅이 바뀌었는지, 대상 요청이 코어에 전달됐는지 모두 살펴봐야 합니다. 아래 명령은 Windows PowerShell에서 실행하세요. TUN을 켜기 전과 후에 각각 실행해 결과를 비교합니다. 인터페이스 이름은 버전과 설정에 따라 다르므로 튜토리얼 화면과 일치하지 않아도 됩니다.
Get-NetAdapter -IncludeHidden |
Select-Object Name, InterfaceDescription, Status
route print -4
route print -6
curl.exe --noproxy "*" -I --connect-timeout 10 https://example.com/
- 네트워크 어댑터 확인: TUN을 켜기 전과 비교해 TUN 가상 인터페이스가 새로 추가되거나 활성화됐는지 확인하세요. 이전부터 있던 가상 네트워크 어댑터만 보인다고 해서 현재 트래픽 처리가 성공한 것은 아닙니다.
- 라우팅 확인: IPv4 라우팅에 TUN으로 향하는 항목이 추가됐는지 확인하세요. 구현 방식에 따라 기본 경로를 분할하거나 다른 정책을 사용할 수 있으므로 새로운
0.0.0.0/0항목이 반드시 보여야 하는 것은 아닙니다. - 요청 확인:
--noproxy "*"를 사용하면 curl이 명시적인 프록시 설정을 사용하지 않습니다. 시스템 라우팅 단계에서 연결되는지 확인할 때 유용하며, TUN을 우회하지는 않습니다. HTTP 응답을 받으면 요청이 완료된 것이지만, 이것만으로 프록시를 통해 외부에 연결됐는지는 판단할 수 없습니다. - 트래픽 분기 확인: 코어 로그의 대상 주소와 아웃바운드 태그를 대조해 테스트 대상이 직접 연결됐는지 프록시로 전달됐는지 확인하세요. 현재 로그 수준에서 연결이 표시되지 않는다면 일시적으로 한 단계 높였다가 확인 후 원래대로 돌리세요. 로그를 공유하기 전에 민감한 정보를 삭제해야 합니다.
명확히 직접 연결되는 대상과 규칙에 따라 프록시를 사용하는 대상을 각각 테스트하세요. 외부 IP가 바뀌었다면 해당 요청의 접속 경로가 달라졌다는 뜻일 뿐, 모든 앱이 TUN으로 처리된다는 뜻은 아닙니다. UDP도 실제로 사용할 앱으로 테스트하세요. 웹페이지가 열린다고 해서 게임이나 음성 통화에 사용되는 UDP 연결까지 정상이라는 뜻은 아닙니다.
판단 기준: 성공으로 보려면 두 가지 이상의 증거를 확인하세요
가상 인터페이스와 라우팅 변화로 TUN 연결이 설정됐는지 확인하고, 연결 로그로 규칙 선택이 예상대로인지 확인하세요. 두 가지를 함께 확인하는 편이 스위치, 지연 시간 또는 외부 IP만 보는 것보다 정확합니다.
DNS, IPv6, 로컬 네트워크 접근 시 주의 사항
TUN이 패킷을 수신한다고 해서 DNS가 반드시 예상대로 작동하는 것은 아닙니다. 시스템 캐시, 브라우저 보안 DNS, 클라이언트 DNS 규칙, 코어의 DNS 처리에 따라 요청 경로가 달라질 수 있습니다. ‘IP 주소로는 연결되지만 도메인 이름으로는 접속할 수 없는’ 경우 먼저 로그에서 DNS 오류를 확인하고 클라이언트 DNS 설정을 살펴보세요. 모든 DNS 주소를 같은 공개 DNS로 바꾸지는 마세요.
- DNS 처리: 일반적으로 UDP 또는 TCP 53번 포트의 DNS 요청이 처리 대상입니다. 브라우저의 암호화 DNS는 다른 연결 방식을 사용하므로 동일한 53번 포트 규칙을 반드시 따른다고 가정하면 안 됩니다.
- IPv6: IPv4와 IPv6는 서로 다른 라우팅 테이블을 사용합니다. IPv4만 처리하면 일부 앱이 IPv6를 통해 다른 경로로 연결될 수 있습니다.
route print -6결과와 클라이언트의 IPv6 설정을 함께 확인한 뒤 조정 여부를 결정하세요. - 로컬 네트워크: 프린터, 파일 공유, 라우터 관리 페이지는 보통 직접 연결해야 합니다. 모든 로컬 네트워크 트래픽을 프록시로 보내지 말고 실제 사용 중인
192.168.0.0/16,10.0.0.0/8또는172.16.0.0/12대역을 확인하세요. - FakeDNS: 도메인 이름과 가상 주소를 연결하는 방식이며 TUN을 켤 때 반드시 필요한 기능은 아닙니다. 기본 연결을 확인하기 전에는 추가로 켜지 마세요. 사용하면 주소 매핑과 캐시, 트래픽 분기를 함께 점검해야 합니다.
DNS 정책을 변경한 뒤 Windows에 이전 DNS 조회 결과가 남아 있는 것 같다면 아래 명령을 실행한 후 다시 테스트하세요. 이 명령은 Windows DNS 클라이언트 캐시만 지웁니다. 브라우저 자체 캐시는 지우지 않으며, 잘못된 상위 DNS나 라우팅 규칙을 수정하지도 않습니다.
ipconfig /flushdns
자주 발생하는 문제: 원인에 맞는 항목부터 확인
TUN 스위치를 켜자마자 자동으로 꺼집니다. 어떻게 해야 하나요?
먼저 문제가 발생한 시각의 코어 로그를 확인하세요. 권한 부족 또는 인터페이스 생성 실패가 표시되면 클라이언트를 종료하고 관리자 권한으로 다시 실행하세요. 구성 요소가 없다는 메시지가 나오면 기존 설정을 보존한 채 전체 설치 패키지로 복구하세요. 노드를 반복해서 바꾸지 마세요. 노드 설정은 대개 로컬 네트워크 어댑터 생성 실패를 해결하지 못합니다.
TUN을 켠 뒤 인터넷이 모두 끊겼습니다. 먼저 DNS를 바꿔야 하나요?
먼저 TUN을 끄고 시스템 프록시를 이전 상태로 되돌린 뒤 기본 연결이 여전히 정상인지 확인하세요. 그런 다음 다른 네트워크 트래픽 처리 프로그램을 종료하고 TUN만 켜 보세요. 로그에 DNS 시간 초과가 있으면 DNS를 확인하고, 노드 연결 시간 초과라면 노드 연결 상태와 인터페이스 선택, 라우팅 루프를 점검하세요.
웹페이지는 열리지만 게임은 계속 연결에 실패하나요?
대상 연결이 로그에 표시되는지 확인한 다음, 노드의 아웃바운드와 서버가 필요한 UDP 전달을 지원하는지 확인하세요. TUN이 UDP를 수신해도 서버가 UDP를 전달할 수 있다는 뜻은 아닙니다. 게임 문제는 특정 포트, 지역 제한, 앱 자체 정책 때문일 수도 있으므로 전역 모드만 켜서 해결하려고 해서는 안 됩니다.
TUN을 켠 뒤 프린터나 회사 내부망에 접속할 수 없나요?
접속할 수 없는 대상의 실제 IP 주소와 네트워크 대역을 기록하고 프록시 규칙에 잘못 포함됐는지 확인하세요. 개인 로컬 네트워크는 필요에 따라 직접 연결로 되돌리세요. 회사 내부망이 전용 VPN을 사용한다면 먼저 TUN을 끄고 연결을 확인하세요. 기본 경로 두 개를 겹쳐 사용하지 말고 용도를 모르는 회사 네트워크 어댑터를 삭제하지 마세요.
웹페이지 글자는 보이지만 이미지 업로드나 동영상, 대용량 파일 전송이 자주 멈춘다면 MTU도 확인하세요. 현재 값을 기록하고, 해당 버전에 설정 항목이 있는 경우에만 1500을 1400으로 임시 변경하는 것처럼 한 번에 한 항목씩 조정한 뒤 같은 작업으로 비교하세요. 이 값은 문제 해결을 위한 시험값이지 누구에게나 맞는 최적값이 아닙니다. 개선되지 않으면 원래 값으로 되돌려 일시적인 네트워크 문제를 설정 효과로 오해하지 않도록 하세요.
종료 및 복구: 시스템 경로가 원래대로 돌아왔는지 확인
더 이상 TUN이 필요하지 않다면 먼저 ‘TUN 사용’을 끄고 코어가 종료되거나 전환을 마칠 때까지 기다린 다음 필요한 시스템 프록시 상태를 복구하세요. 메인 창만 닫으면 시스템 트레이의 프로세스가 계속 실행될 수 있으므로, 창을 닫는 것만으로 트래픽 처리가 중단되지는 않습니다.
- TUN을 끈 뒤 네트워크 어댑터 상태와 라우팅 테이블을 다시 확인하세요. 가상 어댑터가 남아 있을 수는 있지만 잘못된 트래픽 처리 경로가 계속 유지되어서는 안 됩니다.
- 브라우저에서 프록시를 계속 사용하려면 ‘시스템 프록시’에서 ‘시스템 프록시 자동 설정’을 다시 선택하세요. 프록시를 완전히 사용하지 않으려면 ‘시스템 프록시 해제’를 선택합니다.
- 클라이언트가 비정상적으로 종료된 뒤 인터넷이 끊겼다면 먼저 같은 클라이언트를 다시 실행한 다음 TUN을 정상적으로 끄세요. Windows의 ‘설정’ → ‘네트워크 및 인터넷’ → ‘프록시’에서 중지된 수신 포트를 가리키는 수동 프록시 설정이 남아 있지 않은지도 확인하세요.
- 여전히 복구되지 않는다면 로그를 저장하고 시스템을 다시 시작한 뒤 다른 VPN이나 가상 네트워크 어댑터 프로그램을 확인하세요. 네트워크 초기화를 바로 실행하거나 네트워크 어댑터를 한꺼번에 삭제하지 마세요. 고정 IP, 회사 네트워크, 원격 관리에 영향을 줄 수 있습니다.
TUN은 앱 트래픽을 코어로 전달하는 방식을 처리하고, 구독은 사용할 수 있는 노드를 제공하며, 라우팅은 직접 연결과 프록시를 결정하고, DNS는 도메인 이름을 해석합니다. 이 네 가지를 각각 확인해야 ‘트래픽이 전달되지 않음’, ‘분기 오류’, ‘노드 사용 불가’를 구분할 수 있습니다. 기본적인 사용 방법은 사용 설명서에서, 프로토콜과 전송 매개변수는 기술 참고 자료에서 확인하세요.