두 번째 진단 축: 업데이트 순간의 네트워크 경로가 원활한가

구독 업데이트는 본질적으로 클라이언트가 서버에 네트워크 요청을 보내는 과정이며, 현재 네트워크 환경의 직접적인 영향을 받습니다. 특히 프록시 모드가 켜져 있을 때는 요청 경로가 생각보다 복잡할 수 있습니다.

시스템 프록시와 업데이트 요청의 관계

대부분의 클라이언트는 구독을 업데이트할 때 현재 연결된 프록시 노드를 거치지 않고 구독 서버에 직접 연결을 시도합니다. 이는 "이미 만료됐을 수도 있는 노드를 통해 새 설정을 가져오는" 순환 의존을 피하기 위한 설계입니다. 하지만 시스템 프록시나 TUN 모드가 과도하게 설정되어 클라이언트 자체의 네트워크 요청까지 불안정한 노드로 강제 전달되면, 오히려 업데이트 요청이 시간 초과될 수 있습니다. 시스템 프록시를 잠시 끄거나 직접 연결로 전환한 뒤 다시 업데이트를 시도해 보세요. 이때 성공한다면 문제는 현재 프록시 경로에 있는 것이고, 구독 링크 자체의 문제는 아닙니다.

DNS 해석 이상

구독 서버의 도메인이 로컬 DNS 오염이나 잘못된 주소로 해석되면, 링크가 완전히 정확해도 연결에 실패합니다. 다른 기기를 사용하거나 신뢰할 수 있는 DNS 서버로 전환한 뒤 같은 링크를 다시 테스트해 보세요. 네트워크 환경을 바꾼 후 정상적으로 가져올 수 있다면, 문제는 DNS 해석 단계에 있다고 판단할 수 있습니다.

방화벽 및 보안 소프트웨어의 차단

일부 보안 소프트웨어는 알려지지 않은 프로그램이 보내는 네트워크 요청을 차단하거나 지연시킵니다. 특히 새로 설치한 클라이언트가 처음 네트워크에 접속하려 할 때 이런 현상이 자주 발생합니다. 구독 업데이트가 "연결 중" 상태로 계속 멈춰 있고 명확한 오류가 뜨지 않는다면, 시스템 방화벽 규칙과 보안 소프트웨어의 네트워크 접근 권한 설정을 확인해 클라이언트 프로세스가 네트워크 접근을 허용받았는지 점검하세요.

회사 네트워크나 공공 Wi-Fi의 제한

일부 회사 내부망이나 공공 Wi-Fi는 특정 포트나 프로토콜을 제한합니다. 일상적인 인터넷 사용은 정상이어도 구독 서버가 사용하는 포트만 별도로 막혀 있을 수 있습니다. 휴대폰 테더링으로 바꿔서 테스트해보는 것이 이런 문제를 가장 빠르게 확인하는 방법입니다. 네트워크를 바꾼 뒤 구독이 즉시 업데이트된다면, 현재 네트워크 환경의 제한이 원인이라고 확신할 수 있습니다.

세 번째 진단 축: User-Agent 호환성으로 인한 숨은 실패

이는 상대적으로 간과되기 쉽지만 실제 영향은 결코 작지 않은 요인입니다. 구독 서버는 업데이트 요청을 받을 때 요청 헤더의 User-Agent 값을 읽어 어떤 클라이언트가 요청을 보냈는지 판단하고, 이를 근거로 반환할 설정 형식, 적용할 규칙 템플릿, 심지어 업데이트 허용 여부까지 결정합니다.

왜 User-Agent가 "업데이트는 성공했지만 내용은 그대로"인 상황을 만드는가

일부 구독 서비스는 User-Agent에 따라 서로 다른 버전의 설정 내용을 반환합니다. 클라이언트가 보낸 User-Agent가 서버가 기대하는 규칙과 맞지 않으면, 서버는 오류를 반환하는 대신 캐시된 이전 내용이나 축소된 설정을 돌려줄 수 있습니다. 클라이언트 쪽에서는 "200 성공" 응답을 받았으므로 업데이트 완료로 표시하지만, 실제로 노드 목록은 갱신되지 않은 것입니다. 이것이 두 번째 실패 유형의 흔한 원인입니다.

