· 문제 해결 · 약 10분

V2Ray 노드 연결 시간 초과·접속 불가? 로컬부터 서버까지 점검 순서

로컬 네트워크, 시스템 프록시와 TUN, 클라이언트 라우팅 규칙, 코어 로그, 노드 설정 순으로 확인해 시간 초과가 PC와 서버 중 어디서 발생하는지 빠르게 파악하세요.

이 글의 핵심

노드 테스트 시간 초과, 브라우저에서 웹페이지가 열리지 않는 문제, TUN 활성화 후 인터넷이 끊기는 상황에 적용할 수 있습니다. 먼저 노드 하나와 URL 하나를 고정해 기준을 만들고, 로컬 연결, 라우팅 결과, 로그를 확인한 뒤 서버 설정을 점검하세요. 구독, DNS, 프록시 모드를 한꺼번에 바꾸면 원인을 파악하기 어려우므로 한 번에 하나씩만 변경하세요.

1. 시간 초과가 발생한 구간 확인

‘노드 시간 초과’는 정해진 시간 안에 테스트가 끝나지 않았다는 뜻이지, 서버가 이미 오프라인이라는 뜻은 아닙니다. 로컬 수신 포트, 노드 주소 확인, 전송 핸드셰이크 단계에서 멈췄거나 프록시를 통한 테스트 URL 접속이 지연됐을 수 있습니다. v2rayN은 데스크톱 설정 관리 클라이언트이며 실제 연결은 선택한 코어가 담당합니다. 프로그램 화면이 열린다고 코어가 정상적으로 시작된 것은 아닙니다.

앱 요청 로컬 연결 지점 라우팅 규칙 적용 노드 연결 대상 웹사이트

발생 시각, 클라이언트 버전, 코어 이름과 버전, 현재 노드 별칭, 프록시 모드, 테스트 URL을 기록하세요. 버전 정보는 ‘도움말’의 버전 정보나 메인 화면에 표시된 값을 확인하고, 코어 버전은 시작 로그에서 확인하세요. 클라이언트 버전으로 코어 버전을 대신 판단하면 안 됩니다. 다음 세 가지 증상은 각각 다르게 점검해야 합니다.

2. 로컬 직접 연결을 복구하고 테스트 경로 하나만 구성

Windows에서는 먼저 v2rayN 메인 화면에서 ‘TUN 사용’을 끈 다음 ‘시스템 프록시’에서 ‘시스템 프록시 해제’를 선택하세요. 버전에 따라 메뉴 위치는 다를 수 있지만, 창만 닫는 것이 아니라 트래픽 처리 방식이 꺼졌는지 확인해야 합니다. 그런 다음 평소 프록시 없이 접속되는 웹사이트를 열고, Wi-Fi에서 웹 로그인 인증이 필요한지도 확인하세요.

  1. 로컬 인터넷 연결 확인

    Windows ‘설정’ → ‘네트워크 및 인터넷’에서 네트워크 연결 상태를 확인하세요. 직접 연결로도 웹사이트가 열리지 않는다면 노드를 수정하기 전에 게이트웨이, 인증 페이지, 네트워크 장애부터 해결하세요.

  2. 시스템 시간 확인

    ‘설정’ → ‘시간 및 언어’ → ‘날짜 및 시간’에서 자동으로 시간 설정을 켜고 ‘지금 동기화’를 누르세요. 시간이 맞지 않으면 인증서 검증이나 시간 확인이 필요한 프로토콜에 문제가 생길 수 있습니다.

  3. 수신 포트 확인

    v2rayN의 ‘설정’ → ‘매개변수 설정’에서 로컬 수신 설정을 확인하고, 코어 시작 로그에서 실제 포트와 프로토콜 유형을 확인하세요. 노드의 원격 포트를 브라우저 프록시 설정에 입력하지 마세요.

  4. 테스트 조건 고정

    노드 하나를 선택해 활성 서버로 지정하고 TUN은 끈 상태로 유지하세요. 시스템 프록시만 켜거나 명령어에서 로컬 프록시를 명시적으로 지정합니다. URL 하나를 고정하고 요청을 한 번 실행한 뒤 해당 시각의 로그를 확인하세요.

