외부 컨트롤러란 무엇이며 언제 필요한가
Clash Verge Rev의 외부 컨트롤러는 실행 중인 mihomo 코어를 브라우저나 별도의 Web 대시보드에서 관리하기 위한 HTTP API입니다. 일반적인 프록시 사용만 필요하다면 시스템 프록시, 모드, 정책 그룹 메뉴만으로 충분하지만, 여러 기기에서 상태를 확인하거나 원격 대시보드로 연결 수·현재 노드·규칙 로그를 보고 싶다면 외부 컨트롤러가 필요합니다. Windows에서는 Clash Verge Rev가 로컬 컴퓨터의 특정 포트에서 API 요청을 기다리고, 대시보드가 그 포트로 접속해 명령을 전달하는 구조입니다.
여기서 자주 혼동하는 항목이 mixed-port와 external-controller입니다. mixed-port는 브라우저나 프로그램이 실제 프록시 트래픽을 보낼 때 사용하는 포트이고, external-controller는 상태 조회와 설정 변경을 위한 관리 API 포트입니다. 두 포트는 같은 번호를 사용할 수 없으며, 용도도 서로 다릅니다. 프록시 포트를 브라우저 대시보드 주소로 입력하면 연결되지 않는 것이 정상입니다.
http://127.0.0.1:9090처럼 작성하고, 실제 프록시 프로그램에는 Clash Verge Rev의 mixed-port를 별도로 입력합니다. 두 번호를 먼저 구분해 두면 대부분의 초기 설정 오류를 피할 수 있습니다.
Windows에서 설정 전에 확인할 항목
설정을 시작하기 전에 Clash Verge Rev가 정상적으로 실행되고 프로필이 활성화되어 있는지 확인하세요. 트레이 아이콘만 보인다고 코어가 반드시 실행 중인 것은 아닙니다. 메인 창을 열어 현재 프로필이 선택되어 있는지, mihomo 코어가 오류 없이 시작되었는지, 프록시 노드와 정책 그룹이 표시되는지 차례로 확인하는 것이 좋습니다. 프로필을 불러오지 못한 상태에서는 외부 컨트롤러 포트가 열려 있어도 대시보드에 의미 있는 데이터가 나타나지 않을 수 있습니다.
다음으로 이미 사용 중인 포트를 확인합니다. 다른 Clash 클라이언트, Docker, 개발 서버, 게임 런처, VPN 프로그램이 9090이나 9097 같은 포트를 점유하고 있으면 Clash Verge Rev가 컨트롤러를 시작하지 못합니다. Windows 터미널에서 다음 명령으로 특정 포트를 사용하는 프로세스를 확인할 수 있습니다.
netstat -ano | findstr :9090
결과의 마지막 숫자는 프로세스 ID인 PID입니다. 작업 관리자에서 해당 PID를 조회하면 어떤 프로그램이 포트를 사용 중인지 확인할 수 있습니다. 다만 회사 PC나 공용 PC에서는 임의로 프로세스를 종료하지 말고 관리자 정책을 먼저 확인하세요. 포트 충돌이 확인되면 기존 프로그램을 종료하거나 Clash Verge Rev의 외부 컨트롤러 포트를 다른 미사용 번호로 변경하는 편이 안전합니다.
Clash Verge Rev에서 포트와 Secret 입력하기
Clash Verge Rev를 실행한 뒤 설정 화면에서 외부 컨트롤러, External Controller 또는 비슷한 이름의 항목을 찾습니다. 릴리스에 따라 메뉴 위치와 번역은 조금 다를 수 있지만, 보통 일반 설정이나 고급 설정의 코어 관리 영역에 있습니다. 입력해야 할 값은 크게 컨트롤러 주소, 포트, Secret 세 가지입니다. Windows 한 대에서만 대시보드를 사용할 예정이라면 주소는 외부에 공개하지 않는 127.0.0.1 또는 localhost로 두는 것이 좋습니다.
| 항목 | 예시 값 | 설명 |
|---|---|---|
| 주소 | 127.0.0.1 |
현재 Windows PC에서만 접속 |
| 포트 | 9090 |
외부 컨트롤러 API가 대기하는 포트 |
| Secret | 긴 임의 문자열 | API 요청을 인증하는 비밀 키 |
Secret은 비워 두기보다 충분히 긴 임의 문자열을 사용하는 것이 좋습니다. 예를 들어 영문 대소문자와 숫자를 섞어 만들고, 구독 URL이나 Windows 로그인 암호와 같은 문자열을 재사용하지 마세요. Secret을 설정한 뒤에는 대시보드에서도 동일한 값을 입력해야 합니다. 한 글자라도 다르거나 앞뒤에 공백이 들어가면 포트는 열려 있어도 인증 실패가 발생합니다.
설정을 저장한 뒤에는 코어를 다시 시작하거나 프로필을 재로드해야 변경 사항이 적용되는 경우가 있습니다. 저장 버튼을 눌렀다고 즉시 API가 새 포트에서 열렸다고 단정하지 말고, 트레이 메뉴에서 코어 재시작 또는 Clash Verge Rev 재실행을 한 번 진행하세요. 이후 설정 화면에 표시된 컨트롤러 주소와 실제 입력한 주소가 일치하는지 확인합니다.
Web 대시보드에서 연결 상태 확인하기
외부 컨트롤러가 실행되면 Web 대시보드의 연결 화면에서 API 주소를 입력합니다. 로컬에서 접속하는 경우 기본 형식은 http://127.0.0.1:9090입니다. 대시보드가 주소와 포트를 별도 입력란으로 나누어 제공한다면 호스트에는 127.0.0.1, 포트에는 9090을 입력하고, Secret 입력란에는 Clash Verge Rev에 저장한 값을 그대로 붙여 넣습니다. 주소 끝에 불필요한 공백이나 슬래시를 넣지 않는 것이 좋습니다.
- Clash Verge Rev에서 프로필과 mihomo 코어가 실행 중인지 확인합니다.
- 외부 컨트롤러의 주소와 포트를 확인합니다.
- Web 대시보드에서 같은 주소와 포트를 입력합니다.
- Clash Verge Rev의 Secret을 대시보드 인증란에 입력합니다.
- 연결 버튼을 누른 뒤 현재 모드와 프록시 그룹이 표시되는지 확인합니다.
정상적으로 연결되면 대시보드에 현재 모드, 지연 시간, 프록시 그룹 또는 연결 로그가 나타납니다. 단순히 “연결됨”이라는 문구만 보지 말고 노드 목록이 실제로 로드되는지도 확인하세요. API는 열렸지만 잘못된 프로필을 바라보는 경우에는 대시보드 자체는 연결된 것처럼 보여도 원하는 정책 그룹이 보이지 않을 수 있습니다. 이때는 대시보드 문제가 아니라 Clash Verge Rev의 활성 프로필과 코어 상태를 다시 살펴봐야 합니다.
0.0.0.0에 바인딩하면 같은 네트워크의 다른 장치가 API에 접근할 가능성이 생깁니다. 원격 관리가 꼭 필요한 경우가 아니라면 127.0.0.1을 유지하고, Secret을 다른 사람에게 공유하지 마세요.
접속 실패와 포트 충돌 문제 해결
브라우저나 대시보드에서 “연결할 수 없음”이 표시되면 먼저 주소 형식을 확인합니다. 127.0.0.1은 대시보드를 실행한 바로 그 Windows PC를 의미하므로, 다른 노트북이나 휴대폰에서 입력하면 해당 장치 자신을 가리킵니다. 다른 기기에서 접속하려면 Clash Verge Rev가 실행된 PC의 사설 IP를 사용해야 하지만, 이 경우 Windows 방화벽과 외부 컨트롤러 바인딩 주소를 함께 검토해야 합니다. 단순한 테스트라면 먼저 같은 PC의 브라우저에서 연결하는 것이 원인 분리에 유리합니다.
포트 충돌이 의심되면 Clash Verge Rev 로그에서 “address already in use”, “bind failed”, “listen error”와 비슷한 문구를 찾으세요. Windows 명령 프롬프트에서 netstat -ano 결과를 확인하고, 해당 PID가 다른 Clash 인스턴스인지 VPN인지 개발 도구인지 구분합니다. 이전에 실행한 Clash Verge Rev 프로세스가 백그라운드에 남아 같은 포트를 붙잡는 경우도 있으므로, 트레이 아이콘으로 완전히 종료한 뒤 다시 시작해 보세요.
포트는 열려 있지만 Secret 오류가 계속되면 복사한 문자열의 앞뒤 공백, 줄바꿈, 특수문자 처리 여부를 확인합니다. 일부 대시보드는 Secret을 URL에 직접 붙이는 방식과 별도의 인증 입력란을 함께 제공하므로, 동일한 값을 두 번 잘못 넣지 않도록 안내 문구를 읽어야 합니다. 또한 설정을 변경한 직후에는 오래된 브라우저 탭이 이전 주소나 이전 토큰을 기억할 수 있으므로 대시보드를 새로고침하거나 연결 정보를 삭제한 뒤 다시 입력하는 것이 좋습니다.
Windows Defender 방화벽이 로컬 연결까지 차단하는 경우는 드물지만, 보안 프로그램이 새 코어 실행 파일의 네트워크 접근을 제한할 수 있습니다. 이때는 방화벽을 무조건 끄기보다 Clash Verge Rev와 mihomo 코어가 사설 네트워크에서 통신하도록 허용되었는지 확인하세요. 회사 장비에서는 그룹 정책이 포트 열기나 백그라운드 서버 실행을 제한할 수 있으므로, 정책을 우회하기보다 관리자에게 허용 범위를 문의해야 합니다.
매일 사용할 때의 관리 원칙
외부 컨트롤러는 편리하지만 사실상 Clash 코어의 관리 API이므로, 사용하지 않을 때는 노출 범위를 최소화해야 합니다. 로컬 PC에서만 사용할 때는 127.0.0.1을 유지하고, Secret을 메신저나 공개 설정 파일에 저장하지 마세요. 화면 공유나 원격 지원을 받은 뒤에는 Secret을 교체하는 것도 좋은 습관입니다. 특히 대시보드에서 프록시 그룹 변경, 규칙 모드 전환, 연결 종료 같은 작업을 할 수 있으므로 단순 조회용 포트라고 생각하면 안 됩니다.
설정을 백업할 때는 포트와 Secret을 함께 기록하되, 일반 YAML 파일이나 클라우드 메모장에 평문으로 올리지 않는 편이 안전합니다. 프로필을 업데이트한 뒤 컨트롤러가 갑자기 연결되지 않는다면 먼저 코어가 재시작되며 포트가 바뀌었는지, 설정 파일에서 external-controller 항목이 덮어써졌는지 확인하세요. 구독 제공자가 전체 설정을 다시 내려주는 구조라면 로컬에서 수정한 컨트롤러 값이 사라질 수 있으므로, 업데이트 후에는 포트와 Secret을 다시 점검해야 합니다.
기본 Windows 프록시만 조작하는 다른 클라이언트는 설치가 간단하지만, 외부 컨트롤러 주소·Secret·코어 상태를 한 화면에서 관리하기 어렵거나 API 호환성이 제한될 수 있습니다. 반대로 오래된 Clash for Windows 계열은 메뉴와 코어 업데이트가 늦어 최신 mihomo 설정을 확인할 때 혼선이 생길 수 있습니다. Clash Verge Rev는 Windows에서 프로필, mihomo 코어, 외부 컨트롤러를 함께 확인하면서 포트 충돌과 인증 상태를 비교하기 쉽다는 장점이 있으므로, 이 글의 방식으로 안전하게 설정한 뒤 최신 기능을 계속 활용하려면 Clash V.CORE를 다운로드해 보세요.