먼저 외부 제어를 활성화하세요
어떤 패널을 쓰든 전제 조건은 동일합니다. 코어에서 external-controller가 이미 활성화되어 있어야 하며, 이것이 패널과 코어가 통신하는 RESTful API 입구입니다.
external-controller: 127.0.0.1:9090
secret: "your-strong-secret"
패널은 본질적으로 이 API에 접근하는 웹 애플리케이션입니다. 로컬 웹페이지든 코어에 내장된 정적 리소스든, 모두 이 입구를 통해 연결 목록, 노드 지연, 로그 스트림 등의 정보를 읽어옵니다.
주요 패널의 방향성
패널 생태계는 업데이트가 빠른 편이라 특정 프로젝트 이름을 나열하기보다, 기능 방향에 따라 대략 세 갈래로 나눠 볼 수 있습니다.
- 경량 읽기 전용형 — 연결 상태, 지연, 트래픽 그래프 표시에 집중해 인터페이스가 단순하고 로딩이 빠릅니다. 「상태만 잠깐 확인」하려는 용도에 적합합니다;
- 전기능 관리형 — 표시 기능 외에도 노드 전환, 규칙 편집, 구독 관리, 상세 로그 조회까지 지원합니다. 기능은 가장 풍부하지만 인터페이스도 상대적으로 복잡합니다;
- 모바일 최적화형 — 모바일 브라우저에 맞춰 레이아웃을 최적화한 형태로, 패널을 라우터에 올려두고 휴대폰으로 원격 확인해야 하는 상황에 적합합니다.
혼자 컴퓨터에서 그래픽 클라이언트만 사용한다면 별도로 패널을 연동할 필요는 대체로 없습니다. 클라이언트 자체 인터페이스가 이미 대부분의 요구를 충족하기 때문이죠. 패널은 주로 화면이 없는 기기(라우터, NAS, 클라우드 서버)에서 돌아가는 코어를 위한 도구입니다.
패널에서 실제로 볼 수 있는 것들
패널을 연동한 뒤 가장 많이 쓰는 정보는 다음과 같습니다.
- 실시간 연결 목록 — 현재 맺어지고 있는 각 연결의 목적지 도메인, 매칭된 규칙, 최종 처리 방향(DIRECT / PROXY / REJECT)을 보여줍니다. 「이 사이트가 왜 프록시를 안 타는지」를 확인할 때 가장 직접적인 창구입니다;
- 노드 지연 패널 — 정책 그룹 내 각 노드의 실시간 속도 테스트 결과를 보여줘, 지금 쓰고 있는 노드가 실제로 가장 빠른지 한눈에 확인할 수 있습니다;
- 트래픽 통계 — 연결 단위 또는 시간 단위로 업/다운로드 트래픽을 집계해, 특정 앱이 백그라운드에서 몰래 트래픽을 쓰고 있는지 파악하는 데 씁니다;
- 로그 스트림 — 실시간으로 흐르는 실행 로그로, 규칙 로딩 실패나 구독 갱신 실패 같은 문제는 대개 여기서 먼저 드러납니다.
텍스트 로그만 보는 것보다 패널로 시각화하면 문제 해결 효율이 눈에 띄게 올라갑니다. 특히 그래픽 화면 없이 라우터나 서버에 장기간 올려두는 환경에서는 그 차이가 더 크게 느껴집니다.
연동 전에 반드시 해야 할 보안 설정
외부 제어 인터페이스를 제대로 설정하지 않으면 프록시의 제어 권한을 그대로 노출하는 셈이 됩니다. 이 부분은 절대 건너뛰면 안 됩니다.
- 반드시 충분히 복잡한
secret을 설정하고, 기본값이나 빈 값을 그대로 두지 마세요; - 로컬에서만 패널을 사용한다면
external-controller는127.0.0.1에 바인딩해야 하며,0.0.0.0에 바인딩하지 마세요; - 패널을 라우터 등에 올려두고 다른 기기에서 원격으로 접근해야 한다면, 내부망을 통해 접근하거나 리버스 프록시와 인증을 한 겹 더 추가하는 방식을 우선하고, 제어 포트를 공개 인터넷에 그대로 노출하지 마세요.
패널 연결의 일반적인 순서
- 코어에서
external-controller가 활성화되고secret이 설정되어 있는지 확인하세요; - 패널의 연결 설정에서 코어 주소(예:
127.0.0.1:9090)와 방금 설정한secret을 입력하세요; - 연결에 성공하면 실시간 연결 목록, 노드 지연, 로그를 곧바로 볼 수 있습니다. 연결에 실패하면 먼저 주소와 포트가 맞는지, 코어가 실행 중인지, 방화벽이 해당 포트를 허용하고 있는지 확인하세요.
패널에 연결이 안 될 때 확인할 것들
패널 연결 실패는 대개 몇 가지 원인으로 좁혀집니다. 첫째, 코어에서 external-controller를 아예 켜지 않았거나 설정을 바꾼 뒤 다시 불러오지 않은 경우. 둘째, 주소나 포트를 잘못 입력한 경우, 특히 127.0.0.1과 내부망에서 접근할 때 써야 하는 내부 IP를 혼동하는 경우가 많습니다. 셋째, secret이 일치하지 않는 경우로, 복사·붙여넣기 과정에서 공백이나 따옴표가 섞여 들어가기도 합니다. 넷째, 방화벽이나 보안 소프트웨어가 해당 포트로의 로컬 접근을 막고 있는 경우입니다. 이 순서대로 하나씩 확인하면 대부분의 연결 실패 원인을 찾을 수 있습니다.
패널은 열리는데 데이터가 계속 비어 있다면 대개 연결 문제가 아니라 코어에 아직 연결 기록 자체가 없는 경우입니다. 먼저 웹사이트에 한 번 접속해 트래픽을 발생시킨 뒤 패널로 돌아가 데이터가 표시되는지 확인해 보세요. external-controller의 더 자세한 파라미터 설명이 필요하다면 고급 문서를 참고하세요.
아직 Clash를 설치하지 않았다면 먼저 클라이언트부터
패널은 있으면 좋은 시각화 도구일 뿐, 먼저 클라이언트를 설치하고 구독을 불러와야 볼 데이터가 생깁니다.