구독 업데이트 실패 원인과 v2rayN·v2rayNG 자동 업데이트 설정

구독 링크 만료, 프록시를 통한 업데이트, 인증서·형식 오류 등 실패 원인과 두 클라이언트의 자동 업데이트 설정을 안내합니다.

이 글의 핵심 내용

구독 업데이트 시간 초과, 가져온 뒤 노드가 표시되지 않는 문제, 수동 업데이트는 되지만 예약 업데이트가 실행되지 않는 상황에 적용할 수 있습니다. 먼저 링크, 네트워크, 콘텐츠 형식 중 어디에서 문제가 생겼는지 구분한 다음 데스크톱과 Android에서 각각 새로고침 작업을 설정하세요. 문제를 확인할 때는 기존 그룹을 유지하고 한 번에 한 가지 조건만 바꾸세요. 수동 업데이트가 성공한 뒤 자동 업데이트를 켜는 것이 좋습니다.

구독 업데이트 과정: 실패 지점부터 찾기

구독은 클라이언트에서 노드 목록을 관리하는 기능이며 V2Ray 또는 Xray 커널 JSON의 최상위 필드가 아닙니다. 업데이트할 때 클라이언트가 구독 주소에 접속해 응답을 받은 다음, 그 안의 노드를 로컬 설정으로 변환합니다. routing을 수정해도 만료된 구독 토큰은 복구되지 않으며, 커널을 바꿔도 로그인 페이지가 유효한 구독으로 바뀌지는 않습니다.

구독 주소 읽기 네트워크 연결 응답 받기 노드 형식 파싱 구독 그룹에 저장

‘업데이트 실패’와 ‘노드를 사용할 수 없음’은 서로 다른 문제입니다. 전자는 목록을 가져오거나 파싱하는 단계에서 발생하고, 후자는 노드를 가져온 뒤 실제 프록시 연결을 시도할 때 발생합니다. 기존 노드는 사용할 수 있지만 업데이트에 실패한다면 구독 주소와 업데이트 경로부터 확인하세요. 업데이트는 성공했는데 웹페이지가 열리지 않는다면 노드 설정, 로컬 프록시, 라우팅을 따로 점검해야 합니다.

링크 만료와 상태 코드: 구독 주소가 유효한지 먼저 확인

서비스 제공업체 계정 페이지에서 ‘구독 주소’를 다시 복사하세요. 계정 홈, 노드 상세 페이지, QR 코드 이미지 주소를 복사하면 안 됩니다. 링크의 쿼리 매개변수에는 보통 인증 토큰이 포함되므로 문자가 하나 빠지거나 줄바꿈이 섞이거나 이미 재설정된 토큰을 사용하면 업데이트가 실패할 수 있습니다. 요금제 만료로 구독이 비활성화되는지는 서버 정책에 따라 다르므로 상태 코드 하나만으로 단정하지 마세요.

401
인증 정보 누락 또는 무효
403
서버에서 접근 거부
429
요청이 너무 많음

위 숫자는 HTTP 상태 코드이지 클라이언트 오류 번호가 아닙니다. 403은 접근 정책이나 보안 차단 페이지에서 반환될 수도 있고, 404는 이전 경로가 폐기됐다는 뜻일 수 있습니다. 200도 콘텐츠가 올바르다는 보장은 없습니다. 로그인 페이지도 성공 상태 코드로 반환될 수 있습니다.

  1. 기존 그룹에서 링크의 앞뒤를 확인하고, 복사 과정에서 들어간 공백과 줄바꿈을 제거하세요. 토큰 매개변수를 직접 삭제하거나 수정하지 마세요.
  2. 서비스 제공업체 계정 페이지에서 유효 기간과 구독 초기화 여부를 확인하세요. 필요하면 주소를 다시 복사해 기존 주소를 덮어쓰세요.
  3. 429 응답을 받으면 업데이트 버튼을 연속해서 누르지 마세요. 응답에 Retry-After가 있으면 안내된 시간만큼 기다리세요.
  4. 도움을 요청할 때는 발생 시각, 상태 코드, 클라이언트 버전, 민감 정보를 가린 로그만 제공하고 전체 구독 링크는 공개하지 마세요.

