Clash 전체 플랫폼 설치 설정 가이드

이 페이지는 사이트 내 체계적인 참고 매뉴얼로, Windows, macOS, Android, iOS, Linux 별로 장을 나누어 각 장마다 동일한 흐름으로 진행합니다: 설치 파일 다운로드 → 설치 → 구독 가져오기 → 시스템 프록시 또는 TUN 설정 → 해당 플랫폼 특유의 문제점. 처음 연결까지 빠르게 끝내고 싶다면 먼저 사용 가이드의 3단계 핵심 흐름을 참고하세요. 이 페이지는 곁에 두고 특정 플랫폼 문제가 생겼을 때 해당 장을 찾아보시면 됩니다.

총 8개 장 · 5개 플랫폼 지원 · 클라이언트 목록은 다운로드 페이지와 동일 · 전 플랫폼 공통 최우선 추천 Clash Plus

1장 · 시작하기 전에: 공통 사전 준비

어떤 플랫폼을 쓰든 공통으로 필요한 세 가지가 있습니다: 구독 주소 준비, 포트 이해하기, 알맞은 클라이언트 선택하기. 이 세 가지를 먼저 준비해두면 이후 각 장의 진행이 훨씬 수월해집니다. 원칙은 동일합니다: 먼저 실행 방법을 설명하고, 이유는 그 안에서 함께 다룹니다.

1.1 구독 주소 준비하기

구독 주소(구독 링크라고도 함)는 https://로 시작하는 URL로, 클라이언트가 주기적으로 접속해 노드 목록과 트래픽 분류 규칙을 받아옵니다. 서비스 제공업체에서 발급하며, 보통 제공업체 관리 페이지의 「구독」 항목에서 복사합니다. Clash, Surge, Shadowrocket 등 여러 형식이 함께 나열되어 있다면 Clash 또는 mihomo용을 선택하세요.

방법은 두 단계뿐입니다: 서비스 제공업체 관리 페이지에 로그인해 구독 링크를 복사한다; 클라이언트의 구독 입력란에 붙여넣는다(각 플랫폼별 입력란 위치는 뒤에서 다룹니다). 구독 링크에는 보통 token 파라미터가 포함되어 있는데, 이 링크를 손에 넣은 사람은 누구든 해당 요금제를 쓸 수 있으므로 계정 비밀번호와 같은 수준으로 취급해야 합니다.

구독 링크는 곧 접속 자격 증명입니다

구독 링크는 절대 누구에게도 전달하지 말고, 스크린샷이나 단체 채팅방, 커뮤니티 게시글에도 노출시키지 마세요. 유출이 의심되면 즉시 제공업체 관리 페이지에서 구독을 재설정하면 기존 링크는 바로 무효화됩니다. 이 페이지의 예시에 나오는 token=xxxx는 가짜 값이므로 실제로는 본인의 완전한 링크를 붙여넣어야 합니다.

1.2 자주 쓰는 포트 이해하기

Clash가 트래픽을 처리하는 방식은 본기 127.0.0.1에 몇 개의 포트를 열어, 시스템이나 앱이 트래픽을 이곳으로 보내면 내부 코어가 규칙에 따라 전달하는 구조입니다. 그래서 설치 후 가장 먼저 알아둬야 할 개념이 바로 「포트」입니다. 자주 쓰이는 기본 포트는 다음과 같습니다(클라이언트마다 기본값이 다르므로 실제 설정 화면을 기준으로 확인하세요):

포트종류용도
7890HTTP 프록시Clash 클래식 기본값, 웹 프록시 트래픽 수신
7891SOCKS5 프록시클래식 기본값, SOCKS 프로토콜 트래픽 수신
7897혼합 포트Clash Verge Rev 기본값, HTTP와 SOCKS 동시 지원
9090외부 컨트롤러본기 관리용 인터페이스, 클라이언트 화면이 코어와 통신하는 통로

설치 후 가장 먼저 할 일: 클라이언트 설정 화면을 열어 「포트 / Port」 항목을 찾아 실제 포트 번호를 확인하는 것입니다. 이후 특정 앱에 수동으로 프록시를 설정하거나 「포트 충돌」 문제를 해결할 때 이 번호가 필요합니다. 소위 「시스템 프록시」 스위치는 결국 운영체제의 프록시 서버 주소를 127.0.0.1과 이 포트 번호로 설정하는 것입니다.

1.3 알맞은 클라이언트 선택하기

5개 플랫폼의 클라이언트 목록은 다운로드 페이지와 완전히 동일합니다: 전 플랫폼 공통 최우선 추천은 Clash Plus이며, 플랫폼별로 대체 옵션이 있고, 유지보수가 종료된 예전 클라이언트는 참고용으로만 남겨둡니다. 무엇을 선택할지 확신이 없다면 먼저 클라이언트 비교 페이지의 결론을 확인하세요. 결정했다면 다운로드 페이지에서 플랫폼별로 받으면 되며, 대응 항목은 다음과 같습니다:

플랫폼최우선 추천대체 옵션바로가기
WindowsClash PlusClash Verge Rev / FlClash / Clash Nyanpasudownload.html#windows
macOSClash PlusClash Verge Rev / FlClash (ClashX Meta는 유지보수 종료)download.html#macos
AndroidClash PlusClash Meta for Android / FlClash / Surfboarddownload.html#android
iOSClash Plus(App Store)download.html#ios
LinuxClash Verge RevFlClash (서버는 mihomo 코어를 직접 사용)download.html#linux

2장 · Windows 설치 및 설정

2.1 다운로드 및 설치

방법: 다운로드 페이지 Windows 항목을 열면 첫 번째 카드가 최우선 추천 Clash Plus입니다. 「설치 파일 다운로드」를 클릭해 .exe 설치 프로그램을 받으세요. 시스템 요구사항은 Windows 10 이상, 64비트입니다. 더블클릭으로 실행 후 안내에 따라 다음으로 진행하면 되고, 설치 경로는 기본값을 유지하면 됩니다.

처음 실행할 때 Windows 보안에서 「이 앱의 네트워크 접근을 허용하시겠습니까」라는 팝업이 뜰 수 있는데, 개인 네트워크와 공용 네트워크 모두 체크하고 허용하세요. 클라이언트는 인터넷에 접속해 구독을 받아오고, 본기에도 포트를 열어야 하므로 막으면 둘 다 작동하지 않습니다.

설치 파일 출처

설치 파일은 반드시 본 사이트 다운로드 페이지나 클라이언트 공식 사이트에서만 받으세요. 출처가 불분명한 「통합판」, 「최적화판」에는 악성 코드가 심어져 있을 수 있습니다. 프록시 클라이언트는 거의 모든 인터넷 트래픽을 거치므로 출처가 깨끗해야 합니다.

2.2 구독 가져오기

  1. 구독 관리 열기Clash Plus는 메인 화면 왼쪽 「구독」 메뉴에, Clash Verge Rev도 동일하게 「구독」이라 불리며 진입 후 「새로 만들기」를 클릭합니다.
  2. 구독 링크 붙여넣기이름 칸에는 알아보기 쉬운 이름(예: 서비스 제공업체 이름)을 입력하고, URL 칸에는 1장에서 복사한 구독 링크를 붙여넣은 뒤 저장합니다.
  3. 구독 업데이트구독 카드의 새로고침 버튼을 클릭하면 클라이언트가 노드와 규칙을 받아오기 시작하고, 목록에 노드가 나타나면 성공입니다. 자동 업데이트 주기는 24시간으로 설정해두면 편리합니다.
  4. 노드 선택 및 지연 시간 테스트「프록시」 페이지로 이동해 정책 그룹에서 노드를 선택하고, 번개 아이콘을 클릭해 지연 시간을 테스트합니다. 지연 시간이 낮고 여러 번 테스트해도 안정적인 노드를 우선 선택하세요. 「자동 선택」 정책 그룹은 지연 시간에 따라 자동으로 골라주므로 초보자는 바로 사용해도 됩니다.

2.3 시스템 프록시 켜기

방법: 메인 화면에서 「시스템 프록시」 스위치를 찾아 켜면 끝입니다, 별도의 세 번째 단계는 없습니다. 원리: 스위치를 켜면 클라이언트가 Windows의 프록시 설정(설정 → 네트워크 및 인터넷 → 프록시)을 127.0.0.1:7897과 같은 본기 주소로 자동 설정하며, 시스템 프록시를 따르는 모든 앱(Edge, Chrome 등 대부분의 오피스 프로그램)의 트래픽이 자동으로 Clash를 거쳐 전달됩니다.

확인 방법: 브라우저에서 접속 IP를 확인할 수 있는 사이트를 열어보세요. 표시되는 주소가 노드가 위치한 지역으로 바뀌면 연결이 정상적으로 작동하는 것입니다. 지연 시간 테스트나 「가짜 연결」 판별 등 더 자세한 확인 절차는 블로그의 첫 연결 확인 가이드를 참고하세요.

2.4 TUN 모드 (가상 네트워크 카드)

시스템 프록시에는 사각지대가 하나 있습니다: 시스템 프록시 설정을 따르지 않는 앱(일부 게임, 명령줄 도구, UWP 앱)은 처리되지 않습니다. TUN 모드는 가상 네트워크 카드를 만들어 네트워크 계층에서 전체 트래픽을 Clash로 끌어오는 방식으로, 앱의 협조 여부와 무관하게 작동합니다.

방법: 설정에서 「TUN 모드 / 가상 네트워크 카드」를 켜세요. 처음 켤 때 네트워크 카드 드라이버 설치 안내가 뜨고 클라이언트를 관리자 권한으로 실행해야 한다는 요청이 표시되니 안내에 따라 권한을 부여하면 됩니다. 이후로는 전체 트래픽이 Clash를 거치게 됩니다.

