V2Ray 노드 연결 시간 초과 해결: 로컬 네트워크부터 서버 설정까지 점검 순서

모든 노드 또는 특정 노드가 시간 초과로 연결되지 않을 때 로컬 네트워크, 클라이언트 모드, 노드 설정, 전송 계층, 서버 상태 순으로 확인하세요. 단계별 점검 방법을 안내합니다.

이 글 빠르게 살펴보기

v2rayN 연결 테스트가 시간 초과되거나 프록시를 켠 뒤 웹페이지가 열리지 않을 때, 노드를 바꿔도 연결되지 않을 때 참고하세요. 먼저 직접 연결과 프록시 지정 요청을 각각 테스트해 로컬 네트워크와 클라이언트를 구분합니다. 이후 노드 설정, 전송 구성, 서버의 수신 대기 상태를 확인하세요. 한 번에 한 항목만 변경하고 해당 로그를 보관하면 포트 충돌, DNS 오류, 원격 서버 연결 실패를 혼동하지 않을 수 있습니다.

먼저 구분하기: 연결 테스트 시간 초과인가, 실제 요청 실패인가

‘노드 시간 초과’만으로는 원인을 진단할 수 없습니다. TCP 연결 테스트는 원격 포트에 연결할 수 있는지만 확인합니다. 실제 연결 지연 시간 테스트에는 프록시 프로토콜, 테스트 주소, 요청 시간 제한 설정도 영향을 줍니다. 목록에 시간 초과가 표시되어도 모든 웹사이트에 접속할 수 없는 것은 아니며, 지연 시간이 표시되어도 인증서, 라우팅, 모든 앱이 정상이라는 뜻은 아닙니다.

노드 하나를 선택해 활성 설정으로 지정한 다음, 고정된 HTTPS 주소를 여세요. 노드, 라우팅 모드, DNS를 동시에 바꾸지 마세요. 문제가 발생한 시각을 분 단위로 기록하고 같은 시점의 코어 로그를 확인하세요. 노드 목록만 캡처하면 연결이 어느 단계에서 멈췄는지 파악하기 어렵습니다.

로컬 네트워크 로컬 수신 대기 규칙 적용 노드 연결 대상 응답

1단계: 프록시를 끄고 로컬 네트워크와 DNS 확인

v2rayN 트레이 메뉴의 ‘시스템 프록시’에서 ‘시스템 프록시 해제’를 선택하고 TUN 모드도 끄세요. 네트워크를 가로채는 다른 도구도 잠시 종료해 트래픽이 가상 네트워크 어댑터를 계속 통과하지 않도록 합니다. 평소 직접 연결되는 사이트에 접속해 보세요. 이때도 열리지 않는다면 Wi-Fi 로그인, 게이트웨이 또는 통신사 연결부터 확인하세요.

  1. 직접 연결로 복원

    시스템 프록시를 해제하고 TUN을 끈 뒤 브라우저를 다시 여세요. 브라우저에 별도 프록시가 설정되어 있다면 시스템 설정을 사용하도록 되돌려야 합니다. 클라이언트 창만 닫아서는 충분하지 않습니다.

  2. 주소 확인

    Windows 터미널에서 ipconfig를 실행해 현재 네트워크 어댑터의 IPv4 주소와 기본 게이트웨이를 확인하세요. 사용 가능한 게이트웨이 없이 169.254.x.x 주소가 표시되면 네트워크를 다시 연결하거나 DHCP를 점검하세요.

  3. 이름 확인

    아래 DNS 명령을 실행하세요. 먼저 일반 도메인이 확인되는지 살펴본 다음, 노드에서 실제 사용하는 도메인에도 같은 검사를 수행하세요. 노드 주소가 IP라면 이 단계로는 노드 주소의 DNS 확인 여부를 검사할 수 없습니다.

  4. 네트워크 변경

    모바일 핫스팟으로 같은 노드를 한 번 더 테스트하세요. 기존 네트워크에서만 실패한다면 클라이언트를 재설치하기보다 현재 네트워크의 DNS, 외부 연결 정책, 라우팅부터 확인하세요.

