最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過Docker和Nginx實(shí)現(xiàn)OpenClaw在Ubuntu服務(wù)器上的完整部署流程

 更新時(shí)間:2026年03月15日 14:59:27   作者:Mr數(shù)據(jù)楊  
本文詳細(xì)記錄了OpenClaw在Ubuntu服務(wù)器上的完整部署流程,重點(diǎn)介紹了通過Docker和Nginx實(shí)現(xiàn)的安全部署方案,需要的朋友可以參考下

這次把 OpenClaw 部署在一臺(tái) Ubuntu 服務(wù)器上,使用 Docker 運(yùn)行,再通過寶塔面板中的 Nginx 站點(diǎn)做反向代理,最后綁定域名,通過 HTTPS 訪問控制界面。

最終訪問鏈路如下:

瀏覽器
  ↓
https://你的https域名
  ↓
Nginx(寶塔站點(diǎn))
  ↓
127.0.0.1:18789
  ↓
OpenClaw Gateway

這篇主要記錄整個(gè)部署過程,以及順手完成的幾項(xiàng)加固:Docker 端口只綁定本地、Nginx 白名單限制、UFW 拒絕端口直連。目標(biāo)很明確,不只是把服務(wù)跑起來,而是讓它以一個(gè)更適合長(zhǎng)期使用的方式對(duì)外提供訪問。

環(huán)境準(zhǔn)備與安裝初始化

服務(wù)器環(huán)境是 Ubuntu 24,已經(jīng)安裝寶塔面板,并啟用了 Nginx。OpenClaw 通過 Docker Compose 運(yùn)行,域名通過寶塔站點(diǎn)綁定并配置 SSL。

本次部署使用到的環(huán)境信息如下:

項(xiàng)目
系統(tǒng)Ubuntu 24
面板寶塔面板
Web 服務(wù)Nginx
OpenClaw 項(xiàng)目目錄/www/docker/openclaw/openclaw-main
OpenClaw 配置目錄/root/.openclaw
Gateway 端口18789
Bridge 端口18790
域名你的https域名
允許訪問的公網(wǎng) IP自行調(diào)整

源碼獲取方式

由于服務(wù)器訪問 GitHub 不太穩(wěn)定,這次沒有直接拉倉(cāng)庫(kù),而是先在本地下載壓縮包,再上傳到服務(wù)器。

壓縮包路徑如下:

/www/docker/openclaw/openclaw-main.zip

解壓后目錄如下:

/www/docker/openclaw/openclaw-main

進(jìn)入項(xiàng)目目錄后的常規(guī)操作:

cd /www/docker/openclaw/openclaw-main
ls
chmod +x docker-setup.sh
./docker-setup.sh

安裝腳本是交互式的,這次采用的是盡量輕量的初始化方式,關(guān)鍵選擇如下:

步驟選擇
初始化確認(rèn)Yes
安裝模式QuickStart
模型提供商OpenRouter
API Key 提供方式Paste API key now
聊天渠道Skip for now
Skills按需選擇,盡量最小化部署
HooksSkip for now

安裝過程本身并不復(fù)雜,真正需要處理的重點(diǎn)在于,如何把 OpenClaw 接到一個(gè)合理、安全的公網(wǎng)入口上。

OpenClaw 配置與 Docker 端口收口

OpenClaw 配置文件位置

有一個(gè)地方比較容易找錯(cuò):OpenClaw 的實(shí)際配置文件并不在項(xiàng)目目錄里,而是在下面這個(gè)位置:

/root/.openclaw/openclaw.json

項(xiàng)目目錄下的內(nèi)容主要是運(yùn)行環(huán)境和 Compose 配置,真正控制 Gateway、認(rèn)證方式和 UI 來源校驗(yàn)的,是這個(gè) openclaw.json

本次用到的關(guān)鍵配置如下:

{
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "loopback",
    "auth": {
      "mode": "token"
    },
    "controlUi": {
      "allowedOrigins": [
        "https://你的https域名",
        "http://你的https域名"
      ],
      "dangerouslyAllowHostHeaderOriginFallback": true
    }
  }
}