아래 숫자는 점검 예시일 뿐이며 모든 버전의 기본값을 의미하지 않습니다. 로컬 HTTP 또는 혼합 수신 지점이 127.0.0.1:10808에서 대기 중이고 대상 URL이 HTTPS라고 가정합니다. 실제로 실행할 때는 현재 설정과 포트가 일치하는지 확인하세요.

10808
로컬 프록시 포트 예시
443
HTTPS 대상 포트
15초
요청 전체 제한 시간
curl.exe --proxy http://127.0.0.1:10808 --connect-timeout 5 --max-time 15 --head https://example.com/

Windows 명령어 예시입니다. macOS와 Linux에서는 일반적으로 curl을 사용합니다. 수신 지점이 SOCKS만 지원한다면 프록시 주소를 socks5h://127.0.0.1:10808로 바꾸세요. 포트는 현재 설정과 일치해야 합니다. HTTP 응답을 받았다면 해당 요청이 어떤 HTTP 서버에 도달했다는 뜻이지만, 상태 코드와 로그를 함께 확인해야 합니다. 시간 초과가 발생하면 연결 경로를 따라 계속 점검하세요.

3. 시스템 프록시와 TUN을 따로 확인

시스템 프록시는 시스템 프록시 설정을 따르는 앱에 주로 적용되며 모든 프로세스의 트래픽을 자동으로 처리하지는 않습니다. TUN은 가상 네트워크 인터페이스를 통해 설정 조건에 맞는 트래픽을 처리하므로 라우팅 테이블, 권한, DNS 처리와 관련이 있습니다. 문제를 찾는 동안 두 기능을 동시에 켜면 루프나 중복 처리 가능성이 커져 어느 단계에서 문제가 생겼는지 파악하기 어렵습니다.

증상우선 확인할 항목다음 조치
프록시를 명시한 요청은 성공하지만 브라우저에서는 실패시스템 프록시 및 브라우저의 별도 프록시 설정Windows ‘설정’ → ‘네트워크 및 인터넷’ → ‘프록시’에서 주소와 포트 확인
시스템 프록시는 되지만 TUN은 작동하지 않음관리자 권한, 가상 인터페이스, 라우팅 충돌권한 요청과 시작 로그를 확인하고, 트래픽을 가로채는 다른 프로그램을 종료한 뒤 다시 테스트
컴퓨터가 절전 모드에 들어간 뒤에만 연결이 끊김네트워크 인터페이스 복구, 기존 연결, DNS 상태트래픽 처리를 중지하고 네트워크 복구를 기다린 다음 코어를 재시작하고 연결을 다시 설정
안드로이드에서 백그라운드에서만 연결이 끊김VPN 권한, 배터리 절전, 앱별 적용 범위v2rayNG의 VPN 상태, 앱 배터리 설정, 대상 앱이 제외되어 있는지 확인

v2rayNG는 Android VpnService와 Xray 코어를 사용하고, v2flyNG는 v2fly 코어를 사용합니다. 두 앱 모두 실제 코어와 설정이 호환되는지 확인해야 합니다. Android의 VPN 연결은 다른 VPN 서비스가 대체할 수 있으므로 알림 표시줄에 앱이 실행 중인지 여부만으로 판단하지 마세요. 백그라운드 문제는 화면 잠금 전후로 각각 테스트하고, 곧바로 노드 프로토콜을 바꾸지 마세요.

결론: 로컬 프록시 연결 지점부터 정상 여부 확인

로컬 프록시를 명시한 요청은 성공하지만 일반 앱에서 실패한다면 앱 연결 설정이나 트래픽 처리 범위를 먼저 바로잡으세요. 원격 UUID, TLS, 전송 설정부터 변경하지 마세요.

