Tunnel Doctor (chẩn đoán xung đột Tailscale × proxy)
Skill chẩn đoán và sửa xung đột giữa Tailscale và các công cụ proxy/VPN (Shadowrocket, Clash, Surge, OrbStack) trên macOS khi SSH, curl, docker hay DNS bị treo.
Lập trìnhNâng cao★ 1,323⑂ 212Điểm AI 9/10Cập nhật lần cuối: 8 thg 8, 2026
Skill này làm gì
- Phân loại các triệu chứng "mâu thuẫn" (ví dụ
tailscale pingOK nhưng SSH/HTTP timeout; trình duyệt trả 503 nhưng curl trả 200) thành 5 tầng xung đột: bảng route, biến môi trường HTTP proxy, system proxy, SSH ProxyCommand double tunnel, và lan truyền proxy vào VM/container. - Đưa ra lệnh kiểm tra và cách sửa cụ thể: thêm
.ts.net+100.64.0.0/10vàoNO_PROXY, cấu hìnhskip-proxycho Shadowrocket, dùngroute -n getvà MTU (1280 = Tailscale, 4064 = Shadowrocket TUN) để xác định utun nào đang thắng route, cấu hìnhdocker.jsonvớihost.internal, dùngdocker build --network host. - Bao gồm cả các lỗi khó: DNS treo ~60s do resolver phụ đã chết, TUN hijack DNS thành IP ảo
198.18.x.x, "TUN DIRECT split-brain" làm mọi site đi DIRECT sập cùng lúc, và TUN trên máy Windows kéo sập cả WSL lẫn Tailscale. - Cảnh báo rằng khi TUN đang bật thì
nc -z0.00s, ping 0.2ms hay%{remote_ip}đều là số giả; nên dùngtime_appconnectđể đo thật. - Có
scripts/quick_diagnose.pyđể tự động kiểm tra proxy env, ngoại lệ system proxy, đường direct/proxy và độ tin cậy TLS nội bộ.
Phù hợp với ai
- Lập trình viên macOS làm remote dev qua Tailscale (Mac mini, WSL, home server) trong khi luôn bật app proxy/VPN.
- Người dùng Shadowrocket/Clash/Surge bị
git pushchết chập chờn hoặcdocker pull/buildtimeout TLS. - Ai muốn quy trình debug mạng theo bằng chứng thay vì đoán mò.
Ví dụ sử dụng
- "Trình duyệt báo 503 với
http://100.x.x.x:3010nhưng curl trả 200" → xác định là lỗi bypass system proxy, hướng dẫn thêm dải CGNAT vàoskip-proxy. - "
ssh -T git@github.comOK nhưnggit pushlỗifailed to begin relaying via HTTP" → phát hiện double tunnel, bỏ ProxyCommand và chuyển sangssh.github.com:443. - "
RUN apk addtrongdocker buildlỗi Connection refused sau 0.2s" → transparent proxy của OrbStack bị TUN làm hỏng, sửa bằng--network host. - "
nslookupnhanh nhưng ssh/curl treo 60 giây" → chạy vòng lặpdig @$nsđể tìm resolver đã chết.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/daymade/claude-code-skills/HEAD/tunnel-doctor/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục tunnel-doctor từ repo GitHub daymade/claude-code-skills vào ~/.claude/skills/tunnel-doctor/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/daymade/claude-code-skills.git && mkdir -p ~/.claude/skills && cp -r claude-code-skills/tunnel-doctor ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở Terminal.
- Tải repo:
git clone https://github.com/daymade/claude-code-skills.git - Tạo thư mục skill:
mkdir -p ~/.claude/skills - Sao chép skill:
cp -r claude-code-skills/tunnel-doctor ~/.claude/skills/ - (Khuyến nghị) sao chép cả skill nền được tham chiếu:
cp -r claude-code-skills/debugging-network-issues ~/.claude/skills/ 2>/dev/null - Kiểm tra Python 3 (cho script chẩn đoán):
python3 --version - Khởi động lại Claude Code, rồi mô tả triệu chứng, ví dụ: "tailscale ping được nhưng ssh timeout".
- Vì skill có thể sửa route,
~/.zshrc,~/.ssh/configvà cấu hình app proxy, hãy sao lưu các file đó và tự đọc lại từng lệnh trước khi chạy.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT