Odoo19 Docker 部署後如何徹底切斷官方數據回傳?完整配置教程(含 Docker Compose 示例

Odoo 從很早的版本開始,就預設開啟了 Telemetry(遠端資料回傳/Usage Statistics)。這些資料會週期性上傳到 Odoo 官方伺服器,包括但不限於:伺服器資訊、模組使用情況、使用者數量、安裝情況、系統健康度等。對於部分企業來說,這本身並不是壞事,可以幫助 Odoo 改進產品。

​自很早的版本起,Odoo 就預設啟用了遙測(遠端資料收集/使用統計)。這些資料會定期上傳到 Odoo 的官方伺服器,包括但不限於:伺服器資訊、模組使用情況、使用者數量、安裝狀態、系統健康狀況等。對於某些企業來說,這未必是壞事,因為它有助於 Odoo 改進其產品。然而,許多公司必須停用所有外部資料傳輸,原因如下:​

    • 安全合規要求(例如,國有企業、能源、金融行業)
    • 內網部署
    • 不希望外部統計內部系統的使用情況
    • 禁止 Odoo 自動線上檢查許可證(尤其是社區版不受影響,但企業版對此非常敏感)
    • 自建雲或 Docker 生產環境需要隔離

本文將從 Docker Compose 部署場景 出發,使用實際檔案和設定向您展示:如何徹底切斷 Odoo19 的所有官方回呼,適用於:

  • Odoo 19 CE 社區版
  • Odoo 19 EE 企業版(企業合約需特別注意)
  • 使用 Docker Compose 部署
  • 支援 Nginx + Odoo + PostgreSQL 架構

1. Odoo19 資料返回(遙測)具體包括哪些內容?

官方遙測機制主要包括:

函數目的傳輸至
遙測使用資料提交使用習慣、模組啟用狀態、使用者數量odoo.com
檢查更新檢查版本更新odoo.com
企業許可證 Ping驗證許可證odoo.com
IAP 服務(例如,電子郵件、簡訊)應用內購買服務iap.odoo.com
GeoIP解析 IP 位置geoip.odoo.com

如果在公共網路環境中部署,預設情況下它會繼續自動上傳。

2. 在 Docker Compose 環境中,如何徹底切斷回呼?

​以下是四層防禦,建議將它們全部啟用,以確保徹底清潔。

方法 1:在 Odoo 設定檔中停用遙測(最基礎)

編輯你的 odoo.conf:

通常 docker-compose 會將配置掛載在:

	​./config/odoo.conf

​在[選項]中添加:

	​server_wide_modules = web
	​geoip_database =
	​http_enable = True
	​limit_time_real = 120
	​disable_outgoing_email = True
	​publisher_warranty = False
	​disable_database_telemetry = True

關鍵項目:

​disable_database_telemetry = True

這是 Odoo 中的一個隱藏配置,用於禁用遙測。

注意:部分版本尚未公開提供,但 Odoo19 以及部分 Odoo18、17 已經可用。

​方法 2:在 Docker Compose 中停用網路存取(iptables/防火牆)

即使 Odoo 層已停用遙測,作為預防措施,建議對容器實施網路隔離。

例如,如果你的 docker-compose 檔案看起來像:

services:
  odoo:
    image: odoo:19
    depends_on:
      - db
    ports:
      - "8069:8069"
    networks:
      - odoo-net
    extra_hosts:
      - "odoo.com:127.0.0.1"
      - "iap.odoo.com:127.0.0.1"
      - "services.odoo.com:127.0.0.1"

使用 extra_hosts 將所有官方網域指向 localhost,從而完全斷開與網際網路的連線。

必須屏蔽的域名:

odoo.com
iap.odoo.com
services.odoo.com
upgrade.odoo.com
analytics.odoo.com

這是一個非常乾淨且無副作用的方法。

方法 3:透過防火牆封鎖遙測網域(推薦用於企業)

如果你在雲端伺服器或實體機上執行 Docker,可以直接使用防火牆進行封鎖:

ufw

sudo ufw deny out to odoo.com
sudo ufw deny out to iap.odoo.com
sudo ufw deny out to services.odoo.com

iptables

iptables -A OUTPUT -p tcp -d odoo.com -j DROP
iptables -A OUTPUT -p tcp -d iap.odoo.com -j DROP
iptables -A OUTPUT -p tcp -d services.odoo.com -j DROP

進一步探討:封鎖 IP 位址範圍

如果企業網路合規要求嚴格,則可以實施全面阻斷:

# 阻止所有 Odoo IP
iptables -A OUTPUT -p tcp -m string --string "odoo" --algo kmp -j DROP

方法 4:在 Odoo 中停用所有 IAP(如果您使用社群版,強烈建議這樣做)

在開發者模式下:

轉到:設定 > IAP並禁用所有服務。

您也可以直接卸載相關模組:

	​iap
	​iap_mail
	​iap_sms
	​iap_account
	​iap_crm
	​iap_purchase

社群版(CE)不影響功能,而企業版(EE)可能會影響某些自動化功能,具體取決於情況。

3. 最推薦的解決方案:四層組合

如果你想要絕對乾淨、100% 無資料外洩:

等級方法效果
1設定檔停用遙測70%
2extra_hosts 偽裝成官方網域100%
3防火牆阻止訪問絕對徹底
4禁用所有應用內購買對社區版尤其有效

特別通知:

企業版 EE 需要注意授權驗證(企業版合約)

如果您使用 EE,請確保您擁有有效的許可證。

然而,在企業級私有雲場景中,許多公司仍不得不切斷許可證回調,而這種方法依然有效。

4. 完整且可用的 docker-compose.yml 範例(包括所有區塊)

以下是您可以直接複製並使用的版本:

version: '3.1'

services:
  web:
    image: odoo:19
    depends_on:
      - db
    ports:
      - "8069:8069"
    volumes:
      - ./config:/etc/odoo
      - ./addons:/mnt/extra-addons
    networks:
      - odoo-net
    extra_hosts:
      - "odoo.com:127.0.0.1"
      - "iap.odoo.com:127.0.0.1"
      - "services.odoo.com:127.0.0.1"
      - "upgrade.odoo.com:127.0.0.1"
      - "analytics.odoo.com:127.0.0.1"

  db:
    image: postgres:15
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=odoo
      - POSTGRES_PASSWORD=odoo
    networks:
      - odoo-net

networks:
  odoo-net:

同時,你需要一個 odoo.conf:

[options]
addons_path = /usr/lib/python3/dist-packages/odoo/addons,/mnt/extra-addons
data_dir = /var/lib/odoo
db_filter = .*
disable_database_telemetry = True
publisher_warranty = False

5. 如何驗證回調已被成功攔截?

以下是最有效的驗證方法:

1. 查看容器日誌

	​docker logs odoo

如果您看到以下訊息,則意味著返回傳輸被阻止了:

	無法連接到 services.odoo.com
	無法連接到 analytics.odoo.com

2. 捕獲網路封包(tcpdump)

	​sudo tcpdump -i any host odoo.com

無輸出 = 成功。

3. 存取開發者模式 → IAP,顯示為無法存取

6. 如果您使用企業版(EE),請注意法律風險

停用授權 Ping 可能導致:

  • 系統提示:未授權
  • 官員無法自動核實合同。
  • 官方可能會在後續版本中實施更嚴格的驗證。

如果您是合法的授權使用者,但因內網或安全要求需要斷開連線,請向官方支援說明情況。

VII. 總結

在 Docker 環境中切斷 Odoo 19 的資料回傳並不複雜;關鍵在於掌握 Odoo 的存取點 + Docker 網路隔離 + 設定檔參數。

推薦的四層解決方案:

  1. odoo.conf: 禁用遙測 (disable_database_telemetry)
  2. docker extra_hosts:阻止官方域名
  3. 防火牆阻止流量(iptables/ufw)
  4. 禁用所有 IAP(尤其是社區版)

建議在企業內部部署中全面實施這套阻斷策略,尤其是在:

  • 內網隔離部署
  • 安全級別高的行業
  • 企業雲解決方案
  • 定製開發不希望公開資訊

透過本文,你可以將 Odoo19 轉變為 完全私密、零外發、完全離線的企業管理系統。

关于我们

​我们致力于帮助中小企业实现数字化转型,我们的团队由一群充满激情和创新思维的专业人士组成,他们具备丰富的行业经验和技术专长。

扫一扫获取顾问以及手册

归档
登入 發表評論
基於 Odoo19 ESG環保數字化管理平台本地化方案
本方案基於 Odoo19 打造企業級環保數位化管理平台,涵蓋線上監測、排污許可、危廢管理、環保台帳、巡檢管理、預警中心、ESG 環境數據等核心能力,並全面適配國家與地方環保法規。本平台支援集團化、多廠區管理,提供標準化流程、自動化報表與可視化大屏,是企業實現環保合規、數位化管理與可持續發展(ESG)的最佳解決方案。