這里最重要的是兩個(gè)配置項(xiàng):

  • controlUi.allowedOrigins
  • dangerouslyAllowHostHeaderOriginFallback

因?yàn)?OpenClaw 在非本地訪問場(chǎng)景下會(huì)做來源校驗(yàn)。如果你是通過域名訪問控制 UI,但沒有把域名加入允許來源列表,網(wǎng)關(guān)可能直接拒絕啟動(dòng),或者前端能打開但后端無法連接。

所以只要不是在本機(jī) localhost 上使用,而是通過域名反代訪問,這段配置基本都需要處理。

修改 Docker Compose 端口綁定

OpenClaw 默認(rèn)的 Compose 配置,會(huì)把 1878918790 直接映射到公網(wǎng)。

默認(rèn)寫法如下:

ports:
  - "${OPENCLAW_GATEWAY_PORT:-18789}:18789"
  - "${OPENCLAW_BRIDGE_PORT:-18790}:18790"

這種方式在測(cè)試階段沒有問題,但如果直接用于公網(wǎng)服務(wù)器,就意味著外部可以通過 服務(wù)器IP:18789 直接訪問 Gateway。

更合理的做法,是只讓 Docker 端口綁定到本地回環(huán)地址,讓外部流量統(tǒng)一從 Nginx 入口進(jìn)入。

修改后如下:

ports:
  - "127.0.0.1:${OPENCLAW_GATEWAY_PORT:-18789}:18789"
  - "127.0.0.1:${OPENCLAW_BRIDGE_PORT:-18790}:18790"

這樣改完以后,18789 和 18790 只允許本機(jī)訪問,公網(wǎng)無法直接連接。

實(shí)際修改命令如下:

cd /www/docker/openclaw/openclaw-main
cp docker-compose.yml docker-compose.yml.bak
sed -i 's#- "${OPENCLAW_GATEWAY_PORT:-18789}:18789"#- "127.0.0.1:${OPENCLAW_GATEWAY_PORT:-18789}:18789"#' docker-compose.yml
sed -i 's#- "${OPENCLAW_BRIDGE_PORT:-18790}:18790"#- "127.0.0.1:${OPENCLAW_BRIDGE_PORT:-18790}:18790"#' docker-compose.yml

修改完成后重啟容器:

docker compose down
docker compose up -d

這一步非常關(guān)鍵。因?yàn)槿绻幌劝?Docker 端口收口,后面即使配置了域名和 Nginx 反向代理,Gateway 實(shí)際上仍然是對(duì)公網(wǎng)暴露的。那時(shí) Nginx 只是“增加了一層入口”,不是“唯一入口”。

寶塔反向代理與訪問入口配置

這次使用的是寶塔面板,所以站點(diǎn)直接在寶塔里創(chuàng)建。

需要注意的是,站點(diǎn)目錄本身并不是重點(diǎn)。它不會(huì)直接渲染 OpenClaw 頁(yè)面,更像是一個(gè) Nginx 入口,用于完成三件事:

  1. 綁定域名
  2. 配置 HTTPS 證書
  3. 反向代理到本機(jī) OpenClaw Gateway

站點(diǎn)目錄給一個(gè)普通路徑即可,例如:

/www/wwwroot/你的https域名

最終使用的核心 Nginx 配置如下:

location / {
    allow 127.0.0.1;
    deny all;
    proxy_pass http://127.0.0.1:18789;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 86400;
    proxy_send_timeout 86400;
    proxy_connect_timeout 60s;
    proxy_buffering off;
    proxy_request_buffering off;
}

這段配置主要完成了三件事。

首先是 IP 白名單控制,只允許服務(wù)器本機(jī)和指定公網(wǎng) IP 訪問,其它請(qǐng)求直接返回 403。
其次是補(bǔ)齊 WebSocket 所需代理頭,因?yàn)?OpenClaw 控制界面依賴 WebSocket 與后端通信。
最后才是將流量轉(zhuǎn)發(fā)到 127.0.0.1:18789。

修改完成后,先檢查配置:

nginx -t

確認(rèn)沒有問題后再重載:

nginx -s reload

安全加固與訪問控制

