ESPHome 是一款针对 ESP8266 和 ESP32 芯片的开源系统,允许用户通过 YAML 配置文件构建物联网设备,无需深入底层代码。它不仅能与 Home Assistant 深度集成,也可独立运行。本文将介绍如何在 Linux 环境下本地部署 ESPHome,并通过 Docker 容器配合内网穿透工具实现外网访问。
本地环境搭建
本教程基于 Ubuntu 系统演示。首先更新软件包列表并安装 Python 相关依赖:
sudo apt-get update && sudo apt-get install -y python3-pip python3-dev git
接着安装虚拟环境模块,创建隔离的运行空间(例如 ~/venv_esphome):
sudo apt install -y python3-venv
python3 -m venv ~/venv_esphome
source ~/venv_esphome/bin/activate
使用国内源加速安装 ESPHome 核心组件,并验证版本:
pip install esphome -i https://pypi.tuna.tsinghua.edu.cn/simple
esphome --version
初始化项目目录并使用向导生成基础配置:
mkdir ~/esphome-dashboard
cd ~/esphome-dashboard
esphome wizard your_device.yaml
启动 Dashboard 服务后,在浏览器访问 http://服务器 IP:6052 即可进入管理界面。
配置外网访问
由于局域网服务默认无法从外部直接连接,我们需要借助内网穿透工具。这里采用 Docker 容器化部署方式,避免对宿主机环境造成过多干扰。
-
准备镜像 下载并加载内网穿透工具的 Docker 镜像。如果官方提供镜像仓库,建议优先使用
docker pull命令拉取;若需手动导入压缩包,可使用以下命令:wget <镜像下载地址> docker load -i lyx-docker-x86_64.tar -
启动容器 运行容器时,需要传入设备的安装码(通常需在管理端获取)。设置
--restart=always确保开机自启,并使用--net=host模式以简化网络映射:docker run --name lyx -it --restart=always --net=host -e code=<你的安装码> luyouxia/lyx启动成功后,终端会显示登录成功的 Token 信息。此时可按
Ctrl+C退出前台运行,后续可通过docker start lyx后台恢复。 -
配置映射规则 在管理客户端中,找到'内网映射'功能。选择刚才添加的设备,点击'添加映射'。
- 类型选择【原生端口】
- 内网地址填写服务器 IP 及 ESPHome 端口(如
192.168.x.x:6052) - 保存后等待约 30 秒,系统会自动更新路由配置
-
验证访问 映射生效后,复制生成的公网地址。在外网环境下打开浏览器输入该地址,即可看到局域网内的 ESPHome 界面。
注意事项
- 容器参数中的
--net=host模式会占用宿主机的端口,请确保 6052 端口未被其他服务占用。


