설정 Clash 입문 VPN 비교 프록시 초보 가이드

개발자 Clash TUN 설정법, Git·Homebrew 터미널 프록시 자동화

2026년 10월 10일 업데이트: 2026년 10월 10일 약 10분 소요

서론: 터미널만 연결되지 않는 이유

브라우저에서는 사이트가 잘 열리는데 git clone이나 brew install만 실패한다면, 프록시 서버 자체보다 터미널 프로그램의 트래픽이 Clash에 전달되지 않는 문제일 수 있습니다. 브라우저는 시스템 프록시 설정을 따르더라도 Git이나 Homebrew는 별도의 환경 변수 또는 자체 프록시 설정을 사용할 수 있습니다. 반대로 시스템 프록시를 켰더라도 해당 설정을 읽지 않는 CLI 프로그램은 직접 연결을 시도할 수 있습니다.

TUN 모드는 가상 네트워크 인터페이스를 통해 시스템 트래픽을 받아 Clash의 규칙으로 전달하는 방식입니다. 앱별 프록시 설정을 지원하지 않는 도구까지 라우팅할 수 있어 개발 환경에서 유용하지만, 터미널 앱에 프록시 환경 변수를 지정하는 것과는 작동 방식이 다릅니다. 먼저 TUN의 라우팅 상태를 확인하고, 필요하다면 Git과 Homebrew에 명시적인 프록시를 지정하면 원인을 더 빠르게 좁힐 수 있습니다.

먼저 기억할 점

TUN은 시스템의 네트워크 경로를 다루고, HTTP_PROXY나 Git 프록시 설정은 프로그램별 연결 방식을 다룹니다. 두 설정은 함께 쓸 수 있지만, 중복 적용 여부를 확인해야 합니다.

1설정 전 현재 프록시 경로 확인

설정 변경에 앞서 Clash가 실행 중인지, 실제로 어떤 로컬 포트에서 프록시 연결을 받는지 확인하세요. Clash Verge 또는 Clash Verge Rev의 대시보드에서 HTTP 또는 mixed-port 값을 살펴봅니다. 아래 명령의 7890은 예시이므로, 사용 중인 클라이언트에 표시된 포트로 바꿔야 합니다. 포트가 다르면 환경 변수를 올바르게 지정해도 연결되지 않습니다.

# zsh / bash에서 현재 셸의 프록시 환경 변수 확인 env | grep -i proxy # 로컬 프록시 포트가 응답하는지 확인 curl -I --proxy http://127.0.0.1:7890 https://github.com

첫 번째 명령에 아무것도 나오지 않아도 TUN이 꺼져 있다는 뜻은 아닙니다. 환경 변수는 셸에 설정된 명시적 프록시만 보여 줍니다. 두 번째 명령은 지정한 로컬 프록시 포트를 직접 시험하므로, 실패하면 포트 번호와 Clash의 실행 상태부터 확인하세요. 응답이 오더라도 터미널의 모든 트래픽이 해당 경로를 이용한다는 의미는 아닙니다.

이어 프록시 없이 같은 목적지에 요청해 결과를 비교합니다. 프록시 지정 요청만 성공한다면 TUN 라우팅 또는 앱별 설정이 빠졌을 가능성이 있습니다. 두 요청이 모두 실패한다면 노드, DNS, 방화벽, 대상 서비스의 응답 상태도 점검해야 합니다. 테스트 결과에는 목적지와 오류 문구, 사용한 명령을 함께 기록하면 설정을 바꾼 뒤에도 차이를 판단하기 쉽습니다.

포트와 프록시 종류 확인

Clash 설정에 SOCKS 포트만 보인다면 HTTP 프록시로 가정해 시험하지 마세요. 클라이언트에서 지원하는 포트 종류와 실제 값을 확인한 뒤 해당 형식에 맞춰 연결해야 합니다.

2Mihomo TUN 모드와 권한 설정

Clash Verge 계열 클라이언트에서 설정 화면을 열고 TUN 모드를 활성화한 다음, 연결 상태가 정상으로 바뀌는지 확인합니다. 메뉴 이름과 제공 옵션은 클라이언트 버전 및 운영체제에 따라 다를 수 있습니다. 권한 요청이 표시되면 운영체제의 관리자 인증을 완료하고, 설정을 바꾼 뒤에는 코어를 다시 시작해 적용 여부를 확인하세요.

