먼저 노드가 정상 작동하는지 확인한 뒤, v2rayN을 관리자 권한으로 실행해 TUN을 켜고 라우팅과 DNS를 점검하세요. 브라우저는 되는데 터미널이나 게임은 연결되지 않는 경우에 유용합니다. 시스템 프록시, 가상 네트워크 어댑터를 통한 트래픽 처리, 전체 프록시 규칙의 차이를 이해하고 점검 목록에 따라 네트워크 문제를 해결할 수 있습니다.
1. 시스템 프록시, TUN, 전체 프록시의 차이
시스템 프록시는 운영체제가 앱에 제공하는 프록시 설정입니다. 앱이 이 설정을 지원해야 요청을 로컬 프록시로 전달할 수 있습니다. 브라우저는 대체로 시스템 프록시를 사용하지만, 일부 명령줄 도구와 게임, 자체적으로 네트워크 연결을 만드는 프로그램은 이를 따르지 않습니다. 브라우저는 정상인데 다른 프로그램이 연결되지 않는다면 노드를 바꾸기 전에 해당 프로그램의 프록시 지원 여부부터 확인하세요.
TUN은 네트워크 계층에서 IP 패킷을 주고받는 가상 네트워크 인터페이스입니다. 클라이언트가 가상 네트워크 어댑터를 만들고 라우팅을 설정하면, 해당 경로에 맞는 연결을 프록시 처리 과정으로 전달할 수 있습니다. 앱마다 HTTP 또는 SOCKS 프록시를 지원할 필요가 없습니다. HTTP는 웹에서 흔히 사용하는 통신 프로토콜이고, SOCKS는 앱의 연결을 중계하는 프록시 프로토콜입니다.
| 비교 항목 | 시스템 프록시 | TUN 모드 |
|---|---|---|
| 트래픽 처리 위치 | 앱이 프록시 설정을 사용해 요청을 전달 | 가상 네트워크 어댑터와 시스템 라우팅으로 IP 패킷 수신 |
| 앱 요구 사항 | 시스템 프록시를 지원하거나 프록시를 직접 설정해야 함 | 대개 앱에 프록시 옵션이 없어도 사용 가능 |
| UDP 트래픽 | 일반적으로 시스템 HTTP 프록시로는 처리할 수 없음 | 처리할 수 있지만 커널, 규칙, 노드 지원 여부에 따라 달라짐 |
| 실행 권한 | 일반적으로 관리자 권한 불필요 | 네트워크 어댑터 생성 및 라우팅 변경 시 대개 관리자 권한 필요 |
| 실제 연결 경로 | 클라이언트 라우팅 규칙에 따라 결정 | 마찬가지로 클라이언트 라우팅 규칙에 따라 결정 |
정리: 트래픽 처리 방식을 먼저 정하고 분할 라우팅 규칙을 설정하세요
TUN을 켠다고 모든 연결이 원격 노드를 거치는 것은 아닙니다. 프록시 설정을 따르지 않는 프로그램의 트래픽을 처리해야 할 때 TUN을 사용하고, 어떤 목적지에 프록시를 적용할지는 라우팅 규칙으로 정하세요. 두 설정을 따로 확인하면 문제 원인을 더 쉽게 찾을 수 있습니다.
2. 가상 네트워크 어댑터가 트래픽을 노드로 전달하는 방식
앱이 연결을 시작하면 시스템은 먼저 라우팅 테이블을 확인합니다. TUN 경로에 해당하는 트래픽은 가상 네트워크 어댑터로 들어간 뒤, 네트워크 처리 커널이 읽고 규칙을 적용합니다. 규칙에 따라 직접 연결하거나 프록시를 사용하거나 차단할 수 있습니다. 따라서 ‘전체 트래픽 처리’는 적용 범위를 뜻할 뿐, 모든 연결이 프록시 서버를 거친다는 의미는 아닙니다.
v2rayN은 설정을 관리하고 커널을 호출하는 클라이언트 인터페이스이며, V2Ray 또는 Xray 커널 자체와 같은 것은 아닙니다. TUN 구현 방식은 클라이언트 버전과 사용하는 커널에 따라 다릅니다. 일부 버전은 sing-box로 TUN 트래픽을 처리합니다. 노드가 VMess 또는 VLESS를 사용한다는 사실만으로는 로컬 TUN 구현 방식을 알 수 없습니다.
- 서버 연결 경로 유지: 클라이언트가 프록시 서버에 연결할 때 해당 연결이 다시 자체 TUN으로 들어가 라우팅 루프가 생기지 않도록 해야 합니다. 클라이언트가 생성한 라우팅을 우선 사용하고, 수동 기본 경로를 함부로 추가하지 마세요.
- DNS는 별도로 확인: DNS는 도메인 이름을 IP 주소로 변환하는 서비스입니다. DNS 조회에 실패하면 원격 연결 단계에 도달하지 못할 수 있으므로, 노드를 바꾸는 것만으로는 해결되지 않을 수 있습니다.
- 게임을 UDP와 동일시하지 마세요: 게임은 TCP와 UDP를 함께 사용할 수 있습니다. TCP 연결에 성공해도 한 종류의 연결만 정상이라는 뜻입니다.
3. 설정을 저장하고 로컬 프록시 확인하기
아래 설명은 Windows용 v2rayN 7.x 데스크톱 인터페이스를 기준으로 합니다. 세부 버전에 따라 버튼 위치와 설정 그룹이 달라질 수 있으므로, 실제 화면의 ‘TUN 사용’과 TUN 매개변수 이름을 확인하세요. 다른 버전의 스크린샷과 똑같은 배치를 찾으려 하지 마세요. 시작 전에 현재 버전, 선택한 노드, 라우팅 모드, 로컬 수신 포트를 기록해 두세요.
일반 프록시 기준 상태
- 현재 설정
- 가져온 노드 중 정상 작동하는 항목 선택
- 시스템 프록시
- 먼저 브라우저 연결 확인에 사용
- 로컬 프록시
- 실제 SOCKS 또는 혼합 수신 포트 기록
- 백업할 설정
- 구독, 라우팅, DNS 설정
가상 네트워크 어댑터를 추가하기 전에 노드가 정상 작동하는지 먼저 확인하세요.
TUN 실행 조건
- 실행 권한
- 관리자 권한으로 실행
- 네트워크 처리 커널
- 클라이언트에 필요한 커널 파일 확인
- 다른 터널 연결
- 테스트 중에는 충돌할 수 있는 연결 일시 중지
- 라우팅 및 DNS
- 먼저 클라이언트 기본 설정 유지
관리 권한이 있는 기기에서만 설정하고 조직의 네트워크 정책을 우회하지 마세요.
아래 세 포트는 문제 해결 시 자주 참고하는 값으로, 속도 측정 결과도 아니고 모든 버전의 고정 기본값도 아닙니다. 특히 로컬 프록시 포트는 ‘설정’ → ‘매개변수 설정’에서 수신 설정을 확인하세요. 오래된 안내를 보고 임의로 입력하면 안 됩니다.
4. v2rayN을 관리자 권한으로 실행하고 TUN 켜기
- 현재 노드가 정상인지 확인하세요. 사용할 설정을 선택한 다음, 우선 시스템 프록시를 통해 접속 가능한 HTTPS 페이지를 엽니다. 일반 프록시도 작동하지 않으면 구독, 서버 주소, 인증 정보 또는 네트워크 문제부터 해결하세요.
- 클라이언트를 완전히 종료하세요. 시스템 트레이 메뉴에서 v2rayN을 종료하세요. 기본 창만 닫아서는 안 됩니다. 트레이에서 계속 실행 중인 이전 프로세스 때문에 다시 실행해도 기존 권한이 유지될 수 있습니다.
- 관리자 권한으로 실행하세요. v2rayN 프로그램이나 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 ‘관리자 권한으로 실행’을 선택한 뒤, 시스템 권한 요청을 승인하세요. 서비스 모드를 지원하는 버전은 서비스를 통해 필요한 권한을 얻을 수도 있습니다. 처음 문제를 점검할 때는 권한을 높이는 방법을 하나만 선택하세요.
- TUN 매개변수를 확인하세요. ‘설정’ → ‘매개변수 설정’에서 현재 버전의 TUN 설정을 찾으세요. 처음에는 기본 프로토콜 스택과 MTU를 유지하고 DNS, 네트워크 어댑터 이름, 라우팅을 동시에 변경하지 마세요. MTU는 네트워크 패킷 하나가 전송할 수 있는 최대 크기입니다.
- ‘TUN 사용’을 켜세요. 메인 화면으로 돌아가 해당 스위치를 켠 다음, 로그에서 커널 실행, 네트워크 어댑터 생성, 라우팅 설정이 완료되는지 확인하세요. 커널 파일이 없다는 메시지가 나오면 전체 배포 패키지나 클라이언트의 업데이트 기능으로 파일을 보충하세요.
- 시스템 프록시의 영향을 분리하세요. TUN이 독립적으로 작동하는지 확인하려면 클라이언트와 TUN은 켜 둔 채 시스템 프록시를 ‘시스템 프록시 해제’로 설정하세요. 그런 다음 브라우저와 대상 앱을 테스트합니다.
설정 후 Windows ‘설정’ → ‘네트워크 및 인터넷’ → ‘고급 네트워크 설정’에서 네트워크 어댑터를 확인하거나, 아래 명령으로 점검할 수 있습니다. 가상 네트워크 어댑터가 표시되어도 인터페이스가 생성됐다는 뜻일 뿐, 노드, 도메인 조회, 대상 앱이 모두 정상이라는 보장은 없습니다.
5. 스위치 상태만 보지 말고 명령으로 트래픽 처리 확인하기
먼저 같은 터미널 창에서 비교 테스트를 진행하세요. 첫 번째 명령은 로컬 SOCKS 연결을 직접 지정해 일반 프록시 경로를 확인합니다. 두 번째 명령은 앱 프록시를 사용하지 않고 TUN을 켠 상태에서 연결되는지 확인합니다. 예시 포트는 10808이고 대상은 공개 예시 도메인입니다. 실행 전에 포트와 현재 노드의 정책을 확인하세요.
curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com
curl.exe --noproxy "*" --connect-timeout 10 --max-time 20 -I https://example.com
socks5h는 SOCKS 프록시 쪽에서 도메인을 조회한다는 뜻입니다. --noproxy "*"를 사용하면 해당 curl 요청에서 앱 수준의 프록시 설정을 무시하지만, 시스템 라우팅이나 TUN을 우회하지는 않습니다. Windows에서는 일부 터미널 환경에서 curl이 다른 명령으로 처리되는 일을 막기 위해 curl.exe를 사용하세요.
Get-NetAdapter
Get-NetRoute -AddressFamily IPv4
Get-NetRoute -AddressFamily IPv6
Get-DnsClientServerAddress
- 켜기 전후를 비교하세요: TUN을 끄고 켰을 때 네트워크 인터페이스와 라우팅이 어떻게 바뀌는지 기록하세요. 특정 기본 경로가 반드시 표시되어야 하는 것은 아닙니다. 구현 방식에 따라 더 구체적인 경로로 트래픽을 처리할 수 있습니다.
- 외부 연결 로그를 확인하세요: 같은 테스트 연결이 어떤 대상 및 외부 연결 규칙과 일치했는지 확인하세요. 요청이 성공했다는 사실만으로 프록시를 거쳤다고 단정할 수는 없습니다. 직접 연결 규칙으로도 성공할 수 있습니다.
- IPv6을 확인하세요: 앱이 IPv6 연결을 우선하지만 TUN이 IPv4만 처리한다면 브라우저와 결과가 다를 수 있습니다. 실제 사용하는 주소 계열을 커널과 규칙이 지원하고 처리하는지 확인하세요.
- 실제 앱으로 테스트하세요: 대상 게임이나 명령줄 작업을 다시 시작한 뒤 테스트하세요. 기존에 맺어진 장시간 연결은 모드를 바꿔도 즉시 새로 연결되지 않을 수 있습니다.
정리: 요청 성공 여부와 해당 외부 연결 로그를 함께 확인하세요
두 번째 명령이 성공하면 로그에서 예상한 프록시 외부 연결 규칙이 적용됐는지 확인하세요. 직접 연결만 성공했다면 테스트 대상을 바꾸거나 라우팅 규칙을 조정해야 합니다. 이를 근거로 모든 앱이 프록시를 사용한다고 판단하면 안 됩니다.
6. DNS, 로컬 네트워크, UDP의 적용 범위 확인
분할 라우팅을 조정하기 전에 DNS 조회 문제부터 해결하세요. 일반 DNS는 보통 UDP 또는 TCP 53번 포트를 사용하고, 암호화 DNS는 HTTPS 443번 포트로 전송되기도 합니다. 53번 포트만 처리한다고 앱 자체의 암호화 DNS까지 모두 처리되는 것은 아닙니다. 브라우저에서 별도의 보안 DNS를 사용한다면 클라이언트 설정과 함께 확인해 서로 충돌하지 않도록 하세요.
| 증상 | 우선 확인할 항목 | 대처 방법 |
|---|---|---|
| 도메인은 접속되지 않지만 기존 IP 연결은 정상 | DNS 업스트림 및 조회 시 외부 연결 | 기본 DNS 설정을 복원하고 조회 시간 초과 로그를 확인한 뒤, 업스트림을 하나씩 변경하세요. |
| 로컬 프린터 또는 저장 장치에 연결할 수 없음 | 로컬 네트워크 목적지가 프록시로 잘못 전달되는지 확인 | 192.168.0.0/16, 10.0.0.0/8 등 실제 사용 중인 네트워크 대역에 직접 연결 규칙이 있는지 확인하세요. |
| 웹은 정상인데 게임 로그인이나 음성 채팅이 실패 | UDP 지원 여부 및 관련 규칙 | 노드 서비스가 UDP를 지원하는지 확인한 다음, 게임 관련 연결이 차단되는지 살펴보세요. |
| 일부 페이지가 멈추거나 업로드가 중단됨 | MTU 및 네트워크 경로 문제 | 기존 값을 기록한 뒤 하나씩 테스트하세요. 1400을 시도할 수 있지만 모든 환경에 최적인 값은 아닙니다. |
로컬 네트워크 대역은 표에 나온 두 범위만 있는 것이 아닙니다. 실제 환경의 172.16.0.0/12, IPv6 로컬 주소, 조직 전용 경로도 확인하세요. 조직 내부 네트워크를 모두 프록시로 돌리거나, 출처를 모르는 공인 IP 대역 전체를 직접 연결 대상으로 추가하지 마세요.
명령줄 도구가 반드시 TUN을 사용해야 하는 것은 아닙니다. 프록시를 지원하는 도구는 환경 변수나 SOCKS 연결 주소를 직접 설정할 수 있고, 게임에 사용할 수 있는 프록시 옵션이 있다면 다른 방법을 선택할 수도 있습니다. TUN은 프록시 설정을 따르지 않는 연결을 한꺼번에 처리하는 기능이지, 게임 지연 시간을 줄여 주거나 서버에 없는 UDP 기능을 보완하는 기능은 아닙니다.
7. 자주 묻는 질문과 네트워크 복구 순서
TUN을 켜자 권한 부족 오류가 뜹니다. 이미 관리자 권한으로 실행했는데도 왜 그런가요?
먼저 시스템 트레이에서 완전히 종료하고 이전 프로세스가 남아 있는지 확인하세요. 프로그램을 다시 마우스 오른쪽 버튼으로 클릭해 ‘관리자 권한으로 실행’을 선택합니다. 그래도 실패하면 로그에 표시된 실패 작업을 기록하고, 네트워크 어댑터 생성 문제인지 파일 접근 문제인지 구분하세요. 스위치만 반복해서 켰다 끄지 마세요.
브라우저는 되는데 터미널은 연결되지 않으면 어떻게 해야 하나요?
먼저 시스템 프록시를 해제하고 위에서 설명한 --noproxy "*" 옵션을 포함한 명령을 실행하세요. 실패하면 TUN 라우팅과 외부 연결 로그를 확인합니다. 성공하면 터미널 도구의 프록시 환경 변수, 인증서 설정, 대상 주소를 점검하세요.
TUN을 켠 뒤 다른 터널이나 회사 네트워크 연결이 끊겼습니다.
먼저 TUN을 꺼서 회사 네트워크 연결을 복구한 다음 두 경로의 라우팅을 비교하세요. 허가된 테스트라면 한 번에 터널 하나만 사용하세요. 여러 터널을 함께 사용해야 한다면 네트워크 관리자와 조직 네트워크 대역, DNS, 외부 연결 우선순위를 명확히 정하세요. 다른 터널의 경로를 바로 삭제하지 마세요.
클라이언트를 종료한 뒤에도 인터넷이 연결되지 않습니다. 어떻게 복구하나요?
클라이언트를 다시 실행하고 TUN을 끈 다음 시스템 프록시를 해제한 뒤 정상적으로 종료하세요. 시스템 DNS가 더 이상 작동하지 않는 로컬 서비스 주소를 가리키는지 확인하세요. 원래 자동으로 설정되던 네트워크라면 자동으로 주소를 받도록 복원할 수 있습니다. 문제가 계속되면 네트워크를 다시 연결하거나 기기를 재시작한 뒤 남은 설정을 확인하세요.
Android용 v2rayNG도 이렇게 관리자 권한을 받아야 하나요?
Windows 설정을 그대로 따라 할 필요는 없습니다. v2rayNG는 Xray 커널을 사용하며, 실행 시 Android VPN 권한을 받아 트래픽을 처리하므로 일반적으로 root 권한이 필요하지 않습니다. 시스템 권한을 승인하고 앱별 프록시 설정을 확인하세요. 제외 목록에 있는 앱은 같은 경로로 처리되지 않습니다.
문제 해결을 마치면 정상 작동한 노드, 라우팅 모드, DNS 설정, 클라이언트 버전을 기록하세요. 설정은 한 번에 하나씩만 변경하고, 실패하면 이전 값으로 되돌리세요. 직접 연결과 프록시 외부 연결 규칙의 관계를 더 알아보려면 사이트의 설정 항목 안내를 참고하세요. 구독을 처음 가져온다면 입문 가이드부터 시작하면 됩니다.