TUN과 시스템 프록시는 둘 중 하나만 켜면 됩니다. 일상적인 웹 서핑과 업무용으로는 시스템 프록시만으로 충분하며, 게임이나 명령줄 도구를 처리해야 할 때만 TUN을 켜세요. 두 가지를 동시에 켜면 서로 트래픽을 두고 충돌할 수 있으니, 문제가 생기면 먼저 하나를 끄고 원인을 확인하세요.

2.5 Windows 플랫폼 특유의 문제점

  • UWP 앱이 연결되지 않는 경우.Windows 스토어 앱(UWP)은 기본적으로 127.0.0.1 접근이 차단되어 있어 시스템 프록시가 적용되지 않습니다. 클라이언트에는 보통 「UWP 루프백 해제」 도구가 내장되어 있으니 대상 앱을 체크해 제한을 풀거나, TUN 모드를 켜서 전체적으로 우회하는 방법도 있습니다.
  • 포트가 이미 사용 중인 경우.실행 시 포트 충돌 또는 bind 실패 오류가 뜨면 다른 프로그램이 해당 포트를 사용 중이라는 뜻입니다. 다음 두 명령으로 점유 프로세스를 확인하세요:
netstat -ano | findstr :7897
tasklist | findstr "PID번호"

점유 중인 프로세스를 종료하거나, 설정에서 포트를 다른 빈 값(예: 7899)으로 바꾸면 시스템 프록시도 새 포트를 자동으로 따라갑니다. 더 자세한 진단 순서는 8장을 참고하세요.

  • 부팅 시 자동 실행되지 않는 경우.설정에서 「부팅 시 시작」을 체크하고, 필요하다면 「조용히 시작 / 트레이로 최소화」도 함께 체크하세요. 부팅 후 프록시가 자동으로 준비되어 매번 수동으로 켤 필요가 없습니다.

3장 · macOS 설치 및 설정

3.1 다운로드 및 설치

다운로드 페이지 macOS 항목으로 이동하세요: 최우선 추천은 Clash Plus, 대체 옵션은 Clash Verge Rev, FlClash입니다. ClashX Meta는 유지보수가 종료되어 참고용으로만 남겨두었으니 새 기기에는 설치를 권장하지 않습니다. 다운로드 전에 먼저 칩셋을 확인하세요: 왼쪽 상단 애플 메뉴 → 「이 Mac에 관하여」에서 칩셋 항목이 Apple M 시리즈면 arm64 패키지를, Intel이면 x64 패키지를 선택하세요. 잘못 선택하면 아예 실행되지 않습니다.

설치: 다운로드하면 .dmg 파일이 나오는데, 더블클릭해 마운트한 뒤 앱을 「응용 프로그램」 폴더로 드래그하세요. 처음 열 때 「개발자를 확인할 수 없음」이라는 경고가 뜨면 시스템 설정 → 개인정보 보호 및 보안에서 해당 안내를 찾아 「그래도 열기」를 클릭하세요. 이는 App Store 외 경로로 설치된 앱에 대한 macOS의 일반적인 차단 절차이며 소프트웨어 자체의 문제가 아닙니다.

3.2 구독 가져오기와 시스템 프록시

가져오기: 클라이언트를 열어 구독 관리로 이동합니다(Verge 계열은 「구독」 페이지, ClashX 계열은 메뉴바 아이콘 → 「구성」 → 「호스팅 구성」 → 「관리」). 원격 구성을 추가하고 구독 링크를 붙여넣은 뒤 업데이트하세요. 노드가 나타나면 프록시 페이지에서 노드를 선택하고 지연 시간을 테스트하는 방식은 Windows와 동일합니다.

시스템 프록시 켜기: 「시스템 프록시로 설정」을 체크하세요. 원리는 Windows와 동일합니다: 클라이언트가 macOS의 웹 프록시(HTTP)와 보안 웹 프록시(HTTPS)를 127.0.0.1과 포트로 지정하며, 결과는 시스템 설정 → 네트워크 → 세부 정보 → 프록시에서 확인할 수 있습니다. 체크를 해제하면 클라이언트가 자동으로 해당 설정을 지웁니다.

3.3 확장 모드와 TUN

macOS에서는 클라이언트마다 명칭이 다릅니다: ClashX 계열은 「확장 모드」, Verge 계열은 「TUN 모드」라 부르지만 본질은 모두 가상 네트워크 카드를 통한 전체 트래픽 처리입니다. 처음 켤 때 헬퍼 도구 설치와 로그인 비밀번호 입력을 통한 권한 부여가 필요하며, 이후 동작 방식은 Windows의 TUN과 동일합니다. 일상적으로는 시스템 프록시만 켜두고, 프록시를 따르지 않는 앱이 있을 때만 이를 켜세요.