TUN 설정 점검 항목
  1. 코어 확인: 설정을 적용하는 코어가 TUN을 지원하는 Mihomo인지 확인합니다. 클라이언트가 여러 코어를 제공한다면 현재 선택된 코어를 함께 점검하세요.
  2. 라우팅 권한: Windows에서는 관리자 권한 또는 서비스 설치 안내가 필요할 수 있습니다. macOS와 Linux에서도 가상 인터페이스와 라우팅을 설정할 때 시스템 권한 승인이 요구될 수 있습니다.
  3. 시스템 충돌: 다른 VPN, 보안 제품, 가상 머신 네트워크가 기본 경로를 바꾸는지 확인합니다. 문제를 분리할 때는 다른 터널을 잠시 끄고 한 가지씩 시험하세요.
  4. 재연결: TUN을 켠 뒤 연결 표시만 보지 말고, 아래 단계에서 실제 요청과 목적지 경로를 확인합니다.

Mihomo 설정을 직접 관리하는 경우 TUN 관련 항목은 기존 프로필을 무작정 덮어쓰기보다 클라이언트의 오버라이드 또는 병합 설정을 활용하세요. 예를 들어 다음 구성은 개념을 보여 주는 예시이며, 이미 사용 중인 DNS와 라우팅 정책에 맞게 조정해야 합니다.

# Mihomo 설정 예시: 기존 프로필과 충돌하지 않도록 검토 후 적용 tun: enable: true stack: system auto-route: true strict-route: true

auto-route나 strict-route의 동작은 운영체제와 다른 네트워크 설정에 영향을 받을 수 있습니다. 원격 접속 중 라우팅을 변경하면 SSH 세션이나 업무 연결이 끊길 수 있으므로, 복구할 수 있는 방법을 준비한 뒤 적용하세요. DNS 설정도 별도로 검토해야 합니다. DNS 요청이 원하는 경로를 따르는지 점검하되, 이미 정상적으로 동작하는 프로필의 DNS 항목을 이유 없이 교체하지 않는 편이 안전합니다.

3Git과 Homebrew에 프록시 연결

TUN을 사용할 수 없거나 특정 개발 도구만 프록시로 보내고 싶다면 프로그램별 설정을 사용할 수 있습니다. 아래 예시는 로컬 HTTP 프록시가 127.0.0.1:7890에서 실행 중인 경우입니다. 이 포트는 실제 Clash 클라이언트의 HTTP 또는 mixed-port 값으로 바꿔야 합니다.

Git에 프록시 지정

GitHub 저장소 접근에만 문제가 있다면 Git의 전역 설정을 지정해 시험할 수 있습니다. 설정 범위가 전역이므로 이후 모든 저장소에 적용된다는 점을 먼저 고려하세요.

# Git 전역 HTTP 프록시 설정 git config --global http.proxy http://127.0.0.1:7890 # 등록된 값과 출처 확인 git config --show-origin --get-regexp 'http\..*proxy|https\..*proxy' # 동작 확인 git ls-remote https://github.com/Homebrew/brew.git HEAD

Git 설정을 해제하려면 등록한 키를 삭제합니다. --show-origin을 이용하면 설정이 전역 파일, 저장소별 설정 등 어디에서 왔는지 확인할 수 있어, 예상치 못한 값이 적용될 때 유용합니다.

git config --global --unset http.proxy

Homebrew에 프록시 환경 변수 지정

Homebrew는 실행 환경과 작업에 따라 네트워크 요청을 수행하므로, 터미널 세션에 프록시 변수를 지정해 시험할 수 있습니다. 아래 설정은 현재 셸에서 실행하는 명령에만 적용됩니다. 프록시 경유 테스트를 끝낸 뒤에는 변수를 제거하고 TUN 단독 동작과 비교하세요.

# 현재 셸 세션에만 적용 export HTTP_PROXY=http://127.0.0.1:7890 export HTTPS_PROXY=http://127.0.0.1:7890 export ALL_PROXY=socks5h://127.0.0.1:7891 # Homebrew 요청 시험 brew update brew info git # 현재 세션의 프록시 환경 변수 해제 unset HTTP_PROXY HTTPS_PROXY ALL_PROXY