User-Agent 문제인지 확인하는 방법

Clash Meta(mihomo) 코어를 지원하는 대부분의 클라이언트는 구독 설정에서 User-Agent를 직접 지정하거나, "코어 기본 식별자 사용"과 "클라이언트 자체 식별자 사용" 두 모드를 전환할 수 있게 해줍니다. 이 문제가 의심된다면 User-Agent 설정을 한 번 전환한 뒤 구독을 다시 가져와서 노드 개수에 변화가 있는지 비교해 보세요. 명령줄에서 User-Agent를 직접 지정해 같은 링크의 반환 내용이 다른지 테스트할 수도 있습니다.

curl -A "clash-verge/2.0" "구독 링크 주소" -o test1.yaml
curl -A "Mozilla/5.0" "구독 링크 주소" -o test2.yaml

다운로드가 끝나면 두 파일의 내용과 크기를 비교하세요. 차이가 뚜렷하다면 구독 서비스가 실제로 User-Agent에 따라 다른 내용을 반환한다는 뜻이며, 이후 클라이언트에서 호환성이 더 좋은 식별자를 선택하면 됩니다.

참고

구독 제공처마다 User-Agent 처리 정책이 다릅니다. 전혀 구분하지 않는 곳도 있고, 이를 기준으로 트래픽 정산 방식을 제한하는 곳도 있습니다. 노드 목록이 오랫동안 변하지 않는 문제를 겪고 있다면, 네트워크 진단을 마친 뒤·링크 재발급 전에 User-Agent 확인을 시도해 볼 가치가 있습니다.

각 클라이언트에서 자동 업데이트 주기를 적절히 설정하는 방법

자동 업데이트 주기를 너무 짧게 설정하면 구독 제공처의 빈도 제한에 걸리기 쉬워, 앞서 언급한 "가짜 링크 만료" 현상을 간접적으로 유발합니다. 반대로 너무 길게 설정하면 노드 정보 갱신이 늦어져, 특히 서버 측에서 노드를 임시로 교체하거나 규칙을 조정할 때 제때 반영되지 않을 수 있습니다. 다음은 일반적인 권장 사항입니다.

일부 클라이언트는 "Wi-Fi 연결 시에만 자동 업데이트" 또는 "충전 중에만 업데이트"와 같은 추가 조건도 지원합니다. 모바일 사용자로서 데이터와 배터리 소모에 민감하다면 이런 옵션을 함께 활용해 불필요한 백그라운드 요청을 줄일 수 있습니다.

그대로 따라 할 수 있는 진단 순서

앞서 다룬 세 가지 축을 간단한 것부터 복잡한 것 순으로 정리하면, 문제가 생겼을 때 순서대로 확인하는 것만으로도 보통 몇 분 안에 원인을 찾을 수 있습니다.

  1. 구독 링크에 불필요한 공백이나 잘린 부분이 없는지 확인하고, 브라우저에 복사해 열어서 테스트합니다.
  2. 시스템 프록시를 끄거나 직접 연결로 전환한 뒤 다시 업데이트를 시도합니다.
  3. 네트워크 환경을 바꿔서(예: 휴대폰 테더링) 다시 테스트합니다.
  4. 클라이언트의 자동 업데이트 주기 설정을 확인해 빈도 제한에 걸린 것이 아닌지 점검합니다.
  5. User-Agent 설정을 전환해 보고, 업데이트 후 노드 개수에 변화가 있는지 비교합니다.
  6. 이 모든 항목을 제외한 뒤에도 문제가 남아 있다면 구독 제공처에 링크와 요금제 상태를 문의합니다.
주의

링크, 네트워크, User-Agent 모두 문제가 없는데도 노드 목록이 계속 변하지 않는다면, 구독 제공처 측에서 실제로 콘텐츠를 갱신하지 않은 경우일 가능성이 큽니다. 이는 클라이언트 문제가 아니므로 구독 제공처에 직접 피드백하는 것을 권장합니다.

먼저 클라이언트 버전이 최신인지 확인하세요

일부 구독 파싱 및 User-Agent 호환성 문제는 최신 버전의 클라이언트에서 이미 수정되었습니다. 원인을 진단하기 전에 현재 사용 중인 버전 번호를 먼저 확인해 보세요.

Clash 다운로드