3.4 macOS 플랫폼 특유의 문제점

  • 비밀번호 팝업이 자주 뜨는 경우.헬퍼 설치, 시스템 프록시 변경 시 권한 요청 팝업이 뜨는 것은 정상적인 절차이므로 로그인 비밀번호를 입력하면 됩니다.
  • 메뉴바에서 아이콘을 찾을 수 없는 경우.노치 화면 기기는 메뉴바 공간이 좁아 아이콘이 밀려날 수 있습니다. 자주 쓰지 않는 상주 아이콘 몇 개를 종료하거나 메뉴바 관리 도구로 조정해보세요.
  • 절전 모드에서 깨어난 후 프록시가 이상 작동하는 경우.가끔 시스템 프록시 상태가 사라지는데, 시스템 프록시 스위치를 껐다 켜거나 클라이언트를 재시작하면 복구됩니다.
  • 터미널이 시스템 프록시를 따르지 않는 경우.macOS의 시스템 프록시는 그래픽 앱에만 적용되며, git, curl, brew 같은 명령줄 도구는 수동으로 지정해야 합니다. 일시적으로 적용하려면:
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7891

~/.zshrc에 추가하면 영구적으로 적용됩니다. 포트 번호는 본인 클라이언트 설정 화면에 표시된 실제 값으로 바꿔주세요.

4장 · Android 설치 및 설정

4.1 다운로드 및 설치

다운로드 페이지 Android 항목으로 이동하세요: 최우선 추천은 Clash Plus, 대체 옵션은 Clash Meta for Android, FlClash, Surfboard입니다. APK 다운로드 후 클릭해서 열면 「알 수 없는 소스의 앱 설치 금지」 안내가 뜨는데, 안내에 따라 설정으로 이동해 현재 사용 중인 브라우저나 파일 관리자에만 일회성으로 권한을 부여하세요. 전체 「모든 소스 허용」은 켜지 마세요.

아키텍처 선택: 최근 몇 년간 출시된 휴대폰은 대부분 arm64이므로 바로 arm64 패키지를 선택하세요. 설치가 안 되거나 설치 후 바로 꺼지는 구형 기기라면 arm 또는 universal 패키지로 바꿔보세요.

4.2 구독 가져오기와 실행

방법: 클라이언트를 열어 「구성」 페이지로 들어가 더하기 아이콘을 클릭한 뒤 「URL에서 가져오기」를 선택하고 구독 링크를 붙여넣어 저장한 뒤 해당 구성을 선택하세요. 메인 화면으로 돌아가 실행 버튼을 클릭하면 시스템에서 「연결 요청」 대화상자가 뜨며 VPN 연결 생성 허용 여부를 묻는데, 확인을 클릭하세요.

이유: Android는 일반 앱이 시스템 프록시 설정을 직접 수정하는 것을 허용하지 않으므로, Android에서 Clash는 통일적으로 시스템의 VPNService 인터페이스를 통해 작동합니다. 시스템이 전체 트래픽을 클라이언트에 넘겨주는 방식으로, 데스크톱의 TUN 모드와 동일한 효과입니다. 실행에 성공하면 상태 표시줄에 열쇠 아이콘이 나타나고 알림 영역에 상주 항목이 표시됩니다. 프록시를 끄려면 알림에서 정지를 클릭하세요.

4.3 앱별 프록시와 백그라운드 유지

앱별 프록시.「접근 제어 / 앱별 프록시」에서 어떤 앱을 프록시로 보내고 어떤 앱을 직접 연결할지 체크할 수 있습니다. 흔한 방식은 자주 쓰는 국내 앱은 직접 연결, 나머지는 프록시로 보내는 것으로, 노드 트래픽을 절약하고 은행 앱 등의 이상 위험 탐지도 줄일 수 있습니다.

백그라운드 유지.Android 특유의 필수 작업입니다: 국산 커스텀 ROM은 대체로 백그라운드 프로세스를 적극적으로 정리하는데, 프록시 프로세스가 종료되면 「화면을 잠그면 곧 끊긴다」는 증상으로 나타납니다. 고정 3단계: 시스템 설정에서 클라이언트의 배터리 최적화를 끄기; 자동 실행 관리에서 자동 실행 허용; 멀티태스킹 화면에서 클라이언트 카드에 잠금 걸기.

개인 DNS.시스템에서 「개인 DNS(Private DNS)」가 켜져 있고 사용할 수 없는 서버를 지정하고 있으면 프록시의 DNS 해석과 충돌해, 노드는 정상인데 웹페이지가 열리지 않는 증상이 나타납니다. 이를 「끄기」 또는 「자동」으로 설정하면 됩니다.

5장 · iOS 설치 및 설정

5.1 App Store에서 설치

iOS에서는 Clash Plus를 최우선으로 추천하며 App Store에서 바로 설치할 수 있습니다: 다운로드 페이지 iOS 항목을 열어 스토어 링크로 이동하거나 App Store에서 직접 검색하세요. 클라이언트 공식 사이트는 clashplus.io이며, 업데이트 내역과 공지사항은 공식 사이트를 기준으로 확인하세요.

