터널 닥터 (Tailscale·프록시 충돌 진단)
macOS에서 Tailscale과 Shadowrocket·Clash·Surge·OrbStack이 충돌해 SSH·curl·docker·DNS가 멈출 때 원인 계층을 짚어 고쳐주는 네트워크 진단 스킬.
개발·코딩고급★ 1,323⑂ 212AI 점수 9/10마지막 업데이트: 2026. 8. 8.
무엇을 해주나
tailscale ping은 되는데 SSH/HTTP는 타임아웃, 브라우저는 503인데 curl은 200 같은 모순된 증상을 5개 충돌 계층(라우트 테이블 / HTTP 환경변수 / 시스템 프록시 / SSH ProxyCommand 이중 터널 / VM·컨테이너 프록시 전파)으로 분류합니다.- 증상별로 확인 명령과 정확한 수정안을 제시합니다:
NO_PROXY에.ts.net·100.64.0.0/10추가, Shadowrocketskip-proxy설정,route -n get으로 utun 소유자 확인(MTU 1280=Tailscale, 4064=Shadowrocket), OrbStackdocker.json에host.internal프록시,docker build --network host등. - DNS 계층 문제(60초 지연,
198.18.x.x가짜 IP 하이재킹, 죽은 supplemental resolver)와 "TUN DIRECT 반쪽 마비" 같은 고급 실패 모드까지 다룹니다. - TUN이 켜진 상태에서
nc -z 0.00s, 0.2ms ping,%{remote_ip}같은 측정값이 거짓이라는 점을 경고하고, 대신time_appconnect등 신뢰 가능한 지표를 알려줍니다. scripts/quick_diagnose.py로 환경변수·시스템 프록시 예외·직결/프록시 경로·로컬 TLS 신뢰를 한 번에 자동 점검합니다.
이런 분께 추천
- macOS에서 Tailscale로 원격 개발(맥미니, WSL, 홈서버)하면서 프록시/VPN 앱을 상시 켜두는 개발자
- Shadowrocket·Clash·Surge 환경에서
git push가 간헐적으로 죽거나docker pull/build가 TLS 타임아웃 나는 분 - 네트워크 이슈를 감으로 추측하지 않고 증거 기반으로 계층을 좁혀가는 절차를 원하는 분
활용 예시
- "브라우저에서
http://100.x.x.x:3010은 503인데 curl은 200이야" → 시스템 프록시 우회 문제로 판정하고skip-proxy에 CGNAT 대역 추가를 안내. - "
ssh -T git@github.com은 되는데git push가failed to begin relaying via HTTP로 실패해" → ProxyCommand 이중 터널 진단 후ssh.github.com:443구성으로 전환. - "
docker build의RUN apk add가 0.2초 만에 Connection refused" → OrbStack 투명 프록시 파손을 확인하고--network host또는docker.json수정 적용. - "
nslookup은 즉시인데 ssh/curl은 60초 멈춤" → resolver별 이분 탐색으로 죽은 supplemental resolver를 특정.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/daymade/claude-code-skills/HEAD/tunnel-doctor/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 daymade/claude-code-skills 의 tunnel-doctor 폴더를 내 ~/.claude/skills/tunnel-doctor/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/daymade/claude-code-skills.git && mkdir -p ~/.claude/skills && cp -r claude-code-skills/tunnel-doctor ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 엽니다.
- 스킬 저장소를 내려받습니다:
git clone https://github.com/daymade/claude-code-skills.git - 스킬 폴더를 만듭니다:
mkdir -p ~/.claude/skills - 이 스킬만 복사합니다:
cp -r claude-code-skills/tunnel-doctor ~/.claude/skills/ - (권장) 함께 참조되는 기본 스킬도 있으면 복사합니다:
cp -r claude-code-skills/debugging-network-issues ~/.claude/skills/ 2>/dev/null python3 --version으로 파이썬3이 있는지 확인합니다(자동 진단 스크립트용).- Claude Code를 재시작한 뒤 "Tailscale은 ping 되는데 SSH가 타임아웃돼"처럼 증상을 말하면 스킬이 발동합니다.
- 라우팅·
~/.zshrc·~/.ssh/config·프록시 앱 설정을 수정할 수 있으니, 적용 전 해당 파일을 백업하고 제안된 명령을 직접 검토하세요.
GitHub에서 원본 보기 ↗라이선스: MIT