Clash+확장이 겹쳤을 때 생기는 일
많은 Clash 데스크톱은 ‘시스템 프록시 끄기/켜기’나 TUN으로 전체·브라우저 트래픽을 한 번 밀어 넣으려고 합니다. 그런데 SwitchyOmega·비슷한 브라우저 확장이 기본 PROXY 프로필로 127.0.0.1:7890(또는 SOCKS5)을 다시 쓰면, 같은 흐름이 두 겹으로 쌓이거나(이중) 프록시가 다시 자기 쪽 127.0.0.1로 붙는 형태(루프)가 뜨기 쉽습니다. ‘인터넷이 안 돼’라고 TLS·timeout만 볼 게 아니라, TUN·시스템·확장 세 층이 동시에 개입하는지 먼저 떠올리는 편이 낫습니다. macOS는 네트워크·시스템 프록시 UI와 TUN/NE가 겹칠 때 특히 “한 탭은 되고 나머지는” 같은 불일치를 자주 냅니다.
대표 규칙(단순화): 이미 시스템이 Clash(로컬 mixed)를 쓰게 되어 있으면, Switchy 쪽은 다시 127.0.0.1에 붙이지 말고 시스템(또는 Direct)에 맡기는 편이 안전합니다. “한 축”만 Clash, 나머지는 투과—이 흐름이 Clash 쪽 정책과 맞는지(어떤 요청이 실제로 코어에 도달하는지)는 연결·로그로 대조하세요. 정책·회사·학교 허용 범위 밖이면 적용 대상이 아닙니다.
이중 프록시·loopback(루프) 그림
(A) 시스템/브라우저 → Clash 127.0.0.1:7890 (정상) vs (B) (A) 위에 확장이 또 HTTP CONNECT를 같은 127.0.0.1:7890에 보내 (B)에서 한 번, (A)에서 한 번… 같은 포트·같은 경로에 중첩이 생기는 경우, 일부 앱/페이지는 멈추거나, 내부 localhost 개발 주소·루트 인증·웹뷰가 “도달을 못 함”처럼 보이기도 합니다(실제는 루프/타임아웃). loopback을 용어로 쓰면, 127.0.0.1을 출구/입구에 반복하도록 묶이는 자기참조 류에 가깝다고 이해하면 됩니다. 정확한 TCP 상태는 같은 포트 이중·WSL2–호스트 절차와 겹쳐 혼란을 키우기도 합니다.
PAC 스크립트·자동 감지가 또 “프록시 있음”을 부르면, 시스템엔 없다고 보이는 앱·확장과 서로 다른 쪽으로 갈라져 동일 URL이 무한 리다이렉트·스피너에 걸릴 수 있습니다. 윈도우 11·Clash Verge 트레이의 ‘시스템 프록시’·‘TUN’·확장 아이콘을 한 화면에 두고, 한 번에 끄는 습관이 도움됩니다.
SwitchyOmega: ‘직접’·PAC·시스템 일치
SwitchyOmega(및 이와 유사)에서 권하는 실무 흐름: (1) 시나리오·우측상단 드롭다운을 system proxy·직접(Direct)·‘시스템이 정한 대로’에 가장 가깝게 맞추거나, (2) 전역 PROXY를 127.0.0.1에 고정한 프로필을 잠시 끄기. ‘자동’·PAC·스마트·룰 리스트는 Clash 규칙이 이미 하고 있으면 이중으로 도메인을 두 번 쳐다보게 만듭니다. (3) 개발·프로필·시크릿이 다르면 ‘시크릿에선 Direct’·‘이 사이트만’ 규칙이 127에 붙는지 반드시 확인—이때 Clash 끄고도 브라우저만 빈 망인 경우는, 시스템/확장 잔류와 흡사합니다. ‘확장만 꺼도 된다’ vs ‘Clash TUN/시스템만 쓰고 확장은 Direct’—어느 쪽이 합의된 구성에 맞는지 클라이언트·워크숍 팀과 맞춰 두면 문서/온콜이 짧아집니다.
크롬·엣지 chrome://extensions에서 확장을 끄는 것이 가장 빠른 A/B이며, A/B 뒤에 127.0.0.1·로컬 개발·사내 포털이 동시에 복구되는지 보면, 원인이 ‘이중/루프’ 쪽이었는지 감이 옵니다. Web UI·연결 로그에서 127.0.0.1 → 다시 127.0.0.1 같은 이상 체이닝이 보이지 않는다면, ‘확장 층’을 걷는 편이 맞는 경우가 많습니다.
Clash: 시스템 프록시·TUN·mixed-port
Clash mixed-port가 7890이면, 시스템/클라가 그 포트에 맞게 써 있어야 합니다(포트 불일치는 “연결 끊김”·“아무 응답 없음”으로 자주 돌아옴). TUN 켬·끔 전후·시스템 프록시 ON/OFF는 mac TUN/프록시·TUN 심화에 정리한 것처럼, OS/브라우저가 어느 인터페이스로 나가느냐가 달라집니다. “시스템+확장 둘 다 7890”이면 한쪽을 Direct로 두는 편이 정석이고, 둘 다 PROXY 느낌이면 포트·PID·이중 리스닝도 같이 의심합니다. Meta·DNS는 fake-ip·필터와 붙이면, ‘페이지는 뜨는데 리소스만’ 같은 증상은 DNS 축—그때는 본 글과 구분합니다.
증상: 로컬·127·무한 스피너
· http://127.0.0.1·localhost·192.168.x.x 같은 기기를 붙는 주소는, 프록시가 “그대로 127/사설로 다시 내보내”면서 기대와 달리 막힌다고 느껴질 수 있음(브라우저·Clash 예외/직결·Private Address 직접). · 외부 사이트만 영원히 로딩(스피너) + 확장/시스템/Clash 셋을 켰을 때—한 축(보통 확장 127 또는 이중 PAC)을 끄면 갑자기 풀리는지 확인. · DevTools/타임라인에서 CONNECT가 127.0.0.1에 여러 겹. · WebRTC·IPv6·DNS 누수와 ‘비슷해 보이나’ 확인 사이트·계층이 다름(그 글 절차로 걸러낼 것).
Win/macOS: OS·브라우저·확장 우선순위
Windows 11 설정 → 네트워크·프록시(HTTP/스크립트)와 Clash 트레이·서드파티(구 CFW)의 누가 시스템 키를 쓰는지 보고, 둘 이상이 같은 값을 경쟁하면 ‘시스템=Clash, 확장=또 127’ 조합이 잘 섞임. macOS는 Wi-Fi·웹·프록시(HTTP, HTTPS, SOCKS, PAC)·TUN(NE)가 한목록에 잡힌다. 시스템 꺼짐인데 Clash TUN/클라가 켰다·끄다 하면, Safari·크롬 각각 “시스템 끌 것인가, 확장 끌 것인가”를 확실히(아울 mac TUN).
Firefox는 about:preferences의 프록시가 ‘OS 설정 사용’/‘수동’에 따라 동작이 달라 Switchy+시스템+Clash 세 축을 따로 봄이 좋다. (브라우저·버전·정책에 따라 '시스템' 의미는 다르며, 위는 개념 정리이며, 조직 정책이 잠그면 UI가 막힐 수 있음.)
30초 점검·클릭 순서(실측)
① Switchy→ 직접/시스템에 가깝게 ② 시크릿 창(확장 기본 꺼짐)로 같은 URL ③ curl -I·터미널(확장 없음)로 같은 호스트(합법·허용) ④ Clash 트레이 ‘시스템 프록시’/‘TUN’ 한 모드씩 ⑤ 127·PAC·룰 한 겹씩 제거 ⑥ Web UI·로그에 기대 정책名이 찍히는지. 이 순서로 대부분 ‘누가 이중이었는지’가 잡힙니다. Docker·하이브리드 WSL·내부 API는 WSL2·Docker 글과 겹쳐 보일 수 있으나, 브라우저만 꼬이면 먼저 확장+시스템+Clash 3곳이 낫습니다. 구독·캐시·403은 다른 축입니다.
# Simplify: one path only
# System/TUN (Clash) => browser extension => Direct/Use system
# Do NOT: PROXY 127.0.0.1:7890 on top of system proxy already 127.0.0.1:7890
(위 #는 개념 주석; 실제 UI 라벨·언어는 본인 확장·브라우저 버전에 맞게 적용하세요.)
준수
맺음말
Clash를 시스템/TUN으로 켜 둔 뒤 SwitchyOmega·유사 브라우저 프록시로 127.0.0.1·PAC를 또 쌓으면, 이중·loopback·무한 로딩·로컬/사설 주소 이상이 자주 납니다. 한 축(대개 확장의 PROXY)을 직접/시스템으로 돌리고, OS·클라·mixed-port를 TUN/시스템 문서와 맞추면 반복이 줄어듭니다. 둘 다 꼭 필요하다면 ‘누가 규칙·출구의 주인인가’—Clash 규칙이면 확장은 투과, 반대로 확장만 쓰면 Clash 시스템을 잠시 내리는 식—을 팀·본인 한 가지로 못 박는 편이 안전합니다.
연결·TLS·구독으로 헷갈릴 때 timeout·로그와 축을 나누고, 127/확장 이슈는 브라우저 A/B로 먼저 끊어 보세요.
→ Clash V.CORE를 사이트에서 내려받고, TUN/시스템/로그를 한 데서 정리한 뒤, 확장은 직접에 두는 구성이 실무에서 덜 꼬입니다(합법·본인·허가된 PC 전제).