요약: 인증 오류가 나면 네트워크보다 링크부터 바꾸세요

같은 인증 오류가 계속 발생하면 계정과 토큰부터 확인하세요. 주소가 유효한 것을 확인한 뒤에야 직접 연결과 프록시 연결을 비교하는 테스트가 의미가 있습니다.

프록시를 통한 업데이트: 사용할 수 없는 노드가 구독을 막지 않도록 하기

‘프록시를 통한 구독 업데이트’는 구독 콘텐츠를 가져올 네트워크 경로를 지정하는 기능이지, 모든 앱을 전역 프록시로 바꾸는 기능이 아닙니다. v2rayN의 ‘프록시를 사용하지 않고 구독 업데이트’와 ‘프록시를 사용해 구독 업데이트’를 비교해 보세요. 같은 그룹과 같은 주소를 사용해 두 경로를 차례로 테스트하고 결과를 기록합니다.

테스트 결과우선 확인할 사항다음 단계
직접 연결 성공, 프록시 연결 실패현재 프록시 경로를 사용할 수 없음일단 직접 연결로 업데이트한 뒤 선택된 노드를 점검하세요
직접 연결 실패, 프록시 연결 성공현재 네트워크에서 구독 서버에 직접 접속할 수 없음사용 가능한 노드를 유지한 채 프록시 업데이트를 설정하세요
두 경로 모두 401 응답링크 인증 정보를 확인해야 함유효한 구독 주소를 다시 발급받으세요
두 경로 모두 시간 초과구독 서버 또는 네트워크 연결 문제다른 네트워크에서 다시 테스트하고 서버 상태를 확인하세요

프록시를 거쳐야만 업데이트할 수 있는데 현재 그룹의 노드가 모두 작동하지 않으면 순환 의존이 생깁니다. 이때는 직접 연결로 업데이트를 시도하거나, 이미 작동이 확인된 다른 노드로 새 목록을 가져오세요. 작동하지 않는 노드를 계속 재시작해도 이 문제는 해결되지 않습니다.

인증서·시간 초과·형식 오류: 로그에 따라 진단

업데이트 한 건에 해당하는 로그를 확인하세요. 업데이트 시각을 먼저 기록한 다음 관련 오류 행을 살펴보면 노드 속도 테스트나 웹페이지 접속 오류와 혼동하지 않을 수 있습니다. 아래는 자주 보이는 하위 오류 메시지입니다. 시스템과 버전에 따라 추가 정보가 표시될 수 있습니다.

오류: certificate has expired

원인: 서버 인증서가 만료됐거나 기기의 시간이 잘못되어 유효 기간을 판단하는 과정에서 오류가 발생했을 수 있습니다. 해결: 먼저 날짜, 시간, 시간대를 맞추세요. 시간이 정확하다면 서비스 제공업체에 인증서 문제를 문의하세요. 인증서 검증을 끄는 방법을 장기적인 해결책으로 사용하지 마세요.

오류: Connection refused

원인: 대상 포트에서 연결을 받지 않거나 로컬 프록시가 실행되지 않았을 수 있습니다. 해결: 오류에 표시된 대상 주소를 확인해 로컬 프록시 포트와 원격 구독 서버를 구분한 다음 해당 서비스를 점검하세요.

오류: timeout

원인: 제한 시간 내에 요청이 완료되지 않았으며, 주소 확인·연결·응답 읽기 단계에서 지연됐을 수 있습니다. 해결: 직접 연결과 프록시 연결을 비교하고 다른 네트워크에서도 테스트하세요. 응답이 실제로 느릴 때만 시간 초과 값을 적절히 늘리고, 잘못된 주소를 긴 대기 시간으로 감추지 마세요.