雖然前面已經(jīng)把 Docker 端口綁定到了 127.0.0.1,理論上公網(wǎng)已經(jīng)無法直接訪問 18789 和 18790,但這里我還是補(bǔ)了一層 UFW。

執(zhí)行規(guī)則如下:

ufw deny 18789
ufw deny 18790
ufw enable

這樣做的目的就是多一層保險(xiǎn)。即使后續(xù)某次改動(dòng)誤把 Docker 端口重新暴露出來,防火墻層面仍然可以攔住這兩個(gè)端口,避免被直接訪問。

對(duì)外開放端口建議只保留:

端口用途
22SSH 登錄
80HTTP
443HTTPS

如果服務(wù)器在騰訊云、阿里云等云平臺(tái)上,安全組也建議同步關(guān)閉 18789 和 18790,只保留 22、80、443。

OpenClaw 的認(rèn)證機(jī)制

OpenClaw 默認(rèn)并不是傳統(tǒng)的賬號(hào)密碼登錄系統(tǒng),而是采用 Gateway Token 模式。

也就是說,用戶可以看到前端頁(yè)面,但如果沒有正確的 Token,就無法真正連接后端。這時(shí)前端通常會(huì)提示:

unauthorized: gateway token missing

Token 存放在:

/root/.openclaw/openclaw.json

結(jié)構(gòu)大概如下:

"auth": {
  "mode": "token",
  "token": "xxxxxxxxxxxxxxxx"
}

這意味著它的訪問控制實(shí)際上分成兩層:

第一層是外層訪問控制,也就是能不能先打開這個(gè)頁(yè)面。這部分由 Nginx 白名單、域名入口和 HTTPS 決定。
第二層是內(nèi)部操作控制,也就是能不能真正控制 Agent。這部分由 Gateway Token 決定。

所以這次的思路很簡(jiǎn)單,外層用 Nginx 白名單限制訪問范圍, 內(nèi)層保留 OpenClaw 自己的 Gateway Token 作為實(shí)際控制權(quán)限。

如果后續(xù)還想進(jìn)一步強(qiáng)化,也可以在 Nginx 層再加 BasicAuth,讓瀏覽器先彈賬號(hào)密碼框。

當(dāng)前這套結(jié)構(gòu)的最終效果

到這里,這次部署的整體安全邊界就比較清楚了。

當(dāng)前已經(jīng)完成的控制如下:

層級(jí)作用
Docker 只綁定 127.0.0.1阻止公網(wǎng)直接訪問 18789/18790
UFW 拒絕 18789/18790防止端口直連
Nginx 白名單只允許指定來源訪問
HTTPS 域名訪問滿足安全上下文要求
Gateway Token控制真正的 Agent 連接權(quán)限

最終訪問表現(xiàn)應(yīng)該如下:

訪問方式結(jié)果
https://你的https域名,且來源 IP 為允許 IP正常訪問
https://你的https域名,但來源為其他 IP403 Forbidden
http://服務(wù)器IP:18789無法訪問
頁(yè)面打開但沒填 Gateway Token頁(yè)面可見但無法操作
正確填寫 Gateway Token可正??刂?OpenClaw

到這一步,至少入口是統(tǒng)一的,權(quán)限是分層的,公網(wǎng)也沒有留下多余暴露面。

問題排查、運(yùn)維命令與后續(xù)優(yōu)化

先看 DNS,再查服務(wù)

這次排查過程中,還有一個(gè)很典型的問題。

一開始域名訪問不上,最先懷疑的是 Docker、Nginx 或者 OpenClaw 配置本身,結(jié)果最后發(fā)現(xiàn)問題根本不在服務(wù)層,而是在 DNS。

你的https域名 這個(gè)子域名,必須先在 DNS 控制臺(tái)中添加 A 記錄,例如:

類型主機(jī)記錄記錄值
Aopenclawxxx.xxx.xxx.xxx

只有解析生效之后,請(qǐng)求才會(huì)真正打到當(dāng)前服務(wù)器。

可以通過以下命令驗(yàn)證:

ping -c 2 你的https域名
curl -I http://你的https域名
curl -Ik https://你的https域名