7891은 SOCKS 프록시 포트의 예시이며, 실제 포트가 다르면 수정해야 합니다. SOCKS 연결에서 socks5h는 호스트 이름 확인도 프록시 측에서 처리하도록 요청하는 형식입니다. 지원 여부는 사용 중인 프로그램과 설정에 따라 다를 수 있으므로, 연결이 실패하면 Clash에서 제공하는 포트 종류를 확인하고 하나의 프록시 방식으로 다시 시험하세요.

설정 범위 분리

TUN만으로 해결되는지, Git 설정만으로 해결되는지, 환경 변수에서만 해결되는지 각각 비교하면 불필요한 중복 프록시 설정을 줄일 수 있습니다.

4라우팅 검증과 오류 해결

설정 후에는 브라우저가 아니라 문제가 발생하던 명령을 다시 실행해야 합니다. 먼저 터미널에서 프록시 변수를 확인하고, 이어 Git 또는 Homebrew 작업을 실행하세요. Clash의 연결 로그에서 해당 요청이 표시되는지, 어떤 규칙과 프록시 그룹이 선택되었는지도 확인합니다. 로그에 요청이 전혀 나타나지 않는다면 TUN이 해당 경로를 받지 못했거나 애플리케이션이 다른 네트워크 환경에서 실행 중일 수 있습니다.

# 환경 변수와 Git 프록시 상태 확인 env | grep -i proxy git config --show-origin --get-regexp 'http\..*proxy|https\..*proxy' # GitHub 연결 시험 curl -I https://github.com git ls-remote https://github.com/Homebrew/brew.git HEAD # Homebrew 진단 정보 확인 brew config

운영체제의 경로 확인 명령도 보조 자료로 사용할 수 있습니다. macOS에서는 route -n get default, Linux에서는 ip route, Windows PowerShell에서는 Get-NetRoute를 실행해 기본 경로와 인터페이스를 살펴볼 수 있습니다. 다만 TUN을 통한 실제 목적지별 처리는 규칙과 연결 상태에도 좌우되므로, 경로 출력만으로 성공 여부를 단정하지 말고 Clash 연결 로그 및 실제 요청 결과와 함께 판단하세요.

  • 연결 거부: 로컬 프록시 포트가 틀렸거나 해당 프록시 포트가 실행되지 않았을 수 있습니다. 클라이언트의 포트 표시와 코어 상태를 다시 확인하세요.
  • 이름 확인 오류: DNS 응답과 현재 DNS 설정을 확인합니다. 프록시 연결 테스트와 TUN 단독 테스트를 분리해 DNS 문제인지 라우팅 문제인지 구분하세요.
  • Git만 실패: 저장소 주소, 인증 정보, Git 전역·저장소별 프록시 설정을 확인합니다. GitHub의 SSH 주소를 사용하는 경우 HTTP 프록시 설정만으로 해결되지 않을 수 있습니다.
  • Homebrew만 실패: 셸에서 변수를 설정한 뒤 같은 터미널에서 실행했는지 확인합니다. GUI 앱이나 다른 셸에서 시작한 작업은 현재 셸의 환경 변수를 상속하지 않을 수 있습니다.
  • 접속은 되지만 느림: 노드 지연 시간과 규칙에서 선택된 경로를 확인합니다. 모든 트래픽을 프록시로 보내기보다 개발에 필요한 목적지만 프록시 그룹으로 분기하는 방법도 고려하세요.

자격 증명과 설정 파일 보호

프록시 주소에 사용자 이름이나 비밀번호를 포함하면 셸 기록이나 설정 파일에 남을 수 있습니다. 인증 정보가 필요하다면 노출 범위를 확인하고, 공유 저장소에 프록시 자격 증명을 커밋하지 마세요.

안정적으로 동작하는 구성을 확인한 뒤에는 테스트용 환경 변수를 정리하고, Git 전역 설정이 꼭 필요한지 다시 판단하세요. 조직 네트워크나 원격 개발 환경에서는 관리자가 지정한 프록시 정책을 우선해야 합니다. TUN과 앱별 프록시를 동시에 사용해야 하는 상황이라면 Clash 로그에서 중복 경유가 발생하지 않는지 확인하고, 문제가 생겼을 때 되돌릴 수 있도록 변경 사항을 기록해 두면 유지 관리가 쉬워집니다.

Clash 다운로드