ipconfig
nslookup example.com

example.com은 명령 형식을 보여 주기 위한 예시일 뿐, 노드 서버 주소가 아닙니다. DNS 확인에 성공했다는 것은 IP 주소를 찾았다는 뜻이지, 해당 주소의 서비스에 연결할 수 있다는 뜻은 아닙니다. ping에 응답이 없다고 노드가 오프라인이라고 단정하지 마세요. 원격 서버에서 ICMP를 차단해도 TCP 서비스는 정상일 수 있습니다.

2단계: 코어, 로컬 포트, 시스템 프록시 확인

기본 네트워크 연결을 복구한 뒤 클라이언트를 실행하고 노드를 선택하세요. v2rayN에서 ‘설정’ → ‘매개변수 설정’을 열어 로컬 수신 대기 설정과 현재 사용하는 코어를 확인합니다. 데스크톱 버전에 따라 하위 페이지 이름이 다를 수 있으므로 실제 항목을 기준으로 살펴보세요. 먼저 로그에 설정 로드 오류가 없는지 확인한 다음 시스템 프록시를 점검하세요. 일반 프록시 모드의 문제를 TUN으로 덮으려 하지 마세요.

아래 예시는 로컬 SOCKS 주소 127.0.0.1:10808을 사용합니다. 실제 포트는 현재 설정을 기준으로 확인해야 합니다. 설정에 따라 혼합 포트를 사용하거나 HTTP 포트를 따로 지정할 수 있으며, 오래된 설정에는 10809가 사용되기도 합니다. 포트 번호만 보고 프로토콜을 판단할 수는 없습니다. SOCKS 포트를 HTTP 프록시로 잘못 입력하지 않도록 주의하세요.

netstat -ano | findstr :10808
curl.exe --noproxy "" --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/

결론: 프록시 지정 요청이 성공하면 트래픽 처리 설정 확인

이 명령에는 응답이 오는데 브라우저는 여전히 실패한다면 노드 설정은 그대로 두세요. ‘시스템 프록시’ → ‘시스템 프록시 자동 설정’을 켠 다음 브라우저 확장 프로그램과 시스템 프록시 예외를 확인하세요. 프록시 지정 요청도 실패한다면 로그와 원격 연결을 계속 점검하고 시스템 프록시를 반복해서 켰다 끄지 마세요.

3단계: 노드 설정 확인, 임의로 필드 추가하지 않기

문제가 발생한 노드의 편집 창을 열고 서버에서 받은 원본 설정과 항목별로 대조하세요. VMess와 VLESS는 서로 다른 프로토콜이며 프로토콜 이름만 바꿔 서로 전환할 수 없습니다. 구독은 설정을 배포하는 방식일 뿐입니다. 구독 업데이트에 성공해도 노드가 작동하거나 계정이 유효하거나 원격 서버가 정상이라는 보장은 없습니다.

확인 항목구체적인 점검 내용자주 하는 실수
서버와 포트도메인 또는 IP 주소와 원격 수신 포트를 원본과 대조로컬 포트 10808을 서버 포트로 착각하거나 모든 원격 포트를 443으로 변경
프로토콜과 인증 정보VMess / VLESS, 사용자 식별 정보, 서버에서 요구하는 관련 필드 확인복사 과정에서 문자가 누락되거나 다른 노드의 인증 정보와 주소를 혼용
전송 방식TCP, WebSocket, gRPC 등 실제 설정 확인전송 방식은 표시 이름일 뿐이라 생각해 임의로 변경
보안 설정TLS 또는 REALITY와 해당 서버 이름 및 전용 필드 확인REALITY를 일반 TLS로 취급해 도메인만 입력하고 저장
라우팅과 아웃바운드테스트 대상이 직접 연결 또는 차단 규칙이 아닌 예상한 아웃바운드를 사용하는지 확인활성 노드를 올바르게 선택했으니 모든 요청이 해당 노드를 거칠 것이라고 단정