如果 DNS 尚未生效,通常看到的報(bào)錯(cuò)會(huì)是:

Could not resolve host
Name or service not known

所以如果遇到域名無法訪問的問題,建議先確認(rèn) DNS 解析是否正確,再去檢查 Docker、Nginx 或 OpenClaw 本身。

常用運(yùn)維命令整理

下面把部署和排查時(shí)比較常用的命令一起記下來,后面復(fù)用會(huì)比較方便。

查看容器狀態(tài):

cd /www/docker/openclaw/openclaw-main
docker ps
docker compose ps

查看網(wǎng)關(guān)日志:

docker logs --tail 100 openclaw-main-openclaw-gateway-1

重啟 OpenClaw:

cd /www/docker/openclaw/openclaw-main
docker compose down
docker compose up -d

檢查 Nginx 配置:

nginx -t
nginx -s reload

檢查 80 和 443 是否監(jiān)聽:

ss -lntp | grep -E ':80|:443'

檢查 OpenClaw 本機(jī)端口:

curl -I http://127.0.0.1:18789
curl -I http://127.0.0.1:18789/__openclaw__/canvas/

檢查 Nginx 到 OpenClaw 的反代鏈路:

curl -I http://127.0.0.1 -H "Host: 你的https域名"
curl -Ik https://127.0.0.1 -H "Host: 你的https域名"

這些命令都比較基礎(chǔ),但在排查時(shí)很高頻。尤其是本機(jī)端口和反代鏈路測(cè)試,通常能很快判斷問題到底出在 OpenClaw、Docker、Nginx,還是域名解析層。

后續(xù)還能繼續(xù)增強(qiáng)的方向

目前這套結(jié)構(gòu)已經(jīng)可以穩(wěn)定使用,但如果后續(xù)想繼續(xù)往更完整的生產(chǎn)環(huán)境演進(jìn),還可以繼續(xù)補(bǔ)幾項(xiàng):

方向說明
增加 Nginx BasicAuth再加一層瀏覽器級(jí)賬號(hào)密碼認(rèn)證
接入 Cloudflare Access / OAuth做更標(biāo)準(zhǔn)的統(tǒng)一身份認(rèn)證
隱藏默認(rèn)控制路徑降低被掃描器直接探測(cè)到的概率
固定允許來源域名進(jìn)一步減少 Host Header 風(fēng)險(xiǎn)
細(xì)化模型調(diào)用策略按 OpenRouter / DeepSeek 做權(quán)限隔離
記錄訪問日志和異常日志方便后續(xù)審計(jì)和問題回溯

這些都不是這次部署的必需項(xiàng),但如果后面要從“自己用”逐步走向“長(zhǎng)期用”或者“多人用”,基本都會(huì)慢慢補(bǔ)上。

總結(jié)

這次部署完成后,OpenClaw 已經(jīng)可以通過 HTTPS 域名正常訪問,Gateway 端口也不再直接暴露到公網(wǎng)。

目前這套結(jié)構(gòu)的核心有三點(diǎn):

  • 域名作為統(tǒng)一入口
  • Docker 端口只綁定本地
  • Nginx 白名單和 Gateway Token 形成雙層限制

對(duì)個(gè)人長(zhǎng)期使用來說,這樣的結(jié)構(gòu)已經(jīng)比較穩(wěn),也方便后續(xù)繼續(xù)疊加認(rèn)證或訪問控制。

