在中国 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 后台★★☆☆☆★★★★☆不想折腾 systemd3/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
EOF

4.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
EOF

4.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 -f

5. 验证、测试与故障排除

5.1 完整验证流程

  1. 重启服务后等待 10 秒。
  2. 执行 openclaw channels status --probe 查看 Telegram 通道状态。
  3. 在 Telegram 中向 Bot 发送任意消息,确认响应正常。
  4. 检查日志中不再出现 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:11808

6.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 保持最新版本。
  • .envopenclaw.json 加入 Git 私有仓库实现配置版本化。

结语
通过本文的 Systemd + 隔离代理 + WSL systemd 启用 组合,你已拥有一个在 Windows 环境下稳定运行、自动重启、只代理必要流量的 OpenClaw 生产环境。部署一次,终身受益。

有任何新版本或特殊环境问题,欢迎在评论区留言,我会持续更新本教程。

标签: none

添加新评论