덧붙이자면, iOS의 프록시 클라이언트는 모두 시스템 「네트워크 확장」 형태로 작동하며, 설치 후 처음 실행할 때 VPN 구성 추가를 요청하는 것은 동일 종류 앱들의 공통된 형태이지 특정 앱이 추가 권한을 요구하는 것이 아닙니다.

5.2 구독 가져오기와 연결

방법: Clash Plus를 열어 구성 / 구독 페이지로 들어가 구독을 추가하고 링크를 붙여넣은 뒤 업데이트해 노드를 받아오세요. 홈 화면으로 돌아가 정책 그룹에서 노드를 선택하고 상단의 연결 스위치를 켜세요. 처음 연결할 때 시스템이 「VPN 구성 추가」 팝업을 띄우면 허용을 누르고 Face ID나 잠금 화면 비밀번호로 확인하세요. 상태 표시줄에 VPN 표시가 나타나면 연결된 것입니다.

「필요 시 연결(On Demand)」도 함께 켜두는 것을 추천합니다: Wi-Fi와 셀룰러 전환, 화면 잠금 해제 후에도 자동으로 재연결되어 매번 수동으로 켜고 끌 필요가 없습니다.

5.3 iOS 플랫폼 특유의 문제점

  • VPN 구성이 서로 충돌하는 경우.iOS는 동시에 하나의 VPN 구성만 활성화할 수 있습니다. 여러 프록시 앱을 설치했다면 하나를 켜면 다른 하나가 꺼집니다. 연결이 안 될 때는 먼저 설정 → 일반 → VPN 및 기기 관리에서 현재 활성화된 것이 무엇인지 확인하세요.
  • 네트워크 전환 시 잠시 끊기는 경우.Wi-Fi와 셀룰러 전환 순간 연결이 재구성되는 것은 정상적인 현상이니, 몇 초 기다리면 자동으로 복구되므로 반복해서 껐다 켤 필요는 없습니다.
  • 백그라운드 새로고침.시스템 설정에서 클라이언트의 「백그라운드 앱 새로고침」을 허용하면 장기 연결이 더 안정적으로 유지됩니다.

6장 · Linux 설치 및 설정

Linux는 두 가지 사용 방식으로 나뉩니다: 데스크톱 환경에서는 그래픽 클라이언트를 사용하고, 서버나 소프트라우터에서는 mihomo 코어를 직접 구동합니다. 이 장은 두 부분으로 나눠 다루며, 전반부는 데스크톱, 후반부는 서버입니다.

6.1 데스크톱 그래픽 클라이언트

다운로드 페이지 Linux 항목은 Clash Verge Rev(.deb와 .rpm 제공)를 추천하며, FlClash(.deb 제공)를 대체 옵션으로 제공합니다. 배포판에 따라 패키지를 선택하세요: Debian, Ubuntu 및 파생 배포판은 .deb, Fedora, openSUSE 계열은 .rpm을 사용합니다.

Debian 계열 설치(파일명은 실제 다운로드한 파일 기준):

sudo dpkg -i clash-verge-rev_amd64.deb
sudo apt -f install

두 번째 줄의 역할: dpkg 자체는 의존성 문제를 해결하지 못하므로 의존성 오류가 발생하면 apt로 자동 보완합니다. Fedora 계열:

sudo dnf install ./clash-verge-rev.x86_64.rpm

6.2 구독 가져오기와 시스템 프록시

구독 가져오기는 데스크톱 버전과 동일합니다: 구독 페이지에서 링크 추가, 업데이트, 노드 선택, 지연 시간 테스트를 하면 되므로 여기서는 반복하지 않습니다.

시스템 프록시 스위치는 GNOME 데스크톱에서는 설정 → 네트워크 → 네트워크 프록시에 반영되지만, KDE, 타일링 창 관리자, 경량 데스크톱에서는 이 스위치가 반영되지 않을 수 있습니다. 대안은 두 가지입니다: 첫째, 데스크톱 환경의 네트워크 설정에서 HTTP, HTTPS, SOCKS 프록시를 직접 127.0.0.1과 해당 포트로 입력하는 방법; 둘째, 셸에 환경 변수를 설정해 명령줄 도구에 바로 적용하는 방법:

export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7891

~/.bashrc 또는 ~/.zshrc에 추가하면 영구적으로 적용됩니다. 그래픽 앱은 시스템 프록시를, 명령줄은 환경 변수를 따르므로 두 방식은 서로 간섭하지 않습니다.

6.3 서버 환경: mihomo 코어 직접 구동

