“教程写的都是 Mac 命令,Windows 上怎么搞?”
“换了 Linux 服务器,同样的 YAML 配置就是跑不通……”
“从 Windows 换到 Mac,代理突然不生效了,环境变量写法不一样?”
如果你在多台设备上部署 OpenClaw,你一定遇到过这种“跨平台水土不服”的问题。不同操作系统的终端环境不同,命令语法不同,甚至环境变量的生效方式也不同。
今天这篇文章,就帮你一次性搞定 Windows、Mac、Linux 三大平台下 OpenClaw 的代理配置,手把手带你把站大爷隧道代理跑通。
核心原因有两个:
第一,不同平台的终端语法不同。
Windows 的 CMD 和 PowerShell 用 set 或 $env:,Linux/Mac 用 export。搞混了就会报错。
第二,配置的生效范围不同。
| 生效范围 | Windows | Mac/Linux |
|---|---|---|
| 当前会话 | set / $env: | export |
| 永久生效 | setx / 系统变量 | 写入 ~/.bashrc / ~/.zshrc |
最稳妥的策略是统一用 环境变量配置法——这是 OpenClaw 官方文档认可的“最快检查”方式。它通过 Node.js 原生机制处理代理请求,能彻底绕开 YAML 配置在跨平台环境下可能出现的协议混淆问题。
Windows 下主要有两种终端:PowerShell(推荐)和 CMD。
PowerShell 是微软新一代跨平台 Shell,对 OpenClaw 的兼容性最好。
临时生效(当前窗口):
|
1 2 3 |
$env:HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080" $env:HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080" openclaw gateway start |
永久生效(推荐):
|
1 2 |
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://隧道ID:密码@tps.zdaye.com:8080", "User") [Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://隧道ID:密码@tps.zdaye.com:8080", "User") |
完成后需要 重启终端 才能生效。
临时生效:
|
1 2 3 |
set HTTP_PROXY=http://隧道ID:密码@tps.zdaye.com:8080 set HTTPS_PROXY=http://隧道ID:密码@tps.zdaye.com:8080 openclaw gateway start |
永久生效:
|
1 2 |
setx HTTP_PROXY "http://隧道ID:密码@tps.zdaye.com:8080" setx HTTPS_PROXY "http://隧道ID:密码@tps.zdaye.com:8080" |
使用 setx 后,新打开的命令行窗口会生效,当前窗口不会。
踩坑提醒:PowerShell 和 CMD 的环境变量不互通。在 PowerShell 里 $env:HTTP_PROXY=... 设的变量,在 CMD 里用 echo %HTTP_PROXY% 是看不到的。建议全程使用同一个终端。
Mac 使用 Zsh(macOS Catalina 后默认)或 Bash(旧版本)。
|
1 2 3 |
export HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080" export HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080" openclaw gateway start |
确认你用的是哪种 Shell:
|
1 2 3 |
echo $SHELL # /bin/zsh → Zsh # /bin/bash → Bash |
如果是 Zsh(macOS 默认),编辑 ~/.zshrc:
|
1 2 3 |
echo 'export HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"' >> ~/.zshrc echo 'export HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"' >> ~/.zshrc source ~/.zshrc |
如果是 Bash,编辑 ~/.bash_profile 或 ~/.bashrc:
|
1 2 3 |
echo 'export HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"' >> ~/.bash_profile echo 'export HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"' >> ~/.bash_profile source ~/.bash_profile |
小提示:Mac 用户如果使用 LaunchAgent 实现开机自启,可以创建 ~/Library/LaunchAgents/ai.openclaw.ssh-tunnel.plist 持久化隧道服务。
|
1 |
unset HTTP_PROXY HTTPS_PROXY |
Linux 服务器通常使用 Bash,配置方式与 Mac 类似,但注意区分桌面版和服务器的环境差异。
|
1 2 3 |
export HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080" export HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080" openclaw gateway start |
将以下内容添加到 ~/.bashrc(用户级,推荐):
|
1 2 3 |
echo 'export HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"' >> ~/.bashrc echo 'export HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"' >> ~/.bashrc source ~/.bashrc |
如果是系统级配置(所有用户生效),编辑 /etc/environment:
|
1 2 |
HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080" HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080" |
修改后需要 注销重新登录 或重启系统。
在生产环境,建议配合 PM2 实现开机自启和崩溃重启:
|
1 2 3 |
npm install -g pm2 pm2 start openclaw --name openclaw-gateway -- gateway run pm2 save && pm2 startup |
无论在 Windows、Mac 还是 Linux 上跑 Docker,配置方式完全一致——通过 docker-compose.yml 的 environment 字段传递环境变量:
|
1 2 3 4 5 6 7 8 9 10 |
services: openclaw: image: openclaw/openclaw:latest environment: - HTTP_PROXY=http://隧道ID:密码@tps.zdaye.com:8080 - HTTPS_PROXY=http://隧道ID:密码@tps.zdaye.com:8080 - NO_PROXY=localhost,127.0.0.1 ports: - "18789:18789" restart: unless-stopped |
关键提醒:容器内不要手动 export,环境变量必须在 docker run 或 compose 中传递,否则重启会丢失。
| 平台 | 临时生效 | 永久生效 | 永久生效文件/位置 |
|---|---|---|---|
| Windows PowerShell | $env:HTTP_PROXY=... | [Environment]::SetEnvironmentVariable(...) | 系统环境变量 |
| Windows CMD | set HTTP_PROXY=... | setx HTTP_PROXY ... | 系统环境变量 |
| Mac Zsh | export HTTP_PROXY=... | 写入 ~/.zshrc | ~/.zshrc |
| Mac Bash | export HTTP_PROXY=... | 写入 ~/.bash_profile | ~/.bash_profile |
| Linux Bash | export HTTP_PROXY=... | 写入 ~/.bashrc | ~/.bashrc |
| Docker(全平台) | — | 在 docker-compose.yml 中配置 | environment 字段 |
配置完成后,用 OpenClaw 的测试指令验证:
请访问 https://httpbin.org/ip,告诉我返回的IP地址是什么
如果返回的 IP 不是你的本机IP,说明配置成功。等 1-2 分钟再问一次,如果 IP 变了,说明站大爷隧道代理的自动轮换功能也在正常工作。
跨平台配置 OpenClaw 代理,核心就一件事:用环境变量,别折腾 YAML。
三句话记住全部要点:
Windows 用 PowerShell:$env:HTTP_PROXY=...,永久生效用 [Environment]::SetEnvironmentVariable
Mac 用 Zsh:export 写入 ~/.zshrc,source 后生效
Linux 用 Bash:export 写入 ~/.bashrc,source 后生效
Docker 全平台一致:在 docker-compose.yml 的 environment 中配置,不用管宿主机是什么系统。