구독을 방금 업데이트했다면 현재 선택한 항목이 업데이트된 설정인지 먼저 확인하세요. 이름이 같은 항목이 여러 개면 이전 설정을 선택하기 쉽습니다. 원본 설정은 보존하고 테스트 항목에 알아보기 쉬운 메모를 추가할 수 있습니다. 전체 공유 링크, 사용자 식별 정보, 구독 주소를 공개 게시판에 올리지 마세요. 문제를 제보할 때는 프로토콜, 전송 방식, 오류 메시지, 개인정보를 가린 주소만 포함하세요.

4단계: 로그에서 TLS 및 전송 계층 오류 찾기

클라이언트 로그에서 이번 요청의 시각을 찾은 뒤 도메인 확인, TCP 연결, TLS 핸드셰이크, 전송 연결 중 어느 단계에서 오류가 났는지 살펴보세요. 아래는 흔히 볼 수 있는 오류 예시입니다. 코어에 따라 앞뒤 로그는 달라질 수 있습니다. context deadline exceeded만으로는 시간 초과가 발생했다는 것만 알 수 있으므로, 직전에 어떤 작업을 수행했는지도 확인해야 합니다.

오류: dial tcp: lookup

원인: 노드 도메인을 확인하지 못했을 때 흔히 나타납니다. 전체 로그에는 보통 도메인과 DNS 오류도 표시됩니다.

해결: 먼저 nslookup으로 같은 도메인을 확인한 다음 클라이언트 DNS와 현재 네트워크를 점검하세요. 수정한 뒤 한 번 더 요청하고 새 로그를 살펴보세요.

오류: connect: connection refused

원인: 연결이 명시적으로 거부되었습니다. 대상 포트에서 수신 대기 중인 서비스가 없거나 방화벽이 연결을 거부했을 수 있으며, 로컬 프록시가 아예 실행되지 않았을 수도 있습니다.

해결: 오류에 표시된 주소가 127.0.0.1인지 원격 주소인지 먼저 확인하세요. 로컬 주소라면 수신 대기 상태를 확인하고, 원격 주소라면 관리자가 서비스와 방화벽을 점검해야 합니다.

오류: i/o timeout

원인: 네트워크 읽기 또는 쓰기 단계에서 제한 시간을 초과했습니다. 패킷 손실, 응답 없이 차단되는 연결, 원격 서버의 응답 지연 등이 원인일 수 있습니다.

해결: 앞뒤 로그를 확인해 시간 초과가 발생한 단계를 찾고 다른 네트워크에서도 비교하세요. 이 한 줄만 보고 비밀번호 오류나 서버 중단으로 단정하지 마세요.

오류: x509: certificate has expired or is not yet valid

원인: 로컬 기기의 시간이 맞지 않거나 서버 인증서의 유효 기간이 실제로 지났을 수 있습니다.

해결: 먼저 Windows의 ‘설정’ → ‘시간 및 언어’ → ‘날짜 및 시간’에서 시간을 맞춘 뒤 관리자에게 인증서 유효 기간을 확인해 달라고 요청하세요.

오류: websocket: bad handshake

원인: WebSocket 업그레이드 응답이 예상과 다릅니다. 경로, Host, 리버스 프록시 전달 설정 또는 대상 서비스가 맞지 않을 때 흔히 발생합니다.

해결: 서버 설정과 대조해 WebSocket 경로와 Host를 확인하고, 리버스 프록시가 해당 경로를 올바른 백엔드로 전달하는지 점검하세요.

TLS의 SNI는 핸드셰이크에 사용하는 서버 이름이고, WebSocket의 Host는 HTTP 요청 필드입니다. 용도가 서로 다릅니다. 서버 주소, SNI, Host는 배포 방식에 따라 같을 수도 다를 수도 있으므로 주소창의 값으로 일괄 변경하지 마세요. gRPC에서는 serviceName과 중간 프록시의 HTTP/2 지원 여부도 확인해야 합니다. 경로와 이름의 대소문자도 일치시켜야 합니다.

5단계: 서버 수신 대기와 외부 방화벽 확인