그래픽 인터페이스가 없는 서버, 소프트라우터에서는 코어를 직접 사용합니다. 다운로드 페이지 「코어」 항목에서 아키텍처별로 받으세요: x86 서버는 linux amd64, 라즈베리 파이, ARM 박스는 arm64 또는 armv7을 선택합니다. 방법은 4단계로 나뉩니다:

  1. 실행 파일 배치다운로드한 압축 파일을 풀어 mihomo를 /usr/local/bin/에 옮기고 실행 권한(chmod +x)을 부여합니다.
  2. 설정 디렉터리 준비/etc/mihomo를 만들고 구독 내용을 config.yaml로 저장합니다:
sudo mkdir -p /etc/mihomo
curl -L "https://example.com/sub?token=xxxx" -o /tmp/config.yaml
sudo mv /tmp/config.yaml /etc/mihomo/config.yaml

예시 링크는 가짜 값이므로 본인의 구독 링크로 교체하세요. 서비스 제공업체가 제공하는 Clash 구독은 그 자체로 완전한 mihomo 설정입니다.

  1. 주요 설정 항목 확인config.yaml을 열어 다음 항목들이 원하는 대로 설정되어 있는지 확인하세요:
mixed-port: 7897        # 본기 프록시 진입점
allow-lan: false        # 로컬 네트워크 기기 접속 허용 여부
mode: rule              # 규칙 모드
log-level: info
external-controller: 127.0.0.1:9090   # 관리용 인터페이스, 본기에만 바인딩
  1. systemd로 관리하기/etc/systemd/system/mihomo.service를 새로 만듭니다:
[Unit]
Description=mihomo proxy service
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=on-failure
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

그런 다음 활성화하고 로그를 확인합니다:

sudo systemctl daemon-reload
sudo systemctl enable --now mihomo
journalctl -u mihomo -f

이후 구독을 업데이트할 때는 2단계의 curl 명령을 다시 실행하고 systemctl restart mihomo를 실행하면 됩니다. 자동화하려면 crontab에 매일 한 번 실행되도록 등록하세요.

6.4 Linux 플랫폼 특유의 문제점

  • 아키텍처를 잘못 선택한 경우.ARM 기기에서 amd64 바이너리를 실행하면 바로 Exec format error가 발생합니다. 먼저 uname -m으로 아키텍처(x86_64, aarch64, armv7l)를 확인한 뒤 패키지를 선택하세요.
  • 로컬 네트워크 공유가 기본적으로 꺼져 있는 경우.allow-lan은 기본값이 false입니다. 동일 네트워크 기기와 공유하려면 true로 바꾸고 방화벽에서 해당 포트를 열어주세요. 단, 신뢰할 수 있는 네트워크에서만 이렇게 하세요.
  • 관리용 인터페이스를 노출하지 마세요.external-controller는 반드시 127.0.0.1에 바인딩해야 합니다. 0.0.0.0에 바인딩하고 secret도 설정하지 않으면 프록시 관리 권한을 그대로 공개하는 것과 같습니다.
  • GeoIP / GeoSite 데이터베이스.코어의 트래픽 분류는 이 두 데이터에 의존하며, 데스크톱 클라이언트는 보통 자동으로 업데이트됩니다. 수동 업데이트와 사용자 지정 소스 설정 방법은 블로그 GeoIP와 GeoSite 가이드를 참고하세요.

7장 · 시스템 프록시, TUN과 규칙 기반 트래픽 분류

앞선 장들에서 「시스템 프록시」와 「TUN」이 여러 번 등장했는데, 이 장에서는 세 가지 접근 방식을 함께 비교하고, 트래픽이 Clash에 진입한 뒤 규칙 기반 트래픽 분류가 어떻게 판단되는지 설명합니다. 원리를 이해하면 문제를 진단할 때 어디를 봐야 할지 알 수 있습니다.

7.1 세 가지 접근 방식 비교

접근 방식적용 범위필요 권한대표 시나리오
시스템 프록시시스템 프록시 설정을 따르는 그래픽 앱일반 사용자일상적인 웹 서핑, 업무
TUN 가상 네트워크 카드전체 TCP/UDP 트래픽관리자 / root게임, 명령줄, UWP, 시스템 프록시를 따르지 않는 앱
앱 내 수동 지정개별 앱없음터미널, 개발 도구, 다운로드 도구

선택 원칙을 한마디로 정리하면: 시스템 프록시로 충분하면 TUN은 켜지 말고, 개별 앱 지정으로 해결되면 전역 설정은 건드리지 말라는 것입니다. 적용 범위가 좁을수록 문제 발생 시 확인할 범위도 좁아지는데, 이것이 앞선 각 장에서 시스템 프록시를 항상 TUN보다 먼저 다룬 이유입니다.

7.2 규칙 기반 트래픽 분류의 판단 순서

트래픽이 Clash에 진입하면 설정 파일의 rules 목록을 위에서부터 아래로 순서대로 매칭합니다: 첫 번째로 일치하는 규칙에 지정된 정책을 따르고 이후 규칙은 확인하지 않습니다. 모두 일치하지 않으면 마지막 MATCH 규칙으로 처리합니다. 대표적인 작성 예시:

rules:
  - GEOSITE,private,DIRECT      # 사설 주소는 직접 연결
  - GEOIP,CN,DIRECT             # 중국 본토 IP는 직접 연결
  - GEOSITE,gfw,PROXY           # 차단된 사이트는 프록시로
  - MATCH,PROXY                 # 나머지는 전부 프록시로

순서 자체가 전략입니다: 직접 연결 규칙을 앞에, 프록시 규칙을 뒤에 두고, MATCH는 항상 마지막에 둡니다. GEOSITE는 도메인 목록으로 매칭하고, GEOIP는 IP 소속 지역으로 매칭합니다. 두 데이터베이스의 업데이트 방법은 블로그 전문 글을 참고하세요. DIRECT는 직접 연결, PROXY는 선택된 노드로 처리, REJECT는 즉시 차단(광고 차단 규칙에 자주 사용)을 의미합니다.

클라이언트 화면의 「규칙 / 전역 / 직접 연결」 세 모드는 이 규칙 체계 전체를 조절하는 스위치 역할을 합니다: 규칙 모드는 위의 목록대로 판단하고, 전역 모드는 규칙을 무시하고 전부 선택된 노드로 보내며, 직접 연결 모드는 전부 DIRECT로 처리합니다. 세 가지 중 어떤 것을 선택할지는 프록시 모드 입문 가이드에 자세한 비교가 있으니 여기서는 생략합니다.

7.3 정책 그룹: 규칙과 노드 사이의 한 단계 스위치

규칙이 매칭된 후 가리키는 대상은 대개 구체적인 노드가 아니라 「정책 그룹」입니다. 정책 그룹은 여러 노드를 하나로 묶어 그룹 내에서 어떻게 선택할지 결정합니다: select는 수동 선택으로 클라이언트 홈에서 클릭한 노드를 사용하고, url-test는 자동으로 지연 시간을 테스트해 항상 가장 빠른 노드를 사용하며, fallback은 순서대로 가용성을 확인해 첫 번째가 실패하면 자동으로 두 번째로 전환합니다. 구독에서 흔히 보이는 「자동 선택」, 「장애 조치」가 바로 뒤의 두 방식을 가리킵니다.

이 구조를 이해하면 여러 현상이 설명됩니다: 클라이언트 홈에서 노드를 선택할 수 있는 이유는 select 그룹이 사용자의 결정을 기다리고 있기 때문이고, 아무것도 건드리지 않았는데 회선이 바뀌는 이유는 url-test 그룹이 측정 결과에 따라 자동으로 전환했기 때문입니다. 「잘못된 노드로 연결됨」 같은 문제를 진단할 때는 먼저 로그에서 규칙이 어떤 그룹에 매칭됐는지 확인하고, 홈 화면에서 해당 그룹이 현재 선택한 노드가 무엇인지 확인하면 두 단계로 원인을 찾을 수 있습니다.

8장 · 설정 자주 묻는 질문

발생 빈도순으로 정렬했으며, 각 항목은 「증상 → 처리 순서」 형식으로 작성했습니다. 더 깊은 오류 진단 방법은 로그 오류 해결 가이드를 참고하고, 초보자가 자주 하는 질문은 초보자 필수 질문 10가지에 모아두었습니다.

8.1 구독 업데이트 실패

증상: 업데이트를 클릭하면 실패, 시간 초과 또는 「해석할 수 없음」이라는 메시지가 표시됩니다. 처리 순서: ① 구독 링크를 브라우저 주소창에 붙여넣어 직접 열어보고 텍스트가 다운로드되는지 확인하세요. 열리지 않으면 링크가 만료됐거나 서비스 제공업체 측 문제이므로 관리 페이지에서 재설정하세요; ② 휴대폰 테더링으로 네트워크를 바꿔 한 번 더 업데이트해보고 현재 네트워크가 구독 도메인을 차단하는지 확인하세요; ③ 시스템 시간을 정확히 맞추세요. 시간 오차가 크면 https 인증서 검증이 실패할 수 있습니다; ④ 클라이언트 설정에서 「프록시를 통해 구독 업데이트 / 직접 연결로 업데이트」를 전환해 다시 시도하세요; ⑤ 그래도 안 되면 클라이언트 로그를 열어 오류 내용을 확인하고 로그 관련 가이드의 방법으로 원인을 찾으세요.

8.2 포트 충돌

증상: 실행 시 「포트가 이미 사용 중」이라는 오류나 bind 관련 오류가 표시됩니다. Windows는 2장의 netstat 명령을 사용하고, macOS와 Linux는 다음을 사용하세요:

lsof -i :7897

점유 프로세스를 찾은 뒤 둘 중 하나를 선택하세요: 해당 프로세스를 종료하거나, 클라이언트 설정에서 포트를 비어 있는 값(7899, 17890 모두 가능)으로 바꾸세요. 포트를 바꾼 뒤에는 시스템 프록시 스위치를 껐다 켜서 시스템 설정이 새 포트를 가리키도록 하세요.

