使用 Laravel Valet 进行本地开发时,默认会将站点域名映射为 *.test
。在启用了 Clash(或 Clash Verge)代理的情况下,浏览器请求 *.test
会被转发到代理通道,导致本地站点无法正常访问。
在尝试了很多方法后,我发现仅仅修改 Clash 配置不足以解决问题。追踪请求发现,浏览器始终遵循系统级代理,而系统层面并没有把 *.test
列入直连名单。于是只能双管齐下:同时改 Clash 规则 + macOS 代理设置。下面就是我踩坑后的完整解决方案,希望能帮到同样的你。
修改 Clash 配置

在 Clash / Clash Verge 的代理配置文件中,添加如下设置 :
# rules中增加直接放行 *.test 的规则
rules:
- 'DOMAIN-SUFFIX,test,DIRECT'
# fake-ip 过滤中增加 +.test,防止 Clash 对 *.test 进行 fake-ip 映射
fake-ip-filter:
- +.lan
- +.local
- +.test
# 其他保留项……
如果你在用 Clash Verge,再把 *.test
加到 system_proxy_bypass
:
system_proxy_bypass: 127.0.0.1/8,127.0.0.1,*.test
改完别忘了重启 Clash 客户端。接下来,还需要对 macOS 系统代理配置进行调整。
配置 macOS 系统代理绕过名单
macOS 的网络服务会将系统代理信息下发给各应用。即使 Clash 中已有绕过规则,浏览器依旧以系统代理列表为准。我们可以通过查看当前 Wi-Fi 接口的 Proxy Bypass 列表来确认这一点,执行命令:
networksetup -getproxybypassdomains "Wi-Fi"
输出中没有 *.test
,说明访问 *.test
走的是代理。我们需要写入绕过域名:
sudo networksetup -setproxybypassdomains "Wi-Fi" \
"127.0.0.1/8" "127.0.0.1" "*.test"

最后我们来验证一下。回到终端随便访问一个Valet 站点:

只要响应头秒回且没有代理延迟,你就大功告成 🎉