오류: Illegal base64 character

원인: 디코더가 예상한 인코딩 형식과 다른 콘텐츠를 받았습니다. 오류 페이지이거나 구독 형식이 맞지 않을 때 자주 발생합니다. 해결: 응답 본문과 클라이언트에서 지원하는 형식을 확인하세요. 잘못된 콘텐츠를 계속 디코딩하려고 하지 마세요.

구독 응답은 노드 공유 링크를 나열한 텍스트일 수도 있고 Base64로 인코딩된 형식일 수도 있습니다. 브라우저에서 무작위 문자열처럼 보이는 텍스트가 내려받아져도 반드시 손상된 것은 아닙니다. 반면 <html>, 로그인 양식, 접근 확인 안내가 표시된다면 서버의 인증이나 접근 제한 문제를 해결해야 합니다. 브라우저에는 로그인 쿠키가 있지만 클라이언트에는 없는 경우가 많으므로, ‘브라우저에서 열림’만으로 클라이언트 구독이 가능하다고 판단할 수 없습니다.

v2rayN 구독 자동 업데이트: 그룹별 업데이트 간격 설정

v2rayN 데스크톱에서 수동 업데이트를 한 번 성공시킨 다음 예약 작업을 설정하세요. 일반적인 메뉴 경로는 메인 창의 ‘구독 그룹’ → ‘구독 그룹 설정’입니다. 대상 그룹의 편집 창에서 ‘자동 업데이트 간격’을 지정하세요. 버전에 따라 버튼 위치와 입력 단위가 다를 수 있으므로 현재 창에 표시된 단위를 기준으로 설정해야 합니다.

  1. 대상 그룹 확인

    ‘구독 그룹’ → ‘구독 그룹 설정’을 열어 업데이트할 그룹을 편집하고 구독 주소와 활성화 상태를 확인하세요. 문제를 해결하는 동안 사용 가능한 설정을 잃지 않도록 기존 노드를 그대로 두세요.

  2. 수동 업데이트 테스트

    저장한 뒤 ‘구독 그룹’으로 돌아가 ‘프록시를 사용하지 않고 구독 업데이트’를 실행하세요. 구독 서버에 프록시가 필요하다면 사용 가능한 노드를 선택하고 ‘프록시를 사용해 구독 업데이트’도 테스트하세요. 로그에 성공으로 표시되고 노드 목록이 예상대로 바뀌는지 확인합니다.

  3. 업데이트 간격 입력

    그룹 편집 창으로 돌아가 자동 업데이트 간격을 설정하세요. 우선 6시간으로 설정하는 것을 권장합니다. 단위가 ‘분’이면 360, ‘시간’이면 6을 입력하세요. 버전이 다른 화면의 숫자를 그대로 옮겨 적지 마세요.

  4. 저장 후 확인

    설정을 저장하고 프로그램을 실행한 상태로 둔 뒤 예약 시각이 지난 후 로그를 확인하세요. 업데이트 경로 옵션이 있다면 앞 단계에서 성공한 경로를 선택하세요. 한 번 수동으로 프록시 업데이트를 선택해도 백그라운드 작업의 경로가 바뀌는 것은 아닙니다.

자동 업데이트는 시스템에서 상시 실행되는 다운로드 서비스가 아닙니다. 프로그램을 종료하거나 컴퓨터를 끄거나 절전 모드로 전환하면 예약된 구독 요청이 실행되지 않습니다. 복귀 후 누락된 작업을 실행할지는 버전 구현에 따라 다르므로 트레이 아이콘만 보고 완료 여부를 판단하지 말고 로그의 실제 업데이트 시각을 확인하세요.

v2rayNG 구독 자동 업데이트: 설정과 백그라운드 권한 함께 확인

