欢迎光临
我们一直在努力

OpenCode 报「地区不可用」?Muse Spark 模型接入的四种解决方法

一、问题背景:为什么会报「地区不可用」?

很多朋友用 OpenCode 时,想尝试一下 Muse Spark 模型(Spark 1.2 / Spark 1.3),却在使用时看到红色提示:

This model is not available in your country.

这通常有两个原因:

  • Muse Spark 模型在部分网络环境下的可达性不稳。部分网络环境下发出的请求未能成功连接模型服务,因此提示「不可用」。
  • OpenCode 基于 Node.js 24 及以上版本运行,而新版本 Node.js 默认不读取系统代理环境变量。即使电脑上配置好了网络代理,只要没有显式告知,OpenCode 的请求仍走原有网络通道。要让模型正常接入,关键在于把这个通道显式告诉 OpenCode。
  • 所以,问题的核心在于让 OpenCode 的网络请求按照配置的路径发出。下面按场景给你拆解。

    二、方法一:配置网络请求路由环境变量(常用)

    第 1 步:确认你的网络代理信息

    确保你的本地代理客户端已开启,并记下本地代理的 地址(IP) 和 端口。

    • 常见本地地址:127.0.0.1
    • 常见端口:7890、7897 等,以你代理软件显示的 HTTP/HTTPS 代理端口为准。

    ⚠️ 这一步很关键:下面所有命令里的端口号,都要和你代理软件里显示的一致,否则配置了也不生效。

    第 2 步:设置环境变量(按你的系统来)

    ✅ Windows(CMD 临时生效)

    打开「命令提示符」或 PowerShell,逐条执行(把端口换成你的实际端口):

    set HTTP_PROXY=http://127.0.0.1:7897
    set HTTPS_PROXY=http://127.0.0.1:7897
    set NODE_USE_ENV_PROXY=1

    设置完后,在同一个窗口里启动 OpenCode 即可。

    ✅ Windows(永久生效)
  • 在搜索栏输入「环境变量」,打开「编辑系统环境变量」。
  • 点击「环境变量」,在「用户变量」区域点击「新建」。
  • 依次添加以下变量(把端口换成你的实际端口):
  • 变量名变量值
    HTTP_PROXY http://127.0.0.1:7897
    HTTPS_PROXY http://127.0.0.1:7897
    NO_PROXY localhost,127.0.0.1
    NODE_USE_ENV_PROXY 1
  • 保存所有窗口,重启终端或 IDE 使变量生效。
  • ✅ macOS / Linux(临时生效)

    打开终端执行(把端口换成你的实际端口):

    export HTTP_PROXY=http://127.0.0.1:7890
    export HTTPS_PROXY=http://127.0.0.1:7890
    export NO_PROXY=localhost,127.0.0.1
    export NODE_USE_ENV_PROXY=1

    在同一个终端窗口里启动 OpenCode。

    ✅ macOS / Linux(永久生效)

    把上面的 export 命令写入 Shell 配置文件,例如 ~/.zshrc、~/.bashrc 或 ~/.bash_profile。

    ⚠️ 特别提醒:macOS 的 GUI 应用用户

    如果你是在 VSCode、Cursor 等图形界面(GUI)应用的插件里使用 OpenCode,这些应用不会读取 ~/.zshrc 等终端配置文件。你需要额外执行以下命令,把变量注入到系统会话:

    launchctl setenv HTTP_PROXY "http://127.0.0.1:7890"
    launchctl setenv HTTPS_PROXY "http://127.0.0.1:7890"
    launchctl setenv NO_PROXY "localhost,127.0.0.1"
    launchctl setenv NODE_USE_ENV_PROXY "1"

    执行后,完全退出并重新打开 IDE 才能生效。

    第 3 步:测试是否生效

    启动 OpenCode 后直接尝试使用 Muse Spark 模型。如果不再出现「地区不可用」提示,说明配置成功。

    如果依然报错,按顺序检查:

  • 代理端口是否正确:确认环境变量里的端口号和代理软件显示的一致。
  • 链路是否可用:部分代理链路可能不稳定,尝试更换链路后再试。
  • 是否漏了 NODE_USE_ENV_PROXY=1:这是 Node.js 24 的关键开关,容易遗漏。
  • IDE 插件环境:在 VSCode 插件里用的话,务必按上面「GUI 应用」部分配置,而不是只改终端。
  • 下面用一张流程图,把「第 3 步」的完整排查路径串起来,方便你按顺序定位问题:

    三、方法二:勾选「启用部署在中国的模型」

    如果你的报错与 DeepSeek V4 Flash 等模型有关,可以检查 OpenCode Go 订阅里是否有:

    Enable models hosted in China(启用部署在中国的模型)

    如果有,直接勾选即可。

    四、方法三:使用国内模型供应商(无需额外配置)

    如果不想折腾网络,可以直接用国内模型服务作为替代,更省心:

    • 火山方舟:提供 DeepSeek 等模型的编程套餐,有的首月仅需 9.9 元。
    • 阿里云百炼:提供多种大模型 API。
    • 智谱、Kimi、MiniMax 等:多数都支持 OpenAI 兼容格式的 API。

    在 OpenCode 中配置对应厂商的 API Key 和 Base URL 即可使用。

    五、方法四:自行编译或修改配置(进阶)

    技术较强的用户还可以:

    • 配置独立路由:为 muse-spark-1.2-contributor 模型在 settings.yaml 中配置独立路由,使用 openai-responses 协议。
    • 自行编译:如果 models.dev 在境内无法访问,可以自己拉取 models.json 文件并通过环境变量指定。

    六、重要优化:如何避免影响国内网络

    很多同学会担心:设置了代理,会不会影响我访问百度、淘宝、微信?

    答案是:不会,只要设置得当,影响非常有限。

    1. 影响的「范围」很小

    这些环境变量只对当前终端窗口里启动的程序(Node.js / OpenCode)生效:

    • 你打开的浏览器访问国内网站,不受影响,依然直连。
    • 微信、QQ、游戏客户端,不受影响。
    • 只有在你运行 OpenCode 的那个终端里,Node.js 发出的请求才会走代理。

    2. 内置「免代理」白名单

    如果你配置了 NO_PROXY,建议把它扩充一下,包含常见国内域名和局域网地址:

    NO_PROXY=localhost,127.0.0.1,*.local,*.aliyun.com,*.baidu.com,*.qq.com,*.taobao.com,*.zhihu.com,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

    这样访问阿里云、百度、腾讯等国内服务接口时,代理会自动绕过、直接连接,速度不受任何影响。

    3. 推荐的做法:临时生效

    为防止「忘记关代理导致国内访问慢」,不建议设为永久生效,而是每次只在运行 OpenCode 的终端里临时设置。

    Windows(CMD):

    set HTTPS_PROXY=http://127.0.0.1:7897
    set NO_PROXY=localhost,127.0.0.1,*.local,192.168.*
    set NODE_USE_ENV_PROXY=1
    opencode

    用完即关:关掉这个窗口后,变量就消失了,系统恢复纯净的国内直连状态。

    Mac / Linux(推荐做一个别名):

    alias opencode-proxy='HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 NO_PROXY=localhost,127.0.0.1,*.local NODE_USE_ENV_PROXY=1 opencode'

    之后只需输入 opencode-proxy,其他任何操作都不会走代理。

    4. 唯一需要注意的坑:IDE 插件用户

    如果你在 VSCode / Cursor 插件里使用,并且执行了 launchctl setenv 这类系统级命令,确实会让整个 IDE 的网络都走代理。

    解决办法:在 IDE 的插件设置中找到 OpenCode 的 HTTP_PROXY 配置项,直接在插件里填代理地址,而不要用 launchctl 注入。这样只有插件里的 AI 请求走代理,IDE 更新、插件下载依然走国内直连。

    七、桌面版(Desktop)专用说明

    如果你用的是 OpenCode 桌面端,它是个独立的图形界面应用,不会读取终端里临时设置的环境变量。

    好消息是:OpenCode 桌面端从 v1.14.39 版本开始,已经支持读取 HTTP_PROXY / HTTPS_PROXY 等标准代理环境变量了。

    方法一:通过系统环境变量设置(推荐)

    一次性设置好,以后每次打开桌面端都会自动生效。

    Windows 用户:

  • 搜索「环境变量」,打开「编辑系统环境变量」。
  • 点击「环境变量」,在「用户变量」区点「新建」。
  • 添加(把端口换成你的实际代理地址):
    • HTTP_PROXY = http://127.0.0.1:7897
    • HTTPS_PROXY = http://127.0.0.1:7897
    • (可选推荐)NO_PROXY = localhost,127.0.0.1
  • 点击「确定」保存全部窗口。
  • macOS 用户:GUI 应用不读 ~/.zshrc,需要用 launchctl setenv 注入(见上文 GUI 部分)。

    Linux 用户:可通过 ~/.profile、~/.bashrc 或 ~/.pam_environment 等文件设置。

    最后务必:完全退出并重新打开 OpenCode 桌面端,新环境变量才会生效。

    方法二:通过配置文件设置(更灵活)

    OpenCode 支持在配置文件里直接指定代理,更精确,也不会影响系统其他软件。

    配置文件通常位于 ~/.config/opencode/ 目录下,文件名可能是 opencode.json 或 opencode.jsonc。

    一个正确的配置示例:

    {
    "shell": "powershell",
    "network": {
    "proxy": {
    "http": "http://127.0.0.1:7897",
    "https": "http://127.0.0.1:7897",
    "noProxy": ["localhost", "127.0.0.1", "::1"]
    }
    }
    }

    八、配置文件常见坑:只能有一个顶层对象

    很多同学把配置直接粘贴,结果报 JSON 解析错误,比如:

    EndOfFileExpected,在第 6 行第 1 列遇到了一个意外的 {

    原因:JSON 标准要求整个文件只能有一个顶层对象。如果你把两个独立的 JSON 对象放在同一个文件里,就会报错。

    错误示范(两个 { } 并列,不允许):

    { "$schema": "…", "shell": "powershell" }
    { "$schema": "…", "network": { "proxy": { … } } }

    正确做法:把配置合并成一个对象,用逗号分隔:

    {
    "shell": "powershell",
    "network": {
    "proxy": {
    "http": "http://127.0.0.1:7897",
    "https": "http://127.0.0.1:7897",
    "noProxy": ["localhost", "127.0.0.1", "::1"]
    }
    }
    }

    操作步骤:

  • 打开配置文件(C:\\Users\\你的用户名\\.config\\opencode\\ 或 ~/.config/opencode/ 下)。
  • 删除文件中所有现有内容。
  • 粘贴上面合并后的完整 JSON 代码。
  • 保存(Ctrl+S)。
  • 重新打开 OpenCode 桌面端。
  • 九、关于 .json 还是 .jsonc:用 .jsonc 更好

    可能有人会问:我目录下只有 opencode.jsonc,没看到 opencode.json,有影响吗?

    完全没有影响,用 .jsonc 甚至更推荐。 原因有三:

  • 支持注释:可以在配置里写注释,方便日后维护。
  • 允许尾随逗号:在对象或数组最后一项后多加一个逗号也不报错。
  • 优先级更高:如果 .json 和 .jsonc 同时存在,OpenCode 会优先读取 .jsonc。
  • 一个正确的 opencode.jsonc 示例:

    {
    // 声明 JSON Schema,用于编辑器智能提示和校验
    // 指定使用的 Shell
    "shell": "powershell",

    // 网络代理配置

    十、常见报错速查表

    下面把本文涉及的所有报错信息汇总成一张速查表,方便你遇到问题时快速定位原因和解决方法。

    报错信息原因解决方法对应章节
    This model is not available in your country. Muse Spark 模型在部分网络环境下可达性不稳,或 Node.js 24 默认不读取系统代理环境变量,请求未按代理路径发出。 配置 HTTP_PROXY / HTTPS_PROXY 环境变量,并开启 NODE_USE_ENV_PROXY=1 开关。 一、问题背景;二、方法一
    配置代理后仍报「地区不可用」 代理端口填写错误、代理链路不稳定、漏配 NODE_USE_ENV_PROXY=1,或 IDE 插件环境未按 GUI 方式配置。 按顺序检查端口、更换链路、补全开关;VSCode 插件用户需按「GUI 应用」部分用 launchctl setenv 注入。 二、方法一(第 3 步)
    DeepSeek V4 Flash 等模型报「地区不可用」 OpenCode Go 订阅中未开启「启用部署在中国的模型」选项。 在订阅设置中勾选 Enable models hosted in China。 三、方法二
    桌面端配置了终端环境变量仍不生效 OpenCode 桌面端是独立 GUI 应用,不读取终端里临时设置的环境变量。 通过系统环境变量或配置文件设置代理,并完全退出后重新打开桌面端。 七、桌面版专用说明
    EndOfFileExpected(JSON 解析错误) 配置文件里写了两个并列的顶层 JSON 对象,违反「只能有一个顶层对象」的 JSON 标准。 把多个配置合并成一个对象,用逗号分隔后粘贴保存。 八、配置文件常见坑
    IDE 插件整个网络都走代理,国内访问变慢 执行了 launchctl setenv 等系统级命令,导致整个 IDE 的网络都走代理。 在 IDE 插件设置里直接填 OpenCode 的 HTTP_PROXY 配置项,不要用 launchctl 注入。 六、重要优化(第 4 点)
    赞(0)
    未经允许不得转载:171主机测评 » OpenCode 报「地区不可用」?Muse Spark 模型接入的四种解决方法
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址