8.3 시스템 프록시는 켜져 있는데 브라우저가 프록시를 안 타는 경우

먼저 브라우저에 설치된 프록시 관련 확장 프로그램을 확인하세요: 프록시 전환 확장 프로그램은 시스템 설정을 덮어쓰므로 켜져 있다면 그것이 우선 적용됩니다. 다음으로 브라우저 자체의 프록시 설정을 확인하세요: Firefox는 기본값이 「시스템 프록시 사용」인데 「수동」으로 변경되면 독립적으로 동작합니다. 명령줄 도구는 원래 시스템 프록시의 영향을 받지 않으므로 macOS, Linux 장의 환경 변수 방법으로 따로 설정하세요.

8.4 부팅 시 자동 실행되지 않는 경우

클라이언트 설정에서 「부팅 시 시작」을 체크한 뒤, Windows는 작업 관리자 → 시작 프로그램에서 항목이 「사용 함」으로 되어 있는지 확인하고, macOS는 시스템 설정 → 일반 → 로그인 항목을 확인하세요. 체크했는데도 자동 실행되지 않는다면 대부분 보안 소프트웨어가 자동 실행 항목을 차단한 경우이니 클라이언트를 화이트리스트에 추가하세요.

8.5 로컬 네트워크 기기들이 프록시를 공유하는 경우

방법: 클라이언트 설정에서 「로컬 네트워크 연결 허용(allow-lan)」을 켜고, 본기의 로컬 네트워크 IP를 확인하세요(Windows는 ipconfig, macOS와 Linux는 ip addr을 사용). 다른 기기의 프록시 설정에는 이 기기의 IP와 포트를 입력하세요. 주의할 점 두 가지: 방화벽에서 해당 포트를 열어야 하고, 가정처럼 신뢰할 수 있는 네트워크에서만 켜야 합니다. 공공 Wi-Fi에서 켜두면 같은 네트워크에 있는 모든 사람에게 프록시를 빌려주는 것과 같습니다.

8.6 설정 파일을 잘못 수정해 클라이언트가 실행되지 않는 경우

설정을 수동으로 편집한 뒤 클라이언트가 실행되지 않거나 화면이 비어 있다면 90%는 YAML 문법 오류입니다: 들여쓰기는 반드시 공백을 사용해야 하고 탭은 사용할 수 없으며, 콜론 뒤에는 공백이 하나 있어야 합니다. 처리 방법: 클라이언트에 내장된 「기본 설정 복원」을 사용하거나 구독을 다시 가져와서 덮어쓰세요. 본인의 수정 내용을 유지하고 싶다면 오류가 표시된 줄 번호를 따라 한 줄씩 확인하며 수정하세요. 설정을 수정하기 전에 백업을 남겨두는 것이 가장 저렴한 보험입니다.

8.7 로그는 어디서 확인하나요

모든 클라이언트에는 「로그」 페이지가 있어 info, warning, error 단계별로 필터링할 수 있습니다. 문제를 진단하는 기본 절차: 문제를 재현 → 로그의 마지막 몇 줄을 바로 확인 → 오류 키워드를 로그 오류 해결 가이드의 대조표와 비교. 설정 문법 오류, 구독 해석 실패, 포트 충돌 이 세 가지가 초보자 오류의 대부분을 차지합니다.

8.8 노드는 정상인데 특정 사이트만 열리지 않는 경우

증상: 대부분의 사이트는 열리지만 특정 사이트만 계속 로딩 중입니다. 이는 대부분 노드 자체의 문제가 아니라 해당 도메인의 트래픽이 올바른 경로로 가지 않는 것입니다. 처리 순서: ① 클라이언트 로그를 열고 해당 사이트에 다시 접속해 이 도메인이 어떤 규칙에 매칭되고 어떤 정책으로 분류됐는지 확인하세요. DIRECT로 직접 연결됐다면 규칙 데이터베이스에 해당 도메인이 등록되지 않았다는 뜻이므로 프록시를 가리키는 도메인 규칙을 수동으로 추가하면 됩니다; ② 전역 모드로 전환해 다시 시도해보세요. 이때 열린다면 트래픽 분류 문제가 확실하니 ①의 방법으로 규칙을 보완하세요. 전역 모드에서도 열리지 않으면 노드를 바꿔서 테스트해보세요; ③ 일부 사이트는 IP 소속 지역에 민감하므로 다른 지역에 위치한 노드로 바꾸면 대개 즉시 정상화됩니다.

이 페이지에서 다루지 않은 용어(구독, 노드, 정책 그룹, 혼합 포트 등)는 용어 설명에서 확인하세요. 전체 흐름을 빠르게 익히고 싶은 초보자는 사용 가이드로 돌아가 3단계 핵심 흐름을 먼저 따라해보고, 그다음 특정 플랫폼의 장으로 돌아와 확인하세요.