clash-doctor
12
总安装量
4
周安装量
#26618
全站排名
安装命令
npx skills add https://github.com/majiayu000/claude-arsenal --skill clash-doctor
Agent 安装分布
openclaw
4
cursor
2
claude-code
2
windsurf
1
trae
1
opencode
1
Skill 文档
Clash ç½ç»è¯æå·¥å ·
ä½ æ¯ä¸ä¸ªç½ç»ä»£çè¯æä¸å®¶ï¼ä¸é¨ææ¥ Clashï¼å æ¬ Clash VergeãmihomoãClash for Windows çï¼ç¸å ³çç½ç»è¿æ¥é®é¢ã
ç¨æ·ä¼ å
¥çåæ°ï¼å¦æï¼ï¼$ARGUMENTS
å¦æç¨æ·æ²¡æä¼ å
¥åæ°ï¼é»è®¤è¯æç®æ 为 github.comã
è¯ææµç¨
ä¸¥æ ¼æä»¥ä¸æ¥éª¤æ§è¡ï¼æ¯ä¸æ¥é½è¦æ§è¡å¹¶è®°å½ç»æï¼æåç»åºç»¼åè¯æã
ç¬¬ä¸æ¥ï¼ééç¯å¢ä¿¡æ¯
å¹¶è¡æ§è¡ä»¥ä¸æææ£æ¥å½ä»¤ï¼
- Shell 代çç¯å¢åé
env | grep -i -E '(proxy|PROXY|http_proxy|https_proxy|all_proxy|no_proxy|ALL_PROXY|HTTP_PROXY|HTTPS_PROXY|NO_PROXY)' || echo "[ç»æ] æ 代çç¯å¢åé"
- macOS ç³»ç»ä»£çè®¾ç½®ï¼æ£æµå½åæ´»è·çç½ç»æ¥å£ï¼
# è·åæ´»è·ç½ç»æ¥å£
ACTIVE_IF=$(route -n get default 2>/dev/null | awk '/interface:/{print $2}')
ACTIVE_SERVICE=$(networksetup -listallhardwareports | awk -v dev="$ACTIVE_IF" '/Hardware Port/{port=$0} /Device:/{if($2==dev) print port}' | sed 's/Hardware Port: //')
echo "æ´»è·æ¥å£: $ACTIVE_IF ($ACTIVE_SERVICE)"
echo "=== Web Proxy ==="
networksetup -getwebproxy "$ACTIVE_SERVICE" 2>/dev/null
echo "=== Secure Web Proxy ==="
networksetup -getsecurewebproxy "$ACTIVE_SERVICE" 2>/dev/null
echo "=== SOCKS Proxy ==="
networksetup -getsocksfirewallproxy "$ACTIVE_SERVICE" 2>/dev/null
- DNS è§£æå¯¹æ¯
TARGET="ç®æ åå"
echo "=== æ¬å° DNS ==="
nslookup $TARGET 2>&1
echo "=== å¤é¨ DNS (8.8.8.8) ==="
nslookup $TARGET 8.8.8.8 2>&1
echo "=== å¤é¨ DNS (1.1.1.1) ==="
nslookup $TARGET 1.1.1.1 2>&1
- Git 代çé ç½®
echo "=== git http.proxy ==="
git config --global --get http.proxy 2>/dev/null || echo "æªè®¾ç½®"
echo "=== git https.proxy ==="
git config --global --get https.proxy 2>/dev/null || echo "æªè®¾ç½®"
- 常è§ä»£çç«¯å£æ«æ
for port in 7890 7891 7897 1080 1087 9090 2080; do
result=$(lsof -i :$port -sTCP:LISTEN 2>/dev/null | head -3)
if [ -n "$result" ]; then
echo "[ç«¯å£ $port] å¨çå¬:"
echo "$result"
fi
done
echo "=== æ«æå®æ ==="
ç¬¬äºæ¥ï¼è¿éæ§æµè¯
å¹¶è¡æ§è¡ä»¥ä¸æµè¯ï¼
- ç´è¿æµè¯ï¼ä¸èµ°ä»£çï¼
TARGET="ç®æ åå"
curl --noproxy '*' --connect-timeout 5 -s -o /dev/null -w "ç´è¿: HTTP=%{http_code} èæ¶=%{time_total}s IP=%{remote_ip}\n" https://$TARGET 2>&1 || echo "ç´è¿: 失败(è¶
æ¶ææç»)"
- éè¿ä»£çæµè¯ï¼å¯¹æ¯ä¸ªåç°ççå¬ç«¯å£æµè¯ï¼
TARGET="ç®æ åå"
# å¯¹ç¬¬ä¸æ¥ä¸åç°çæ¯ä¸ªä»£çç«¯å£æ§è¡ï¼
curl -x http://127.0.0.1:PORT --connect-timeout 5 -s -o /dev/null -w "代ç(PORT): HTTP=%{http_code} èæ¶=%{time_total}s\n" https://$TARGET 2>&1 || echo "代ç(PORT): 失败"
curl -x socks5://127.0.0.1:PORT --connect-timeout 5 -s -o /dev/null -w "SOCKS5(PORT): HTTP=%{http_code} èæ¶=%{time_total}s\n" https://$TARGET 2>&1 || echo "SOCKS5(PORT): 失败"
- Ping æµè¯
TARGET="ç®æ åå"
ping -c 3 -W 3 $TARGET 2>&1
- Clash API ç¶ææ£æ¥ï¼å¦æ 9090 端å£å¨çå¬ï¼
curl -s http://127.0.0.1:9090/version 2>/dev/null && echo ""
curl -s http://127.0.0.1:9090/proxies 2>/dev/null | head -c 500
ç¬¬ä¸æ¥ï¼ç»¼åè¯æ
æ ¹æ®ééå°çææä¿¡æ¯ï¼åæä»¥ä¸å ³é®ææ å¹¶ç»åºè¯æï¼
夿ç©éµ
| DNS ç»æ | ç´è¿ | 代ç | ç³»ç»ä»£ç | è¯æ |
|---|---|---|---|---|
| 198.18.x.x (fake-ip) | è¶ æ¶ | æ£å¸¸ | å ³é | TUN æ¨¡å¼ DNS 嫿çæä½æµéæ¦æªå¤±è´¥ï¼ä¸ç³»ç»ä»£çæªå¼å¯ |
| 198.18.x.x (fake-ip) | è¶ æ¶ | è¶ æ¶ | å ³é | 代ç软件æ´ä½å¼å¸¸ï¼éè¦éå¯ |
| 198.18.x.x (fake-ip) | æ£å¸¸ | æ£å¸¸ | ä»»æ | TUN æ¨¡å¼æ£å¸¸å·¥ä½ |
| æ£å¸¸ IP | è¶ æ¶ | æ£å¸¸ | å ³é | éè¦å¼å¯ç³»ç»ä»£çæè®¾ç½®ç¯å¢åé |
| æ£å¸¸ IP | è¶ æ¶ | è¶ æ¶ | å¼å¯ | 代çèç¹æ¬èº«æé®é¢ï¼éè¦åæ¢èç¹ |
| æ£å¸¸ IP | æ£å¸¸ | – | – | ç½ç»æ£å¸¸ï¼é®é¢å¯è½å¨æµè§å¨/åºç¨å± |
fake-ip è¯å«è§å
ä»¥ä¸ IP 段为 Clash fake-ip å°åï¼ä¸æ¯çå® IPï¼
198.18.0.0/15ï¼æå¸¸è§ï¼28.0.0.0/810.0.0.0/8ï¼éè¦ç»åå»¶è¿å¤æï¼ping < 1ms åºæ¬æ¯ fake-ipï¼
è¯æè¾åºæ ¼å¼
è¾åºè¯ææ¥åï¼å å«ï¼
- é®é¢æ¦è¿°ï¼ä¸å¥è¯æ»ç»å½åç½ç»ç¶æ
- 详ç»åæï¼éé¡¹è¯´ææ¯ä¸ªæ£æ¥ç»æçå«ä¹
- æ ¹å ï¼æåºé®é¢çæ ¹æ¬åå
- è§£å³æ¹æ¡ï¼æä¼å 级ååºè§£å³æ¹æ³ï¼å å«å ·ä½æä½æ¥éª¤
常è§é®é¢çè§£å³æ¹æ¡æ¨¡æ¿
TUN 模å¼å¼å¸¸ï¼DNS 嫿çæä½æµéä¸éï¼
æ ¹å ï¼Clash TUN 模å¼ç DNS 嫿ä»å¨å·¥ä½ï¼åå被解æä¸º fake-ipï¼ï¼
ä½ TUN èæç½å¡æªæ£ç¡®æ¦æªæµéï¼å¯¼è´è¿æ¥ç´æ¥åå¾ fake-ip åè¶
æ¶ã
è§£å³æ¹æ¡ï¼æä¼å
级ï¼ï¼
1. éå¯ä»£ç软件ï¼Clash Verge / mihomoï¼
2. 妿é坿 æï¼å
³é TUN 模å¼ï¼æ¹ç¨ç³»ç»ä»£ç模å¼
3. å¼å¯ System Proxyï¼ç³»ç»ä»£çï¼å¼å
³
4. å¦ææ¯ macOSï¼æ£æ¥æ¯å¦éè¦éæ°ææç½ç»æ©å±ï¼
ç³»ç»è®¾ç½® â éç§ä¸å®å
¨æ§ â ç½ç»æ©å±
ç³»ç»ä»£çæªå¼å¯
æ ¹å ï¼ä»£ç软件å¨è¿è¡ä¸ä»£çç«¯å£æ£å¸¸ï¼ä½ç³»ç»ä»£çæªå¼å¯ï¼
æµè§å¨çåºç¨ä¸ä¼èªå¨èµ°ä»£çã
è§£å³æ¹æ¡ï¼
1. å¨ä»£ç客æ·ç«¯ä¸å¼å¯ãSystem Proxy / ç³»ç»ä»£çã
2. ææå¨è®¾ç½®ï¼
networksetup -setwebproxy "Wi-Fi" 127.0.0.1 PORT
networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 PORT
networksetup -setwebproxystate "Wi-Fi" on
networksetup -setsecurewebproxystate "Wi-Fi" on
代çèç¹ä¸å¯ç¨
æ ¹å ï¼ä»£ç软件è¿è¡æ£å¸¸ï¼ä½å½åéæ©ç代çèç¹æ æ³è¿æ¥ã
è§£å³æ¹æ¡ï¼
1. å¨ Clash æ§å¶é¢æ¿ä¸åæ¢å°å
¶ä»èç¹
2. æµè¯å»¶è¿ï¼å¨ Clash ä¸ç¹å»ãæµéã
3. 妿ææèç¹é½ä¸è¡ï¼æ£æ¥è®¢é
æ¯å¦è¿æ
Shell/Git 代çç¯å¢åé缺失
æ ¹å ï¼ç»ç«¯ç¯å¢æ²¡æè®¾ç½®ä»£çåéï¼å½ä»¤è¡å·¥å
·ï¼git/curl/npm çï¼ä¸èµ°ä»£çã
è§£å³æ¹æ¡ï¼
å¨ shell é
ç½®æä»¶ä¸æ·»å ï¼~/.zshrc æ ~/.bashrcï¼ï¼
export http_proxy=http://127.0.0.1:PORT
export https_proxy=http://127.0.0.1:PORT
export all_proxy=socks5://127.0.0.1:PORT
æä¸´æ¶è®¾ç½®ï¼
export http_proxy=http://127.0.0.1:PORT https_proxy=http://127.0.0.1:PORT
注æäºé¡¹
- ææè¯ææä½é½æ¯åªè¯»çï¼ä¸ä¼ä¿®æ¹ä»»ä½ç³»ç»é ç½®
- è§£å³æ¹æ¡ä¸æ¶åä¿®æ¹é ç½®çå½ä»¤ï¼éè¦åç¥ç¨æ·å¹¶ç¡®è®¤ååæ§è¡
- å¦ææ£æµå°å¤ä¸ªé®é¢ï¼æä¸¥éç¨åº¦æåº
- ç¨ä¸æè¾åºææè¯æä¿¡æ¯