4. 라우팅 결과가 예상한 출구와 일치하는지 확인

라우팅 규칙은 일반적으로 설정된 순서대로 적용되지만, 조건과 기본 출구는 코어 설정에 따라 달라집니다. 노드를 선택했다고 모든 요청이 해당 노드를 사용하는 것은 아닙니다. 도메인, IP, 프로세스 규칙과 직접 연결 또는 차단 출구에 따라 실제 경로가 바뀔 수 있습니다. 실제 연결 지연을 측정하는 테스트 요청도 버전과 로그를 함께 확인해 어느 출구를 이용했는지 판단해야 합니다.

DNS 문제를 배제하겠다며 노드 도메인을 예전 IP 주소로 바로 바꾸지 마세요. 도메인으로 연결하는 서비스는 IP 주소가 바뀔 수 있으며, IP로 변경한 뒤에도 TLS 서버 이름에는 원래 값이 필요할 수 있습니다. 먼저 DNS 조회 결과와 서비스 제공자가 안내한 연결 주소를 확인하고, 필요하다면 원복할 수 있는 방식으로 비교 테스트를 진행하세요.

5. 코어 로그로 연결 실패 단계 찾기

클라이언트 로그에서 실패 요청 전후의 내용을 저장하세요. 현재 로그 수준에서 연결 과정이 보이지 않는다면 ‘설정’ → ‘매개변수 설정’에서 로그 수준을 찾아 임시로 상세하게 높인 뒤 코어를 재시작하고 한 번만 재현하세요. 작업이 끝나면 평소 로그 수준으로 되돌려 로그가 계속 쌓이지 않게 하세요. 아래 오류 메시지는 더 긴 문맥의 일부일 수 있으므로 판단할 때 앞뒤의 대상 주소와 작업 유형을 함께 확인해야 합니다.

dial tcp: lookup ...: no such host

원인: 현재 DNS 조회에서 연결할 호스트를 찾지 못했습니다. 주소 오타, 만료된 레코드 또는 DNS 조회 경로 이상이 원인일 수 있습니다.

해결: 로그에 나온 호스트가 노드 연결 주소인지 대상 웹사이트인지 먼저 확인한 다음, 해당 도메인 설정과 DNS를 점검하세요. 두 곳의 DNS 설정을 동시에 변경하지 마세요.

connect: connection refused

원인: 연결 요청이 거부 응답을 받았습니다. 포트에서 서비스가 대기 중이지 않거나 기기가 연결을 적극적으로 거부한 경우가 흔하지만, 이 오류만으로 최종 서비스가 거부했다고 단정할 수는 없습니다.

해결: 주소가 127.0.0.1이면 로컬 코어와 포트를 먼저 확인하세요. 원격 주소라면 노드 포트와 서버의 수신 상태를 점검하세요.

i/o timeout

원인: 네트워크 작업이 제한 시간 안에 끝나지 않았습니다. 연결 시도, 읽기·쓰기, 핸드셰이크 중 어디서든 발생할 수 있으므로 이 한 줄만 보고 프로토콜 호환성 문제라고 판단하면 안 됩니다.

해결: 앞선 작업 내용과 대상 주소를 확인한 뒤 다른 네트워크에서 같은 노드로 테스트해 경로 문제와 서버 문제를 구분하세요.

x509: certificate has expired or is not yet valid

원인: 인증서 유효 기간과 로컬 시간이 일치하지 않을 수 있습니다. 시스템 시간이 잘못됐거나 원격 인증서가 만료됐을 가능성이 있습니다.

해결: 먼저 시스템 시간을 동기화하세요. 시간이 정상이라면 서비스 제공자에게 인증서를 확인해 달라고 요청하세요. 인증서 검증을 건너뛰는 방식으로 문제를 대신 해결하지 마세요.

6. 노드 설정과 서버 수신 상태 최종 점검

