Odoo19 Docker 部署后如何彻底切断官方数据回传?完整配置教程(含 Docker Compose 示例

Odoo 从很早的版本开始,就默认开启了 Telemetry(远程数据回传/Usage Statistics)。这些数据会周期性上传到 Odoo 官方服务器,包括但不限于:服务器信息、模块使用情况、用户数量、安装情况、系统健康度等。对于部分企业来说,这本身并不是坏事,可以帮助 Odoo 改进产品。

​Odoo 从很早的版本开始,就默认开启了 Telemetry(远程数据回传/Usage Statistics)。这些数据会周期性上传到 Odoo 官方服务器,包括但不限于:服务器信息、模块使用情况、用户数量、安装情况、系统健康度等。对于部分企业来说,这本身并不是坏事,可以帮助 Odoo 改进产品。然而很多公司出于以下原因,必须禁用所有对外的数据传输:​

    • 安全合规需求(如国企、能源、金融行业)
    • 内网部署
    • 不希望外部统计内部系统使用情况
    • 禁止 Odoo 自联网检查 License(尤其社区版无影响,但企业版很敏感)
    • 自建云或 Docker 生产环境要求隔离

​本篇文章将从 Docker Compose 部署场景 出发,用实际文件与配置告诉你:如何彻底切断 Odoo19 的所有官方回传,适用于:

  • Odoo 19 CE 社区版
  • Odoo 19 EE 企业版(需特别注意 Enterprise Contract)
  • Docker Compose 方式部署
  • 支持 Nginx + Odoo + PostgreSQL 架构

一、Odoo19 数据回传(Telemetry)到底包含哪些?

官方 Telemetry 机制主要包含:

功能目的传输到
Telemetry Usage Data提交使用习惯、模块启用情况、用户数odoo.com
Updates Check检查版本更新odoo.com
Enterprise License Ping验证许可证odoo.com
IAP 服务(如邮箱、短信)内置购买服务iap.odoo.com
GeoIP解析 IP 归属geoip.odoo.com

​如果你部署在公网环境,默认会持续自动上传。

二、Docker Compose 环境中,如何彻底切断回传?

​下面提供 四层防御,建议全部启用来确保干净彻底。

方法一:Odoo 配置文件中禁用 Telemetry(最基础)

​编辑你的 odoo.conf:

​通常 docker-compose 会把配置挂载在:

	​./config/odoo.conf

​在 [options] 中添加:

	​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 用于关闭 Telemetry 的隐藏配置。

注意:部分版本未公开,但 Odoo19 及部分 Odoo18、17 已可用。

​方法二:Docker Compose 内禁用网络访问(iptables/防火墙)

即使 Odoo 层关闭了 Telemetry,为了保险,建议对容器做网络隔离。

例如,如果你的 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 把所有官方域名指向本地,彻底断网。

必须屏蔽的域名:

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

这是非常 干净且零副作用 的方式。

方法三:通过防火墙封锁 Telemetry 域名(推荐企业级)

如果你在云服务器或物理机上运行 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

方法四:Odoo 内禁用所有 IAP(如果你使用社区版强烈建议)

在开发者模式中:

进入:设置 > IAP 禁用全部服务。

也可以直接卸载相关模块:

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

社区版(CE)不会影响功能,企业版(EE)可能影响部分自动化功能,视情况决定。

三、最推荐的方案:四层组合拳

如果你想 绝对干净、100% 无数据外发

层级方式效果
1配置文件关闭 Telemetry70%
2extra_hosts 伪装官方域名100%
3防火墙封锁访问绝对彻底
4禁用所有 IAP对社区版特别有效

特别提示:

企业版 EE 需要注意许可证验证(企业版合同)

如果你使用 EE,请确保你具备合法 License。

但企业级自建云场景中,很多公司仍必须切断许可证回传,此方法依然有效。

四、完整可用的 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

五、如何验证已经成功阻断回传?

以下是最有效的验证方式:

1. 查看容器日志

	​docker logs odoo

若看到如下信息,代表回传被阻断:

	​Failed to reach services.odoo.com
	​Failed to reach analytics.odoo.com

2. 捕获网络包(tcpdump)

	​sudo tcpdump -i any host odoo.com

没有任何输出 = 已成功。

3. 访问开发者模式 → IAP,显示不可访问

六、如果你使用企业版(EE),注意法律风险

切断 License Ping 可能导致:

  • 系统提示未授权
  • 官方无法自动验证合同
  • 官方在后续版本中可能做更严格验证

如果你是合法授权用户,但因为内网或 security 需要切断,可与官方 Support 说明情况。

七、总结

Docker 环境的 Odoo19 要切断数据回传并不复杂,关键是 掌握 Odoo 的访问点 + docker 网络隔离 + 配置文件参数

推荐的四层方案:

  1. odoo.conf:禁用 Telemetry(disable_database_telemetry)
  2. docker extra_hosts:屏蔽官方域名
  3. 防火墙切断流量(iptables/ufw)
  4. 禁用所有 IAP(尤其社区版)

企业内部部署推荐完全使用这一套封锁策略,尤其在:

  • 内网隔离部署
  • 安全等级高的行业
  • 企业云方案
  • 客制化开发不希望暴露信息

通过本篇文章,你可以将 Odoo19 打造成一个 完全私有、零外发、纯离线的企业管理系统

关于我们

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

扫一扫获取顾问以及手册

归档
Sign in to leave a comment
基于 Odoo19 ESG环保数字化管理平台本地化方案
本方案基于 Odoo19 打造企业级环保数字化管理平台,涵盖在线监测、排污许可、危废管理、环保台账、巡检管理、预警中心、ESG 环境数据等核心能力,并全面适配国家与地方环保法规。本平台支持集团化、多厂区管理,提供标准化流程、自动化报表与可视化大屏,是企业实现环保合规、数字化管理与可持续发展(ESG)的最佳解决方案。