‘업데이트 실패’, ‘사용 가능한 서버 없음’이 표시되거나 업데이트 후 그룹이 비어 있는 v2rayN 사용자에게 적합한 안내입니다. 기존 설정을 보존한 뒤 링크, 요청 경로, 응답 내용, 파싱 결과 순으로 확인하세요. 마지막에는 그룹 하나만 업데이트해 복구 여부를 확인하고, 프록시·구독·코어 설정을 한꺼번에 바꿔 원인을 놓치지 않도록 합니다.
먼저 확인할 점: 요청 실패인가, 파싱 결과가 비어 있는가
구독 업데이트는 노드 연결 테스트와 다릅니다. 클라이언트가 먼저 구독 주소에 요청을 보내 텍스트를 받은 다음, 이를 서버 항목으로 파싱해 그룹에 저장합니다. 구독 주소에 접속할 수 있어도 노드를 사용할 수 있다는 뜻은 아니며, 노드 연결이 되더라도 구독 API가 만료되지 않았다는 보장은 없습니다. 어느 단계에서 실패했는지 먼저 파악해야 다운로드 문제를 프로토콜 문제로 오인하지 않습니다.
- 연결 시간 초과 또는 DNS 이름 확인 실패: 요청에서 아직 정상적으로 응답을 받지 못한 상태입니다. 네트워크, DNS, 업데이트 경로를 먼저 확인하세요.
- HTTP 오류 상태가 표시됨: 서버가 응답한 상태입니다. 인증 정보, 주소 유효 기간, 서버 측 제한을 먼저 확인하세요.
- 요청은 완료됐지만 추가된 항목이 없음: 응답 내용, 구독 형식, 그룹 필터를 확인하세요. 코어부터 바꾸지는 마세요.
먼저 메인 화면의 로그나 정보 출력 영역을 열어 업데이트 시각, 오류 메시지 원문, 대상 그룹을 기록하세요. 데스크톱 버전에 따라 패널 위치와 메뉴 이름이 다를 수 있습니다. 아래는 중국어 UI에서 흔히 쓰는 메뉴 기준이므로, ‘구독 그룹 설정’과 ‘프록시를 통해 업데이트’에 해당하는 기능을 찾아 진행하세요.
1차 점검: 설정을 보존하고 구독 주소 확인
그룹 전체를 먼저 삭제하지 마세요. 업데이트에 실패해도 기존 항목이 유지되는 경우가 있지만, 교체 방식에 따라 목록이 비워질 수도 있습니다. 기존에 사용할 수 있는 노드는 프록시를 통한 업데이트에 필요합니다. 백업 파일과 내보낸 공유 링크에는 민감한 연결 정보가 포함되므로 신뢰할 수 있는 로컬 위치에만 보관하세요.
-
기존 설정 보존
메인 화면에서 아직 사용할 수 있는 서버를 선택하고 마우스 오른쪽 버튼 메뉴의 공유 링크 내보내기로 사본을 보관하세요. 설정 디렉터리 전체를 백업해야 한다면 클라이언트를 종료한 뒤 현재 인스턴스가 실제로 사용하는 데이터 디렉터리를 복사하세요. 프로그램 파일만 복사해서는 안 됩니다.
-
그룹 확인
‘구독 그룹’ → ‘구독 그룹 설정’으로 이동해 문제가 있는 그룹을 선택하세요. URL이 현재 계정에 해당하는지 확인하고 업데이트 사용 옵션도 점검합니다. 이름이 비슷한 그룹이 여러 개라면 메모와 주소를 먼저 대조해 다른 그룹을 잘못 업데이트하지 않도록 하세요.
-
링크 다시 복사
서비스 제공업체의 구독 페이지에서 v2rayN용 주소를 다시 복사해 기존 URL을 바꾸세요. 주소가
https://로 시작하는지, 공백·줄바꿈·한글 따옴표가 섞이지 않았는지, 쿼리 매개변수가 모두 유지됐는지 확인하세요. -
그룹 하나만 다시 테스트
저장한 뒤 해당 그룹만 업데이트하고 로그와 항목 수를 기록하세요. 모든 그룹을 다시 만들거나 노드를 한꺼번에 수정하지 마세요. 어떤 작업으로 변화가 생겼는지 파악하기 어려워집니다.
2차 점검: 직접 연결 업데이트와 프록시 업데이트 구분
브라우저에서 구독 주소가 열려도 브라우저가 사용하는 네트워크 경로가 작동한다는 것만 확인할 수 있습니다. 브라우저는 시스템 프록시를 따를 수 있지만, 클라이언트의 ‘프록시를 사용하지 않고 구독 업데이트’는 다른 경로를 사용할 수 있습니다. 시스템 프록시 스위치만 바꿔서는 구독 다운로드에도 프록시가 적용된다고 보장할 수 없습니다. 구독 메뉴에서 원하는 업데이트 방식을 직접 선택하세요.
- 먼저 직접 연결을 시도하세요: ‘구독 그룹’에서 이름에 ‘프록시 사용 안 함’이 포함된 업데이트 항목을 선택하세요. 직접 연결로 노드를 정상적으로 가져왔다면 이 방식을 유지하면 됩니다. 구독 다운로드를 위해 라우팅을 따로 변경할 필요는 없습니다.
- 직접 연결에 실패하면 프록시를 시도하세요: 사용 가능한 기존 노드를 선택해 활성 서버로 설정하고 코어가 정상적으로 시작됐는지 확인한 다음, 이름에 ‘프록시 사용’이 포함된 구독 업데이트 항목을 선택하세요.
- 프록시로도 실패하는 경우: 먼저 활성 노드를 사용해 접속 가능한 HTTPS 페이지를 열어 보세요. 일반 접속도 실패하면 업데이트를 계속 누르기보다 노드 연결부터 해결해야 합니다.
- 사용 가능한 기존 노드가 없는 경우: 신뢰할 수 있는 다른 네트워크에서 구독을 가져오거나 서비스 제공업체에 임시로 사용할 단일 노드 공유 링크를 요청하세요. 목록이 비어 있으면 프록시 업데이트에 필요한 연결을 만들 수 없습니다.
프록시로 업데이트할 때는 ‘설정’ → ‘매개변수 설정’에서 로컬 수신 설정을 확인하고, 실제로 현재 수신 중인 포트를 기준으로 삼으세요. 포트 충돌, 코어 미실행, 클라이언트에 남아 있는 이전 수신 주소 때문에 로컬 연결이 거부될 수 있습니다. 다른 컴퓨터의 포트 값을 그대로 사용하지 말고, 이 컴퓨터의 업데이트 문제를 해결하려고 수신 주소를 모든 네트워크 인터페이스에 공개해서도 안 됩니다.
3차 점검: 상태 코드와 오류 메시지 원문 확인
상태 코드를 보면 단순히 ‘실패’라고 표시되는 것보다 구체적인 원인을 파악할 수 있습니다. 아래 숫자는 HTTP 상태 코드이며 테스트 성공률이 아닙니다. 200은 요청이 성공적으로 응답받았다는 뜻일 뿐, 응답 본문이 실제 구독인지 확인해야 합니다.
The operation has timed out.
원인 및 해결 방법: 제한 시간 안에 요청이 완료되지 않았습니다. 직접 연결이 차단됐거나 프록시를 사용할 수 없을 수 있습니다. 같은 구독 주소를 유지한 채 직접 연결과 사용이 확인된 프록시 경로를 각각 테스트한 뒤 로그를 비교하세요.
Connection refused
원인 및 해결 방법: 대상 주소가 연결을 받아들이지 않았습니다. 오류가 로컬 프록시 포트를 가리키는지 원격 구독 서버를 가리키는지 확인하세요. 로컬 주소라면 코어 프로세스와 수신 포트를, 원격 주소라면 서비스 이용 가능 여부를 먼저 점검하세요.
Response status code does not indicate success: 403 (Forbidden).
원인 및 해결 방법: 서버가 요청을 거부했습니다. 토큰, 계정 상태, 접속 출처 제한, 보안 확인 페이지 등이 원인일 수 있습니다. 구독 주소를 다시 발급받고 제공업체에 제한 사항을 문의하세요. 로그 한 줄만으로 계정이 만료됐다고 단정하지 마세요.
오류 문구는 시스템 언어와 클라이언트 버전에 따라 달라질 수 있으므로 상태 코드와 연결 대상도 함께 확인해야 합니다. 404가 표시되면 경로가 유효한지 확인하세요. 429가 표시되면 연속 업데이트를 멈추고 서버의 재시도 안내를 따르세요. 5xx가 표시되면 발생 시각을 기록해 서비스 제공업체에 문의하세요. 인증서 오류가 발생하면 시스템 날짜와 시간, 인증서 신뢰 체인을 먼저 점검하세요. 인증서 검증을 꺼서 장기간 우회해서는 안 됩니다.
4차 점검: 응답 형식과 Base64 내용 확인
‘요청은 성공했는데 파싱 결과가 비어 있음’의 가장 흔한 원인은 서버가 로그인 페이지, 계정 만료 안내, 보안 확인 페이지를 반환하는 것입니다. 이런 응답도 200 상태 코드를 사용할 수 있습니다. 원문을 확인해야 한다면 신뢰할 수 있는 도구를 로컬에서 사용해 응답 텍스트를 살펴보세요. 브라우저에 보이는 페이지 모양이 클라이언트가 실제로 받은 본문과 같다는 보장은 없으므로, 최종 판단은 클라이언트 요청 결과를 기준으로 해야 합니다.
| 응답 특징 | 가능한 원인 | 다음 단계 |
|---|---|---|
<!DOCTYPE html> 또는 <html로 시작 | 로그인 페이지, 리디렉션 페이지 또는 보안 확인 페이지 | 클라이언트 전용 구독 주소를 다시 복사하고 서버 측 접속 제한을 확인하세요 |
| 본문이 비어 있거나 계정 안내 문구만 있음 | API에서 반환할 노드가 없거나 계정 상태가 요구 조건을 충족하지 않음 | 요금제 유효 기간, 잔여 트래픽, 노드 할당 상태를 확인하세요 |
여러 줄의 vmess://, vless:// 등 링크 | 일반적인 공유 링크 목록 | 로컬에서 완전한 링크 하나를 선택해 가져오기를 테스트하고 단일 링크 문제인지 일괄 파싱 문제인지 구분하세요 |
| 길이가 긴 인코딩 텍스트 | 목록 전체가 Base64로 인코딩된 형식일 수 있음 | 로컬에서 한 번 디코딩해 노드 링크가 나오는지, 웹페이지나 안내 문구가 나오는지 확인하세요 |
proxies: 등의 필드로 구성된 YAML 텍스트 | 일반 공유 링크 목록이 아닌 다른 설정 형식 | 제공업체 페이지에서 v2rayN용으로 명확히 표시된 구독 형식을 선택하세요 |
Base64는 인코딩 방식이지 노드 프로토콜이나 암호화가 아닙니다. 일반적인 구독은 여러 공유 링크로 구성된 텍스트 전체를 인코딩합니다. VMess 공유 링크 자체에도 인코딩된 노드 설정이 포함될 수 있습니다. 따라서 바깥쪽 인코딩을 디코딩했을 때 vmess:// 링크가 나오는 것은 정상입니다. 모든 내용을 계속 디코딩한 뒤 구독 설정에 다시 붙여 넣지 마세요.
- 잘림 여부 확인: 메신저의 줄바꿈, 불완전한 복사, URL의
&처리 오류로 실제 요청 주소가 달라질 수 있습니다. 원본 페이지에서 주소를 직접 다시 복사하세요. - 문자 규칙 구분: 표준 Base64와 URL 안전 변형은 사용하는 문자가 다르며, 끝의 패딩 문자가 생략될 수도 있습니다. 디코딩에 실패하면 먼저 출처를 확인하세요.
+나/를 무작정 삭제하거나 임의의 문자를 덧붙이지 마세요. - 형식 호환성 확인: 클라이언트가 지원하는 구독 형식은 버전에 따라 달라집니다. 임의의 YAML이나 코어 전체 JSON 설정을 일반 구독으로 가져올 수 있다고 생각하면 안 됩니다.
5차 점검: 파싱 실패와 목록 표시 문제 구분
로그에 노드를 가져와 처리했다고 표시되는데 메인 창이 비어 있다면 현재 그룹과 검색 조건부터 확인하세요. 검색어, 그룹 전환, 구독 설정의 필터 조건 때문에 기존 항목이 일시적으로 보이지 않을 수 있습니다. 이 경우 업데이트를 반복해도 해결되지 않습니다.
- 메인 화면의 검색어를 지우고 방금 업데이트한 그룹으로 돌아가 전체 서버 목록을 확인하세요.
- ‘구독 그룹’ → ‘구독 그룹 설정’으로 돌아가 해당 그룹에 필터 조건이 설정돼 있는지 확인하세요. 현재 값을 기록한 뒤 필터를 잠시 해제하고 그룹 하나만 다시 업데이트하세요.
- 일부 링크만 가져오기에 실패한다면 구독 전체가 만료됐다고 판단하기보다 해당 링크의 프로토콜, 전송 매개변수, 필수 입력값을 확인하세요.
- 형식이 올바른데 구버전 클라이언트에서 인식되지 않는다면 백업 후 v2rayN을 업데이트하고 같은 내용으로 다시 테스트하세요. 구독 출처와 클라이언트 버전을 동시에 바꾸지는 마세요.
복구 확인 및 문의에 필요한 기록
복구 여부는 구독이 안정적으로 업데이트되는지, 가져온 노드 중 하나 이상으로 예상한 연결을 만들 수 있는지 두 가지로 나눠 확인하세요. 먼저 대상 그룹에 적절한 수의 항목이 표시되는지 확인한 다음 노드 하나를 선택해 접속을 테스트합니다. 모든 노드를 사용할 수 없다면 구독 URL을 계속 수정하기보다 서버 주소, 포트, 프로토콜, 전송 설정을 점검하세요.
- 환경 기록: 클라이언트 버전, 운영체제, 실패 시각, 대상 그룹, 직접 연결 또는 프록시 중 어떤 방식으로 업데이트했는지 기록하세요.
- 결과 기록: HTTP 상태 코드, 오류 원문, 응답 콘텐츠 유형, 업데이트 전후 항목 수, 기존 노드의 사용 가능 여부를 기록하세요.
- 자격 증명 숨기기: 토큰, 전체 구독 경로, 노드 비밀번호, 사용자 식별 정보를 가리세요. 문제를 판단하는 데 필요한 도메인과 오류 상황만 남기세요.
- 문제에 맞는 곳에 문의: 인증, 빈 응답, API 제한은 구독 제공업체에 문의하세요. 정상적인 내용을 현재 클라이언트에서 계속 파싱하지 못한다면 최소한의 재현 정보에서 민감한 내용을 제거해 정리하세요.
가능하면 전체 과정에서 ‘한 번에 한 가지씩만 변경’하세요. 주소부터 확인하고, 다음으로 연결 경로, 응답 내용, 마지막으로 클라이언트 호환성을 점검합니다. 바로 해결되지 않더라도 막연한 ‘구독 실패’를 확인 가능한 특정 단계의 문제로 좁힐 수 있어 반복 작업을 줄일 수 있습니다.