“教程写的都是 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 系统配置
Windows 下主要有两种终端:PowerShell(推荐)和 CMD。
方法一:PowerShell(推荐,功能最强)
PowerShell 是微软新一代跨平台 Shell,对 OpenClaw 的兼容性最好。
临时生效(当前窗口):
$env:HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"
$env:HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"
openclaw gateway start
永久生效(推荐):
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://隧道ID:密码@tps.zdaye.com:8080", "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://隧道ID:密码@tps.zdaye.com:8080", "User")
完成后需要 重启终端 才能生效。
方法二:CMD(命令提示符,兼容旧脚本)
临时生效:
set HTTP_PROXY=http://隧道ID:密码@tps.zdaye.com:8080
set HTTPS_PROXY=http://隧道ID:密码@tps.zdaye.com:8080
openclaw gateway start
永久生效:
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%是看不到的。建议全程使用同一个终端。
Windows 永久生效(图形界面方式)
- 按
Win + R,输入sysdm.cpl - 点击“高级” → “环境变量”
- 在“系统变量”或“用户变量”中点击“新建”
- 变量名:
HTTP_PROXY,变量值:http://隧道ID:密码@tps.zdaye.com:8080 - 同样添加
HTTPS_PROXY - 重启电脑或重新打开终端后生效
三、Mac 系统配置
Mac 使用 Zsh(macOS Catalina 后默认)或 Bash(旧版本)。
临时生效(当前终端)
export HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"
export HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"
openclaw gateway start
永久生效(推荐)
确认你用的是哪种 Shell:
echo $SHELL
# /bin/zsh → Zsh
# /bin/bash → Bash
如果是 Zsh(macOS 默认),编辑 ~/.zshrc:
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:
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持久化隧道服务。
临时关闭代理
unset HTTP_PROXY HTTPS_PROXY
四、Linux 系统配置
Linux 服务器通常使用 Bash,配置方式与 Mac 类似,但注意区分桌面版和服务器的环境差异。
临时生效(当前会话)
export HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"
export HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"
openclaw gateway start
永久生效(系统级)
将以下内容添加到 ~/.bashrc(用户级,推荐):
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:
HTTP_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"
HTTPS_PROXY="http://隧道ID:密码@tps.zdaye.com:8080"
修改后需要 注销重新登录 或重启系统。
服务器运维小技巧
在生产环境,建议配合 PM2 实现开机自启和崩溃重启:
npm install -g pm2
pm2 start openclaw --name openclaw-gateway -- gateway run
pm2 save && pm2 startup
五、Docker 环境配置(跨平台一致)
无论在 Windows、Mac 还是 Linux 上跑 Docker,配置方式完全一致——通过 docker-compose.yml 的 environment 字段传递环境变量:
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 中配置,不用管宿主机是什么系统。