<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>AI编程 on 猫猫鱼的小窝</title>
    <link>https://csdn.fjh1997.top/tags/ai%E7%BC%96%E7%A8%8B/</link>
    <description>Recent content from 猫猫鱼的小窝</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    
    <managingEditor>xxx@example.com (catcatyu)</managingEditor>
    <webMaster>xxx@example.com (catcatyu)</webMaster>
    
    <copyright>本博客所有文章除特别声明外，均采用 BY-NC-SA 许可协议。转载请注明出处！</copyright>
    
    <lastBuildDate>Tue, 02 Jun 2026 12:00:00 +0800</lastBuildDate>
    
    
    <atom:link href="https://csdn.fjh1997.top/tags/ai%E7%BC%96%E7%A8%8B/atom.xml" rel="self" type="application/rss&#43;xml" />
    

    
    

    <item>
      <title>Claude Code与Codebuddy Code配置自动审批与无代理fetch全攻略</title>
      <link>https://csdn.fjh1997.top/posts/73921.html</link>
      <pubDate>Tue, 02 Jun 2026 12:00:00 &#43;0800</pubDate>
      <author>xxx@example.com (catcatyu)</author>
      <guid>https://csdn.fjh1997.top/posts/73921.html</guid>
      <description>
        <![CDATA[<h1>Claude Code与Codebuddy Code配置自动审批与无代理fetch全攻略</h1><p>作者：catcatyu（xxx@example.com）</p>
        
          <p>用 AI 编程工具最烦的两件事：一是每次执行命令都要点&quot;同意&quot;，二是 WebFetch/WebSearch 在国内网络环境下动不动就超时。本文分别介绍 Claude Code 和 Codebuddy Code 如何配置自动审批权限，以及如何让 fetch 类命令在无代理（翻墙）情况下正常工作。</p>
<h2 id="一claude-code-配置">
<a class="header-anchor" href="#%e4%b8%80claude-code-%e9%85%8d%e7%bd%ae"></a>
一、Claude Code 配置
</h2><p>Claude Code 的配置文件位于 <code>~/.claude/settings.json</code>（Windows 为 <code>%USERPROFILE%\.claude\settings.json</code>）。</p>
<h3 id="11-自动审批无需手动确认">
<a class="header-anchor" href="#11-%e8%87%aa%e5%8a%a8%e5%ae%a1%e6%89%b9%e6%97%a0%e9%9c%80%e6%89%8b%e5%8a%a8%e7%a1%ae%e8%ae%a4"></a>
1.1 自动审批（无需手动确认）
</h3><p>Claude Code 的权限系统核心是 <code>defaultMode</code>，它决定了工具调用的默认审批行为。将其设为 <code>bypassPermissions</code> 即可跳过所有权限弹窗：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;permissions&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;defaultMode&#34;</span><span class="p">:</span> <span class="s2">&#34;bypassPermissions&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;allow&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Bash(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;WebFetch&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;WebSearch&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Edit(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Write(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Read(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;NotebookEdit(*)&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><strong><code>defaultMode</code> 的可选值</strong>（这是 Claude Code 权限系统的关键，很多人只配了 <code>allow</code> 却没生效，就是缺了这个）：</p>
<table>
  <thead>
      <tr>
          <th>模式</th>
          <th>行为</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>default</code></td>
          <td>标准行为：首次使用每个工具时弹窗确认</td>
      </tr>
      <tr>
          <td><code>acceptEdits</code></td>
          <td>自动接受文件编辑和常见文件操作（mkdir、touch、mv、cp 等）</td>
      </tr>
      <tr>
          <td><code>plan</code></td>
          <td>计划模式：只读，不编辑源文件</td>
      </tr>
      <tr>
          <td><code>auto</code></td>
          <td>自动审批工具调用，但有后台安全检查（研究预览功能）</td>
      </tr>
      <tr>
          <td><code>dontAsk</code></td>
          <td>未在 <code>allow</code> 中预审批的工具自动拒绝（而非弹窗询问）</td>
      </tr>
      <tr>
          <td><strong><code>bypassPermissions</code></strong></td>
          <td><strong>跳过所有权限弹窗</strong>，仅保留 <code>rm -rf /</code> 和 <code>rm -rf ~</code> 的硬编码熔断保护</td>
      </tr>
  </tbody>
</table>
<p><strong>为什么 <code>defaultMode</code> 才是关键</strong>：只配 <code>allow</code> 列表而不设 <code>defaultMode</code>，Claude Code 仍然会对未匹配的工具弹出确认框。<code>bypassPermissions</code> 是全局开关，<code>allow</code> 列表则用于更细粒度的控制（如只允许特定命令 <code>Bash(npm run *)</code> 而非全部）。两者配合使用效果最佳。</p>
<blockquote>
<p>⚠️ <code>bypassPermissions</code> 会跳过对 <code>.git</code>、<code>.claude</code>、<code>.vscode</code> 等目录的写入保护，建议仅在隔离环境（容器、虚拟机）中使用。</p>
</blockquote>
<p>如果你还想跳过危险模式的二次确认提示，再加上：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;skipDangerousModePermissionPrompt&#34;</span><span class="p">:</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="12-让-fetch-在国内网络下可用">
<a class="header-anchor" href="#12-%e8%ae%a9-fetch-%e5%9c%a8%e5%9b%bd%e5%86%85%e7%bd%91%e7%bb%9c%e4%b8%8b%e5%8f%af%e7%94%a8"></a>
1.2 让 Fetch 在国内网络下可用
</h3><p>Claude Code 的 WebFetch 和 WebSearch 需要访问外部 API，在国内直连经常超时。解决方法是配置 HTTP 代理环境变量，在 <code>settings.json</code> 的 <code>env</code> 字段中设置：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;env&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;http_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://127.0.0.1:10808&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;https_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://127.0.0.1:10808&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p>其中 <code>10808</code> 是你本地代理客户端（如 Clash/V2Ray）的 HTTP 代理端口，请按实际情况修改。</p>
</blockquote>
<p>另外，如果你使用的代理存在自签证书，还需要设置跳过 TLS 验证（启动 Claude Code 前在终端执行）：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="nv">$env:NODE_TLS_REJECT_UNAUTHORIZED</span> <span class="p">=</span> <span class="s2">&#34;0&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="13-其他实用配置">
<a class="header-anchor" href="#13-%e5%85%b6%e4%bb%96%e5%ae%9e%e7%94%a8%e9%85%8d%e7%bd%ae"></a>
1.3 其他实用配置
</h3><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;model&#34;</span><span class="p">:</span> <span class="s2">&#34;opus&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;theme&#34;</span><span class="p">:</span> <span class="s2">&#34;dark&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;autoUpdates&#34;</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;skipWebFetchPreflight&#34;</span><span class="p">:</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li><code>model</code>：指定默认模型</li>
<li><code>skipWebFetchPreflight</code>：跳过 WebFetch 的预检请求（OPTIONS），某些代理环境下 preflight 会被拦截，开启后直接发 GET 请求</li>
</ul>
<h3 id="14-claude-code-完整配置参考">
<a class="header-anchor" href="#14-claude-code-%e5%ae%8c%e6%95%b4%e9%85%8d%e7%bd%ae%e5%8f%82%e8%80%83"></a>
1.4 Claude Code 完整配置参考
</h3><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;enabledPlugins&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;rust-analyzer-lsp@claude-plugins-official&#34;</span><span class="p">:</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl">  <span class="p">},</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;env&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;http_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://127.0.0.1:10808&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;https_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://127.0.0.1:10808&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="p">},</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;model&#34;</span><span class="p">:</span> <span class="s2">&#34;opus&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;theme&#34;</span><span class="p">:</span> <span class="s2">&#34;dark&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;autoUpdates&#34;</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;skipWebFetchPreflight&#34;</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;skipDangerousModePermissionPrompt&#34;</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;permissions&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;defaultMode&#34;</span><span class="p">:</span> <span class="s2">&#34;bypassPermissions&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;allow&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Bash(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;WebFetch&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;WebSearch&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Edit(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Write(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Read(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;NotebookEdit(*)&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="二codebuddy-code-配置">
<a class="header-anchor" href="#%e4%ba%8ccodebuddy-code-%e9%85%8d%e7%bd%ae"></a>
二、Codebuddy Code 配置
</h2><p>Codebuddy Code 的配置文件位于 <code>~/.codebuddy/config.json</code>（Windows 为 <code>%USERPROFILE%\.codebuddy\config.json</code>）。</p>
<h3 id="21-自动审批">
<a class="header-anchor" href="#21-%e8%87%aa%e5%8a%a8%e5%ae%a1%e6%89%b9"></a>
2.1 自动审批
</h3><p>Codebuddy Code 同样采用 <code>defaultMode</code> + <code>allow</code> 白名单的权限模型，配置方式与 Claude Code 一致：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;permissions&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;defaultMode&#34;</span><span class="p">:</span> <span class="s2">&#34;bypassPermissions&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;allow&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Bash(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;WebFetch&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;WebSearch&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Edit(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Write(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Read(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;NotebookEdit(*)&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li><code>defaultMode: &quot;bypassPermissions&quot;</code> 是关键全局开关，跳过所有权限审批</li>
<li><code>allow</code> 列表定义了具体允许的工具操作，与 Claude Code 的写法一致</li>
</ul>
<h3 id="22-让-fetch-正常工作">
<a class="header-anchor" href="#22-%e8%ae%a9-fetch-%e6%ad%a3%e5%b8%b8%e5%b7%a5%e4%bd%9c"></a>
2.2 让 Fetch 正常工作
</h3><p>和 Claude Code 类似，在 <code>env</code> 字段中配置代理：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;env&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;http_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://127.0.0.1:10808&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;https_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://127.0.0.1:10808&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>如果代理有自签证书问题，启动前同样需要设置：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="nv">$env:NODE_TLS_REJECT_UNAUTHORIZED</span> <span class="p">=</span> <span class="s2">&#34;0&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="23-codebuddy-code-完整配置参考">
<a class="header-anchor" href="#23-codebuddy-code-%e5%ae%8c%e6%95%b4%e9%85%8d%e7%bd%ae%e5%8f%82%e8%80%83"></a>
2.3 Codebuddy Code 完整配置参考
</h3><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;env&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;http_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://127.0.0.1:10808&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;https_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://127.0.0.1:10808&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="p">},</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;permissions&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;defaultMode&#34;</span><span class="p">:</span> <span class="s2">&#34;bypassPermissions&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;allow&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Bash(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;WebFetch&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;WebSearch&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Edit(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Write(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;Read(*)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="s2">&#34;NotebookEdit(*)&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="三无代理环境下的替代方案">
<a class="header-anchor" href="#%e4%b8%89%e6%97%a0%e4%bb%a3%e7%90%86%e7%8e%af%e5%a2%83%e4%b8%8b%e7%9a%84%e6%9b%bf%e4%bb%a3%e6%96%b9%e6%a1%88"></a>
三、无代理环境下的替代方案
</h2><p>如果你没有本地代理客户端，还有几种方式让 Fetch 生效：</p>
<h3 id="方案-a使用系统代理">
<a class="header-anchor" href="#%e6%96%b9%e6%a1%88-a%e4%bd%bf%e7%94%a8%e7%b3%bb%e7%bb%9f%e4%bb%a3%e7%90%86"></a>
方案 A：使用系统代理
</h3><p>如果公司/学校网络有统一代理，直接把代理地址填入 <code>env</code> 即可：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;env&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;http_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://proxy.company.com:8080&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;https_proxy&#34;</span><span class="p">:</span> <span class="s2">&#34;http://proxy.company.com:8080&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="方案-bcloudflare-worker-反代">
<a class="header-anchor" href="#%e6%96%b9%e6%a1%88-bcloudflare-worker-%e5%8f%8d%e4%bb%a3"></a>
方案 B：Cloudflare Worker 反代
</h3><p>对于 WebFetch 抓取特定网站的场景，可以部署一个 Cloudflare Worker 作为反向代理，然后在工具中直接访问 Worker 地址，无需翻墙。具体方法参考之前的<a href="https://blog.csdn.net/fjh1997/article/details/135051515" target="_blank" rel="noopener noreferrer nofollow">文章</a>
。</p>
<h3 id="方案-c跳过-preflight-请求">
<a class="header-anchor" href="#%e6%96%b9%e6%a1%88-c%e8%b7%b3%e8%bf%87-preflight-%e8%af%b7%e6%b1%82"></a>
方案 C：跳过 Preflight 请求
</h3><p>部分代理环境会拦截 OPTIONS 预检请求导致 WebFetch 失败。Claude Code 可设置：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;skipWebFetchPreflight&#34;</span><span class="p">:</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Codebuddy Code 中同样有类似配置项，开启后直接发送 GET 请求，绕过 preflight。</p>
<h2 id="四安全提醒">
<a class="header-anchor" href="#%e5%9b%9b%e5%ae%89%e5%85%a8%e6%8f%90%e9%86%92"></a>
四、安全提醒
</h2><p>自动审批模式虽然方便，但也意味着 AI 工具可以不经确认地执行任何命令、读写任何文件。建议：</p>
<ol>
<li><strong>仅在受控环境中使用</strong>，不要在生产服务器上开启</li>
<li><strong>定期检查操作日志</strong>，确认没有误操作</li>
<li><strong>敏感目录可以用 <code>deny</code> 列表排除</strong>，例如：
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;permissions&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;defaultMode&#34;</span><span class="p">:</span> <span class="s2">&#34;bypassPermissions&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;allow&#34;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&#34;Bash(*)&#34;</span><span class="p">,</span> <span class="s2">&#34;Read(*)&#34;</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;deny&#34;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&#34;Bash(rm -rf /*)&#34;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ol>
<hr>
<p>配置完成后，AI 编程助手就能丝滑地自动执行命令和访问网络了，再也不用频繁点确认了。</p>

        
        <hr><p>本文2026-06-02首发于<a href='https://csdn.fjh1997.top/'>猫猫鱼的小窝</a>，最后修改于2026-06-02</p>]]>
      </description>
      
    </item>
    
  </channel>
</rss>
