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)的最佳解决方案。