基於 Linux 部署 OpenClaw 網關,通過 Tailscale 構建安全隧道互聯 Mac,實現通過OpenClaw管理Mac上的iMessage。
架構
┌──────────────────────────────┐ SSH (imsg rpc) ┌──────────────────────────┐
│ Gateway host (Linux/VM) │──────────────────────────────────▶│ Mac with Messages + imsg │
│ - clawdbot gateway │ SCP (attachments) │ - Messages signed in │
│ - channels.imessage.cliPath │◀──────────────────────────────────│ - Remote Login enabled │
└──────────────────────────────┘ └──────────────────────────┘
▲
│ Tailscale tailnet (hostname or 100.x.y.z)
▼
user@gateway-host
計費說明
在Simple Application Server上部署並使用OpenClaw服務將產生以下費用:
Simple Application Server費用:參見Simple Application Server計費概述。
模型調用費用:目前模型調用費用來自於使用者自己選擇的模型供應廠商和對應模型的計費。
操作步驟
Tailscale配置
-
Mac和伺服器需要配置Tailscale,進行網路的打通。首先需要在Tailscale進行註冊。
-
在Mac下載安裝Tailscale,下載地址。
要求 macOS Monterey 12.0 或更高版本。也可通過 macOS App Store 下載 Tailscale。
-
安裝後,通過命令列啟動:
/Applications/Tailscale.app/Contents/MacOS/Tailscale up -
在Linux伺服器上安裝Tailscale,進入地址,獲得指令碼並在Linux作業系統中執行。
在 Tailscale 控制台 Machines 頁面,單擊右上方 Add device 按鈕,在下拉式功能表中選擇 Linux server,擷取安裝指令碼。
設定 Auth key expiration 為
7days(可選 1–90 天),然後單擊 Generate install script 按鈕產生安裝指令碼。 -
執行完成後,Mac和Linux位於一個區域網路裡,可以互相通訊。
在 Tailscale 管理主控台的 Machines 頁面,兩台裝置均顯示為 Connected 狀態,確認組網成功。
-
發現Linux中的DNS會被Tailscale覆蓋導致網路不通,所以需要配置DNS,需要配置NameServer,這裡用
1.1.1.1或者8.8.8.8。在Tailscale管理主控台頂部導覽列中,單擊 DNS 選項卡進入DNS配置頁面。
在 Tailscale 管理主控台的 Nameservers 頁面,Global nameservers 地區中添加 Google Public DNS 和 Cloudflare Public DNS,並開啟 Override DNS servers 開關。
Mac配置
-
需要開啟Mac的遠端連線許可權:。
-
為sshd-keygen-wrapper賦予許可權:。
-
需要確保Mac上的IMessage處於登入狀態。
Clawdbot配置
-
需要關注的設定檔
/root/.clawdbot/clawdbot.json,在其中加入channel的配置。{ "channels": { "imessage": { "enabled": true, "cliPath": "/root/.clawdbot/scripts/imsg-ssh", "dbPath": "/Users/{{YOUR_USER_NAME}}/Library/Messages/chat.db", "remoteHost": "{{YOUR_USER_NAME}}@{{YOUR_MAC_MAGIC_DNS}}", "dmPolicy": "pairing", "groupPolicy": "allowlist", "includeAttachments": true } } }其中需要重點關注以下參數:
-
YOUR_USER_NAME:替換為Mac的使用者名稱。
-
YOUR_MAC_MAGIC_DNS:替換為Mac在Tailscale中的Magic DNS。
登入 Tailscale 管理主控台,進入 Machines 頁面,在搜尋方塊中輸入目標 Mac 的裝置名稱,下拉式清單會顯示該裝置的多種地址格式(主機名稱、MagicDNS 網域名稱、IPv6 地址、IPv4 地址),其中帶有 tailnet 網域名稱尾碼的條目(格式類似
macbook-pro.your-tailnet.ts.net)即為 MagicDNS 地址,將其複製並填入remoteHost配置項。 -
-
新增
/root/.clawdbot/scripts/imsg-ssh,負責通過ssh將命令轉寄到Mac。{{YOUR_USER_NAME}}@{{YOUR_MAC_MAGIC_DNS}}要替換為上一步擷取的。另外,需要給這個檔案加執行許可權。#!/usr/bin/env bash exec ssh -T {{YOUR_USER_NAME}}@{{YOUR_MAC_MAGIC_DNS}} /usr/local/bin/imsg "$@" -
目前可通過
ssh {{YOUR_USER_NAME}}@{{YOUR_MAC_MAGIC_DNS}}通過密碼遠端連線到Mac了,可以配置從Linux伺服器免密登入到Mac的SSH密鑰認證。 -
啟動並初始化gateway:
cd /home/clawdbot/ pnpm clawdbot onboard --install-daemon
結果展示
-
通過TUI串連Chat。
-
輸入:通過IMessage給+86188xxxxxxxx發送一首詩,可以看到Mac向指定帳號發送了一首詩。
如果您需要進一步的協助,請告訴我! Wake up, my friend! Hello! I'm awake. How can I assist you today? 你是誰 我是您的個人助手,可以協助您處理各種任務,比如發送訊息、管理議程、尋找資訊等。如果您有任何需要協助的地方,請隨時告訴我! 通過 IMessage給 +86188xxx 一首李白的詩 已通過iMessage向+86188xxx發送了李白的《靜夜思》: 靜夜思 床前明月光, 疑是地上霜。 舉頭望明月, 低頭思故鄉。 —— 李白 connected | idle agent main | session main (imessage:+86188xxx) | qwen-portal...