以上就是OpenClaw在Ubuntu服務(wù)器上的完整部署流程的詳細(xì)內(nèi)容,更多關(guān)于OpenClaw在Ubuntu上的部署的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Linux環(huán)境下完整搭建GitLab私有代碼倉(cāng)庫(kù)的詳細(xì)流程

    Linux環(huán)境下完整搭建GitLab私有代碼倉(cāng)庫(kù)的詳細(xì)流程

    在現(xiàn)代軟件開發(fā)中,代碼版本控制是團(tuán)隊(duì)協(xié)作的基石,GitLab 作為一款功能強(qiáng)大、開源免費(fèi)的 DevOps 平臺(tái),無疑是私有代碼倉(cāng)庫(kù)的最佳選擇之一,本文將帶你從零開始,在 Linux 環(huán)境下完整搭建 GitLab 私有代碼倉(cāng)庫(kù),需要的朋友可以參考下
    2026-04-04
  • Linux中搭建coturn服務(wù)器的過程

    Linux中搭建coturn服務(wù)器的過程

    這篇文章主要介紹了Linux中搭建coturn服務(wù)器,首先下載coturn源碼,進(jìn)入到coturn路徑下執(zhí)行相應(yīng)命令,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • CentOS修改服務(wù)器登錄密碼的詳細(xì)指南

    CentOS修改服務(wù)器登錄密碼的詳細(xì)指南

    在日常使用?Linux?服務(wù)器時(shí),修改用戶登錄密碼是維護(hù)系統(tǒng)安全性的重要環(huán)節(jié),本文將詳細(xì)介紹如何在?CentOS?系統(tǒng)中修改用戶密碼,包括可能遇到的常見問題及其解決方案,需要的朋友可以參考下
    2024-10-10
  • 解決Linux system v 共享內(nèi)存問題

    解決Linux system v 共享內(nèi)存問題

    這篇文章主要介紹了Linux system v 共享內(nèi)存問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • linux服務(wù)器磁盤爆滿的處理方案

    linux服務(wù)器磁盤爆滿的處理方案

    文章描述了Linux服務(wù)器磁盤爆滿導(dǎo)致Redis服務(wù)無法訪問的問題,通過一系列命令查找并刪除大文件,解決了磁盤空間不足的問題,同時(shí),文章介紹了如何配置Nacos以防止日志文件過大導(dǎo)致磁盤空間爆滿,需要的朋友可以參考下
    2025-02-02
  • rsync 數(shù)據(jù)同步使用詳解

    rsync 數(shù)據(jù)同步使用詳解

    rsync 是很強(qiáng)大的同步工具 本地遠(yuǎn)程皆宜 不少project都提供 http ftp rsync 等mirror方式 rsync官方主頁(yè)是 http://samba.anu.edu.au/rsync/
    2008-09-09
  • Kafka 常用命令行詳細(xì)介紹及整理

    Kafka 常用命令行詳細(xì)介紹及整理

    這篇文章主要介紹了 Kafka 常用命令行詳細(xì)介紹及整理的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 淺談linux kernel對(duì)于浮點(diǎn)運(yùn)算的支持

    淺談linux kernel對(duì)于浮點(diǎn)運(yùn)算的支持

    今天小編就為大家分享一篇淺談linux kernel對(duì)于浮點(diǎn)運(yùn)算的支持,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • linux下建站目錄分配權(quán)限的經(jīng)驗(yàn)技巧總結(jié)

    linux下建站目錄分配權(quán)限的經(jīng)驗(yàn)技巧總結(jié)

    在建站的時(shí)候給目錄分配權(quán)限是非常重要的,也是建站的程序員們必須要會(huì)的,下面這篇文章主要給大家總結(jié)了在linux下建站目錄分配權(quán)限的經(jīng)驗(yàn)技巧,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • linux系統(tǒng)下定時(shí)執(zhí)行php腳本的方法

    linux系統(tǒng)下定時(shí)執(zhí)行php腳本的方法

    網(wǎng)站運(yùn)營(yíng)過程中,經(jīng)常會(huì)遇到需要定時(shí)執(zhí)行php腳本的情況,下面這篇文章主要介紹了linux系統(tǒng)下定時(shí)執(zhí)行php腳本的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01

最新評(píng)論

西吉县| 集安市| 谢通门县| 阳信县| 沧源| 津南区| 香河县| 大方县| 呼和浩特市| 莲花县| 苏尼特右旗| 康乐县| 屏边| 凤阳县| 深州市| 萍乡市| 宁波市| 缙云县| 桂平市| 清镇市| 邳州市| 平度市| 左权县| 固始县| 融水| 仙居县| 句容市| 西乌| 平陆县| 克东县| 如皋市| 黎城县| 尉犁县| 攀枝花市| 确山县| 怀化市| 正阳县| 泉州市| 莒南县| 松阳县| 司法|