로컬 환경과 설정을 모두 확인한 뒤 권한이 있는 관리자에게 서버 점검을 요청하세요. 일반 구독 사용자가 서버 로그인 정보를 찾을 필요는 없습니다. 장애 시각, 사용한 네트워크, 노드 메모, 개인정보를 가린 로그를 서비스 제공자에게 전달하면 됩니다. 아래 명령은 Linux 서버용이며 필요한 권한이 있는 환경에서 실행해야 합니다.

sudo ss -lntp
sudo systemctl status xray --no-pager
sudo journalctl -u xray --since "20 minutes ago" --no-pager

예시에서는 서비스 유닛 이름을 xray로 가정합니다. 실제 배포에서 같은 이름을 사용하는 경우에만 그대로 실행하세요. V2Ray 또는 사용자 지정 서비스 유닛을 사용하는 환경이라면 실제 이름으로 바꿔야 합니다. 서비스가 실행 중이라고 대상 포트도 열려 있다는 뜻은 아닙니다. ss 출력에서 수신 주소, 포트, 해당 프로세스를 모두 확인하세요.

결론: 같은 노드를 여러 네트워크에서 비교

같은 노드가 핫스팟에서는 작동하고 기존 네트워크에서는 실패한다면 서버 설정은 유지하고 기존 네트워크 경로를 점검하세요. 여러 네트워크에서 모두 실패하고 서버에서 진입 포트가 수신 대기 중이지 않다면 원격 서비스를 우선 복구해야 합니다. 포트 연결은 되지만 프록시 요청이 실패한다면 프로토콜, 인증, 전송 계층 로그를 다시 확인하세요.

노드 시간 초과 FAQ 및 재테스트 기록

모든 노드가 시간 초과되면 v2rayN을 먼저 재설치해야 하나요?

아니요. 먼저 직접 연결, 코어 로그, 로컬 수신 대기, 프록시 지정 요청을 차례대로 확인하세요. 같은 제공처의 모든 노드가 실패하지만 다른 정상 설정은 작동한다면 해당 제공처에 서버 상태를 문의하세요. 재설치로 원격 서버 중단이나 잘못된 구독 설정을 해결할 수는 없습니다.

TCP 테스트에 지연 시간이 표시되는데 웹페이지는 왜 열리지 않나요?

TCP 연결 성공만으로 이후 인증, TLS, 애플리케이션 요청까지 성공한 것은 아닙니다. 앞서 안내한 curl.exe 명령으로 전체 요청을 테스트하고 같은 시점의 로그를 확인하세요. 전체 요청은 성공하는데 브라우저만 실패한다면 원격 포트를 변경하지 말고 시스템 프록시, 브라우저 설정, 라우팅만 점검하세요.

TUN을 켠 뒤에만 인터넷이 끊기면 어떻게 복구하나요?

먼저 TUN을 끄고 시스템 프록시를 해제한 뒤 직접 연결이 복구되는지 확인하세요. 그런 다음 일반 시스템 프록시로 노드를 테스트합니다. 성공하면 TUN을 따로 켜고 권한, 가상 네트워크 어댑터, DNS, 라우팅 처리 여부를 확인하세요. 네트워크를 가로채는 도구를 여러 개 동시에 실행하지 마세요.

같은 노드가 Android에서는 되는데 데스크톱에서는 시간 초과되는 이유는 무엇인가요?

먼저 두 기기를 같은 네트워크에 연결하고 서버, 포트, 전송 항목이 동일한지 확인하세요. v2rayNG는 Xray 코어를, v2flyNG는 v2fly 코어를 사용합니다. 코어마다 특정 설정 지원이 완전히 같지는 않습니다. 데스크톱에서는 실제로 선택된 코어, 로컬 포트, 시스템 시간도 확인해야 합니다.

문제를 해결한 뒤 같은 대상으로 연속 3회 요청해 응답 여부를 기록하고 일상적인 라우팅과 앱 설정을 복원하세요. 한 번 성공했다고 간헐적 장애가 없다고 볼 수 없으며, 시간 제한을 늘리는 것만으로 지속적인 실패를 해결할 수도 없습니다. 테스트 기록에는 네트워크 종류, 활성 노드, 코어 종류, 실패 단계, 변경 사항을 남기고 인증 정보는 기록하지 마세요.

v2rayN 다운로드