在中国 WSL Ubuntu 中完美部署 OpenClaw:Telegram 代理 + Systemd 服务 + 自动重启完整教程(2026 最新)
在中国 WSL Ubuntu 中完美部署 OpenClaw:Telegram 代理 + Systemd 服务 + 自动重启完整教程(2026 最新)
关键词:OpenClaw 部署、WSL Ubuntu 安装 OpenClaw、OpenClaw Telegram 代理、中国网络墙、openclaw gateway 服务、WSL systemd 启用、OpenClaw 2026.4.2
OpenClaw 作为新一代本地 AI 助手,在国内部署时经常遭遇 Telegram Bot API 被墙导致的 telegram/network fetch fallback: DNS-resolved IP unreachable 错误。同时,在 Windows WSL Ubuntu 环境下运行 openclaw gateway 时,手动 kill 进程、重启繁琐,且官方 gateway install 命令常常失败。
本文将完整整合在中国环境下只为 OpenClaw 设置代理、在 WSL 中启用 systemd 实现开机自启、解决服务安装失败等所有实用方案,一次性部署后永久无痛使用。无论你是使用原生 CLI 还是追求生产级稳定,本教程都适用。
1. 问题背景与核心挑战
1.1 OpenClaw 在中国网络下的典型痛点
- Telegram API(
api.telegram.org)被墙,导致UND_ERR_CONNECT_TIMEOUT错误。 - 代理必须只针对 OpenClaw,不能污染系统其他程序。
- WSL 默认未启用 systemd,导致
openclaw gateway install报错:“Unit file openclaw-gateway.service does not exist”。 - 每次重启都要手动
kill进程,体验极差。
1.2 为什么需要“只为 OpenClaw 设置代理”
全局代理会影响国内模型(如 DeepSeek、Kimi)的直连速度。正确做法是通过环境变量 + 配置文件实现隔离代理,同时开启代理的“远程 DNS 解析”以彻底解决 DNS 泄漏。
部署方式对比表(推荐阅读前快速了解):
| 部署方式 | 稳定性 | 开机自启 | 代理隔离性 | 适用场景 | 推荐指数 |
|---|---|---|---|---|---|
| 原生 CLI + 手动 kill | ★☆☆☆☆ | ❌ | ★★★★☆ | 临时测试 | 2/5 |
| Tmux 后台 | ★★☆☆☆ | ❌ | ★★★★☆ | 不想折腾 systemd | 3/5 |
| Systemd 用户/系统服务 | ★★★★★ | ✅ | ★★★★★ | 生产级推荐 | 5/5 |
| Docker 容器 | ★★★★☆ | ✅ | ★★★★★ | 喜欢容器化管理 | 4.5/5 |
2. 环境准备:WSL Ubuntu + Systemd 启用
2.1 确认当前环境
# 查看 OpenClaw 版本与路径
openclaw --version
which openclaw(本文以 2026.4.2 版本为例,路径通常为 /usr/bin/openclaw 或 /root/.npm-global/bin/openclaw)
2.2 关键一步:启用 WSL systemd(解决 install 失败根源)
在 WSL Ubuntu 终端 执行:
sudo tee /etc/wsl.conf > /dev/null <<'EOF'
[boot]
systemd=true
EOF从 Windows PowerShell(非 WSL 内) 重启 WSL:
wsl --shutdown重新进入 WSL 验证:
systemctl --user status看到 “State: running” 即成功。
3. 只为 OpenClaw 配置代理(核心解决 Telegram 报错)
3.1 Telegram 通道专用代理(最推荐)
编辑配置文件:
nano ~/.openclaw/openclaw.json在 channels.telegram 节点下添加 proxy:
{
"channels": {
"telegram": {
"botToken": "你的-bot-token",
"proxy": "http://192.168.10.86:11808",
}
}
}提示:如果你使用 SOCKS5 代理,改为 "proxy": "socks5://192.168.10.86:11808"3.2 全局环境变量隔离代理(所有通道生效)
创建 .env 文件:
cat > ~/.openclaw/.env << 'EOF'
HTTP_PROXY=http://192.168.10.86:11808
HTTPS_PROXY=http://192.168.10.86:11808
NO_PROXY=localhost,127.0.0.1,::1
EOF代理设置流程图(Mermaid):
flowchart TD
A[启动 OpenClaw gateway] --> B{检查配置文件?}
B -->|有 proxy| C[Telegram 专用代理生效]
B -->|无 proxy| D[读取 .env 环境变量]
D --> E[HTTP/HTTPS_PROXY 生效]
E --> F[NO_PROXY 排除本地服务]
C & F --> G[Telegram API 连通 + 国内模型直连]4. Systemd 服务管理:告别手动 kill
4.1 为什么官方 install 命令失败
OpenClaw 2026.x 在 root 用户 + WSL 环境下,服务文件尚未创建时就执行 systemctl enable,导致循环报错。即使加 --force 也无效。
4.2 手动创建 Systemd 服务(永久方案)
4.2.1 用户级服务(推荐普通用户)
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/openclaw-gateway.service << 'EOF'
[Unit]
Description=OpenClaw Gateway
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/root/.openclaw
ExecStart=/usr/bin/openclaw gateway
Restart=always
RestartSec=5
EnvironmentFile=/root/.openclaw/.env
[Install]
WantedBy=default.target
EOF4.2.2 系统级服务(root 用户更稳定)
sudo cat > /etc/systemd/system/openclaw-gateway.service << 'EOF'
[Unit]
Description=OpenClaw Gateway
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/.openclaw
ExecStart=/usr/bin/openclaw gateway
Restart=always
RestartSec=5
EnvironmentFile=/root/.openclaw/.env
[Install]
WantedBy=multi-user.target
EOF4.3 启动与日常管理命令
# 加载服务
systemctl --user daemon-reload # 用户级
# 或 sudo systemctl daemon-reload # 系统级
# 启用并立即启动
systemctl --user enable --now openclaw-gateway.service
# 日常操作(再也不用 kill)
openclaw gateway restart
systemctl --user restart openclaw-gateway.service
systemctl --user status openclaw-gateway.service --no-pager
# 查看实时日志
openclaw logs --follow
# 或
journalctl --user -u openclaw-gateway -f5. 验证、测试与故障排除
5.1 完整验证流程
- 重启服务后等待 10 秒。
- 执行
openclaw channels status --probe查看 Telegram 通道状态。 - 在 Telegram 中向 Bot 发送任意消息,确认响应正常。
- 检查日志中不再出现
telegram/network相关错误。
5.2 常见问题对照表
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 仍报 UND_ERR_CONNECT_TIMEOUT | 代理未开启远程 DNS | 在 Clash 等软件开启“远程 DNS 解析” |
| 服务启动后立即退出 | ExecStart 路径错误 | 用 which openclaw 确认路径 |
| Telegram 能连但国内模型慢 | NO_PROXY 未配置 | 在 .env 中补充国内域名 |
| WSL 重启后服务未启动 | 未启用 systemd | 重新执行 wsl.conf + shutdown |
6. 进阶技巧与最佳实践
6.1 Docker 方式(容器化备选)
如果你更喜欢隔离性,可直接使用 Docker + 环境变量(与本文代理配置完全兼容):
# docker-compose.yml 片段
environment:
- HTTP_PROXY=http://192.168.10.86:11808
- HTTPS_PROXY=http://192.168.10.86:118086.2 Tmux 极简备用方案(不想用 systemd 时)
sudo apt install tmux -y
tmux new -s openclaw -d "openclaw gateway"
tmux attach -t openclaw # 进入管理6.3 安全与性能建议
- 代理地址使用局域网 IP(192.168.x.x),避免 127.0.0.1 在容器/WSL 中的解析问题。
- 定期
openclaw gateway update保持最新版本。 - 将
.env和openclaw.json加入 Git 私有仓库实现配置版本化。
结语
通过本文的 Systemd + 隔离代理 + WSL systemd 启用 组合,你已拥有一个在 Windows 环境下稳定运行、自动重启、只代理必要流量的 OpenClaw 生产环境。部署一次,终身受益。
有任何新版本或特殊环境问题,欢迎在评论区留言,我会持续更新本教程。