Android에서는 사이드 메뉴의 ‘구독 그룹 설정’에서 주소를 확인한 뒤 메인 화면 오른쪽 상단 메뉴에서 ‘구독 업데이트’를 실행하세요. 예약 업데이트 지원 여부와 간격 편집 가능 여부는 설치된 버전에 따라 다릅니다. ‘시작할 때 업데이트’를 지속적으로 실행되는 예약 작업으로 간주하면 안 됩니다.

  1. 수동 업데이트 확인

    ‘구독 그룹 설정’에서 유효한 주소를 저장하세요. 메인 화면으로 돌아가 오른쪽 상단 메뉴 → ‘구독 업데이트’를 선택합니다. 백그라운드 설정을 진행하기 전에 업데이트가 한 번 이상 성공했는지 확인하세요.

  2. 자동 업데이트 사용 설정

    사이드 메뉴 → ‘설정’에서 ‘구독 자동 업데이트’를 찾아 켜세요. 현재 버전에 업데이트 간격 항목이 있다면 우선 6시간으로 설정할 수 있습니다. 단위가 분이면 360을 입력하세요. 간격 항목이 없다면 앱에서 제공하는 예약 방식을 사용하고, 숨겨진 설정이 있다고 가정하지 마세요.

  3. 백그라운드 실행 허용

    앱 아이콘을 길게 누른 뒤 ‘앱 정보’ → ‘배터리’에서 백그라운드 활동을 허용하세요. 일부 기기에서는 ‘제한 없음’으로 표시됩니다. ‘모바일 데이터 및 Wi-Fi’ 또는 ‘데이터 사용량’에서 백그라운드 데이터 권한도 확인하세요. 메뉴 이름은 시스템에 따라 다릅니다.

  4. 화면 잠금 후 결과 확인

    수동 업데이트 시각을 기록하고 화면을 잠근 뒤 설정한 주기만큼 기다린 다음 업데이트 로그나 기록된 시각을 확인하세요. 버전에 시각 표시가 없다면 로그와 노드 콘텐츠의 변화를 함께 살펴보세요. 노드 수가 그대로라는 이유만으로 실패로 판단하지 마세요.

v2rayNG는 Xray 커널을 사용하지만 구독 가져오기와 백그라운드 예약은 클라이언트가 처리합니다. 예약 작업 문제를 해결하려고 커널의 policy를 수정하거나 존재하지 않는 subscription 필드를 추가하지 마세요. 이런 변경은 앱 설정을 대신할 수 없습니다.

업데이트 후 확인: 목록 업데이트 성공이 연결 성공을 뜻하지는 않음

구독을 업데이트하면 일반적으로 그룹 콘텐츠가 다시 구성됩니다. 노드 이름, 순서, 개수가 바뀔 수 있으며 서비스 제공업체에서 내린 기존 노드가 사라질 수도 있습니다. 직접 관리하는 노드가 있다면 미리 내보내거나 별도 그룹에 보관해 구독 항목과 섞이지 않게 하세요.

요약: 한 번 안정적으로 업데이트한 뒤 주기를 설정하세요

유효한 링크, 작동하는 업데이트 경로, 성공 로그를 자동 새로고침의 전제 조건으로 삼으세요. 일반적으로 노드 목록을 매분 요청할 필요는 없습니다. 6시간 간격부터 시작해 서비스 제공업체의 정책에 맞춰 조정하고, 잦은 실패로 요청 제한에 걸리지 않도록 하세요.

문제 해결 기록은 클라이언트 버전, 발생 시각, 직접 연결 또는 프록시 사용 여부, 전체 오류 메시지 네 가지만 남기면 충분합니다. 외부에 공유하기 전 구독 토큰과 계정 정보는 제거하세요. 이렇게 하면 로컬 백그라운드 제한과 서버 문제를 구분하고, 업그레이드하거나 네트워크를 바꾼 뒤에도 쉽게 다시 테스트할 수 있습니다.

v2rayN 다운로드