로컬 연결 지점, 라우팅, 네트워크에 문제가 없음을 확인한 뒤 노드 설정을 살펴보세요. VMess와 VLESS는 서로 다른 프로토콜이므로 프로토콜 이름만 바꾸고 기존 설정을 그대로 사용할 수 없습니다. 전송 방식, TLS, 보안 설정은 서버 설정과 맞아야 합니다. 클라이언트에서 설정을 가져올 수 있다고 해서 선택한 코어가 모든 기능을 지원하는 것은 아닙니다.

설정 항목확인할 세부 항목흔한 오해
연결 정보와 인증서버 주소, 원격 포트, UUID 또는 프로토콜별 인증 정보TCP 포트에 연결되면 인증도 반드시 성공했다고 생각
TLS 및 서버 이름TLS 사용 여부, 서버 이름, 인증서 유효 기간연결 주소와 TLS 서버 이름은 항상 같다고 생각
전송 계층WebSocket 경로와 Host, gRPC 서비스 이름 등UUID만 확인하고 리버스 프록시 전달 설정은 놓침
특정 보안 설정REALITY 사용 시 공개 키, 서버 이름, shortId를 확인하고 flow 사용 시 해당 값 확인클라이언트가 서버 설정을 알아서 추측하거나 임의로 채워 줄 거라고 기대

Windows PowerShell에서 Test-NetConnection을 사용해 노드의 TCP 포트를 확인할 수 있습니다. -ComputerName에는 노드의 실제 주소를, -Port에는 노드의 실제 포트를 지정하세요. 이 명령으로 확인할 수 있는 것은 TCP 연결 성립 여부뿐이며 VMess, VLESS, TLS 또는 이후 대상 사이트 접속은 검증하지 않습니다. UDP 기반 전송에는 이 결과를 근거로 결론을 내릴 수 없습니다.

7. 교차 테스트로 마무리하고 재현 기록 남기기

마지막으로 범위를 좁혀 교차 테스트를 진행하세요. 같은 기기에서 네트워크를 바꾸고, 같은 네트워크에서 기기를 바꾸고, 같은 클라이언트에서 노드를 바꿉니다. 매번 나머지 조건은 그대로 유지하세요. 다른 네트워크에서 작동한다면 기존 연결 경로를 더 확인할 필요가 있지만, 곧바로 통신사 제한이라고 단정할 수는 없습니다. 기기별 차이, DNS, 트래픽 처리 설정도 네트워크를 바꾸면서 달라질 수 있습니다.

  1. 같은 노드가 두 네트워크에서 모두 실패하지만 다른 노드는 작동함: 발생 시각, 노드 별칭, 오류 내용을 정리해 서비스 제공자에게 연결 주소와 서버 상태 확인을 요청하세요.
  2. 같은 네트워크에서 특정 기기만 실패함: 해당 기기의 수신 포트, 라우팅, 시스템 프록시, TUN 권한, 보안 프로그램 기록을 다시 확인하세요.
  3. 특정 웹사이트 하나만 실패함: 웹사이트 자체의 상태, 라우팅 결과, 대상 DNS 조회, 서버의 접속 결과를 확인하세요. 클라이언트 설정 전체를 먼저 다시 만들지 마세요.
  4. 문제 해결 후: 임시 로그 수준을 원래대로 돌리고 테스트용 규칙을 삭제한 다음, 평소 라우팅과 트래픽 처리 방식을 하나씩 복구해 문제가 재발하지 않는지 확인하세요.

결론: ‘접속 안 됨’ 대신 실패한 단계를 구체적으로 기록

유용한 기록에는 발생 시각, 클라이언트와 코어 버전, 트래픽 처리 모드, 테스트 대상, 오류 원문, 교차 테스트 결과가 포함되어야 합니다. 요청이 로컬 연결 지점, 원격 핸드셰이크, 대상 접속 중 어디에서 멈췄는지 기록하면 지연 시간을 반복해서 새로 고치거나 설정을 무작정 바꾸는 것보다 원인을 찾기 쉽습니다.

v2rayN 다운로드