2026年8月9日 星期日

Claude Code 設定 Sandbox (Windows)

claude code 支援 sandbox 已經一段時間了,對於 linux 與mac 非常友善,windows 環境就

需要費點心力,紀錄一下...



一聽說 claude code 推出 sandbox 就很興奮,立刻去試用,但是輸入關鍵字啥都沒有



是的 windows 環境需要透過 WSL2


詢問AI 如何安裝


1. 安裝 WSL2 + Ubuntu

用系統管理員身分開啟 PowerShell 或 Windows Terminal,執行:

powershell


> wsl –install


這個指令會自動:

  • 啟用 WSL2 所需的 Windows 功能(虛擬機器平台、Windows 子系統 for Linux)

  • 安裝預設的 Ubuntu 發行版

  • 安裝完成後通常會要求重新開機

2. 重開機後的設定

重開機後,Ubuntu 會自動開啟一次讓你設定:

  • 建立一組 Linux 使用者名稱 / 密碼(跟 Windows 帳號無關,可以自訂)

3. 確認安裝成功

在 PowerShell 執行:

powershell


> wsl -l -v

應該會看到類似:

NAME      STATE   VERSION

Ubuntu    Running 2


確認 VERSION 是 2(不是 1),/sandbox 功能需要 WSL2。

4. 回到 Windows Terminal

重新開啟 Windows Terminal,下拉選單這時應該就會出現 Ubuntu 這個新分頁選項了。


開啟 Ubuntu


接著要切換目錄到專案,由於WSL/Ubuntu 裡,Windows 的磁碟機會掛載在 /mnt/ 底下,規則是: 

/mnt/專案目錄(d:\ 需要換成 d/)


故若專案放在 d:\project\payment,對應的指令就會是(若目錄有中文,請使用 “” 包起來)


cd “/mnt/d/project/payment”



但此時執行 claude 還是出錯,出現 not found


詢問AI後,說明雖然我之前有安裝 node ,但是那是在 windows 環境,需要在 WSL/Ubuntu 

裡重新安裝


1.先確認 WSL 裡有沒有裝 Node.js: 


> node -v

如果顯示 not found,需要先裝 Node(或讓 Claude Code 的安裝腳本自動附帶 


2.官方建議用 curl 安裝 


> curl -fsSL https://claude.ai/install.sh | bash



若WSL 裡沒有裝 Node.js。裝 Node 最推薦的方式是用 nvm


1. 安裝 nvm 


> curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash


2. 讓 nvm 生效(安裝完成後,關掉重開終端機分頁,或執行)


> source ~/.bashrc


3. 用 nvm 安裝 Node.js LTS 版本


> nvm install --lts


4. 確認安裝成功


> node -v

   npm -v



5. 接著安裝 Claude Code 


> curl -fsSL https://claude.ai/install.sh | bash


6. 開新分頁或重新整理 PATH,確認抓到的是 WSL 版本


> hash -r

   which claude

   claude --version



開啟 Ubuntu 終端機分頁,輸入 /sandbox 還是出錯,畫面上看起來有三個相依套件要安裝






1. 安裝 bubblewrap(沙盒核心) 


> sudo apt update

   sudo apt install bubblewrap -y



2. 安裝 socat(網路控制輔助工具)


> sudo apt install socat -y


3. 安裝 seccomp filter(阻擋 unix domain socket 用)


> npm install -g @anthropic-ai/sandbox-runtime


全部裝完後,回到 Claude Code 裡再次執行,輸入 sandbox 指令,應該就可以正常

但是還是出錯了,再次詢問 AI,說明 settings.json 檔案中需要設定路徑


執行第二個指令看看套件裡實際有哪些檔案


> ls -la /home/usename/.nvm/versions/node/v24.19.0/lib/node_modules/@anthropic-ai/sandbox-runtime/

> find /home/username/.nvm/versions/node/v24.19.0/lib/node_modules/@anthropic-ai/sandbox-runtime/ -iname "*seccomp*"


接著將 seccomp 節點設定 bpfPath、applyPath 路徑


"sandbox": {

    "seccomp": {

      "bpfPath": "/home/username/.nvm/versions/node/v24.19.0/lib/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/x64/unix-block.bpf",

      "applyPath": "/home/username/.nvm/versions/node/v24.19.0/lib/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/x64/apply-seccomp"

    },

    "enabled": true,

    "autoAllowBashIfSandboxed": true,

    "network": {

      "allowLocalBinding": true,

      "allowedDomains": [

        "registry.npmjs.org",

        "*.npmjs.org",

        "*.github.com",

        "github.com",

        "*.githubusercontent.com"

      ]

    }

  }



接著回到 Ubuntu 環境輸入 sandbox 就發現正常運作了



參考

沒有留言:

張貼留言