provider, 프록시 그룹, 선택 노드를 구분하기

proxy-providers는 프록시 항목 모음의 원본을 정의합니다. 원격 URL, 로컬 파일 또는 인라인 설정에서 항목을 읽습니다. proxy-groups는 use로 provider를 가져와 수동 선택, 지연 기반 선택 또는 장애 조치 방식을 정합니다. 사용자가 마지막에 선택하는 것은 구체적인 노드나 하위 그룹입니다.

provider 갱신 성공은 파일을 받아 해석했다는 뜻일 뿐 모든 서버가 연결된다는 뜻은 아닙니다. 그룹이 비어 있으면 use, 이름 정규식, 제외 프로토콜을 먼저 확인합니다. 항목은 있지만 모두 시간 초과라면 네트워크와 상태 확인 URL을 살펴봐야 합니다.

보안: 구독 URL에는 계정 토큰이 들어갈 수 있습니다. 예시에서는 자리표시자로 바꾸고 공개 로그와 화면에서는 쿼리 문자열을 가리세요.

HTTP, file, inline 소스 선택

원격 구독은 보통 type: http와 함께 url, 고유한 캐시 path, 갱신 interval을 사용합니다. file provider는 로컬 파일만 읽고 원격 내용을 스스로 갱신하지 않습니다. inline은 직접 관리하는 소수의 고정 노드에 적합합니다.

YAMLproxy-providers:
  main-subscription:
    type: http
    url: "https://provider.example/sub?token=REDACTED"
    path: ./providers/main.yaml
    interval: 21600
    proxy: DIRECT
    size-limit: 10485760

proxy는 구독 갱신 요청 자체가 나가는 경로입니다. 구독 서버가 직접 연결로 닿지 않는 환경이라면 DIRECT가 오히려 실패 원인이 됩니다. provider마다 다른 캐시 경로를 사용해 덮어쓰기를 피하세요. size-limit 단위는 바이트이며 예시는 10 MiB입니다. 이 제한이 소스의 신뢰성을 보장하지는 않습니다.

이름과 프로토콜 유형을 단계적으로 필터링하기

filter는 이름이 정규식과 일치하는 항목을 남기고 exclude-filter는 일치 항목을 제거하며 provider와 이를 참조하는 그룹 모두에서 쓸 수 있습니다. provider의 exclude-type은 그 모음에서 프로토콜을 제외합니다. 그룹에도 같은 이름의 필드가 있지만 공식 문서상 직접 가져온 outbound만 대상으로 하며 use로 들어온 provider 노드는 제외하지 않습니다. 지역별 그룹은 원본 provider 하나를 이름 조건으로 나누는 편이 좋습니다.

YAMLproxy-groups:
  - name: Japan
    type: select
    use: [main-subscription]
    filter: '(?i)(일본|도쿄|오사카|japan|tokyo|osaka|\bjp\b)'
    exclude-filter: '(?i)(만료|잔여|공식|요금제)'

정규식은 공급자가 정한 표시 이름만 검사하며 실제 서버 위치를 확인하지 않습니다. 이름 체계가 바뀌면 정상 구독도 빈 그룹으로 보일 수 있습니다. YAML 인용과 정규식이 모두 역슬래시를 해석하므로 테스트 그룹에서 조건을 하나씩 추가하세요.

health-check 결과가 의미하는 범위

상태 확인은 각 노드를 통해 지정 URL을 요청하고 지연, 시간 초과, 예상 HTTP 상태를 평가합니다. 주요 필드는 enable, url, interval, timeout, lazy, expected-status입니다. 응답이 작고 안정적이며 모든 후보 출구에서 접근 가능한 주소를 선택해야 합니다.

YAMLhealth-check:
  enable: true
  url: https://www.gstatic.com/generate_204
  interval: 600
  timeout: 5000
  lazy: true
  expected-status: 204

통과는 해당 시점에 그 테스트 URL에 도달했다는 뜻입니다. 스트리밍, 게임 또는 특정 API까지 보장하지 않습니다. 반대로 특정 출구에서 테스트 호스트만 차단돼 실패할 수도 있습니다. 너무 짧은 간격은 노드 수만큼 요청을 늘리며, lazy를 쓰면 한동안 사용하지 않은 provider의 첫 결과가 늦을 수 있습니다.

select, url-test, fallback 그룹에 연결하기

provider만으로 트래픽 경로가 결정되지는 않습니다. 회의나 고정 출구에는 select, 일반 탐색의 자동 선택에는 url-test, 순서가 있는 주·예비 회선에는 fallback을 검토합니다. provider 상태 확인과 그룹 테스트는 서로 다른 계층이므로 대시보드의 수치가 비슷해도 역할은 다릅니다.

용도그룹 유형확인 사항
회의·고정 출구select세션 중 자동 변경 방지
일반 탐색url-test테스트 주소의 편향
주·예비 회선fallback순서와 복구 동작

복잡한 필터가 없는 “전체 노드” 그룹을 기준으로 남겨 두세요. 갱신 후 지역 그룹만 비었다면 원격 파일보다 해당 그룹의 정규식이나 유형 제외를 먼저 의심할 수 있습니다.

한 계층씩 검증하는 순서

  1. provider를 수동 갱신하고 시간, 크기, 해석 로그를 확인합니다.
  2. 필터 없는 임시 그룹에서 원래 이름과 개수를 확인합니다.
  3. 포함, 제외, 프로토콜 조건을 하나씩 추가합니다.
  4. 상태 확인을 실행해 빈 그룹, 검사 실패, 대상 서비스 실패를 구분합니다.
  5. 마지막에 그룹 유형과 검사 간격을 조정합니다.

받은 내용이 HTML 로그인 페이지, 인증 오류 또는 빈 파일이면 정규식이 아니라 구독 원본을 수정해야 합니다. 현재 필드 정의는 공식 proxy-providers 문서와 proxy-groups 문서에서 확인할 수 있습니다.

수정 전 설정을 보관하고 “원본 갱신”, “그룹 항목 존재”, “상태 확인 통과”, “목적 서비스 작동”을 별도로 기록하세요. 이 네 단계가 분리돼 있으면 공급자의 이름 변경이나 노드 교체도 좁은 범위에서 해결할 수 있습니다.

공식 자료와 버전 범위

버전 번호, 파일 이름, 화면 문구는 업데이트로 바뀔 수 있습니다. 작업 전에 연결된 공식 문서를 확인하세요.