ESXi 安装 AdGuard Home
新建虚拟主机
本文使用 ESXi 中的 Ubuntu x86-64 虚拟机作为示例,2 vCPU、2 GB 内存和 10 GB 磁盘是示例分配值;日志保留量较大时需要更多磁盘。为虚拟机分配固定 LAN 地址,并确认其他设备可访问。截图沿用既有安装界面,不代表已验证所有 Ubuntu/ESXi 版本。

使用ubuntu x64 镜像

官方一键安装脚本
sh
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -vsh
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v -rsh
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v -u安装脚本会注册服务。以下每个命令只有一个动作,按需单独执行;不要把 start|stop 这样的备选写法当作 shell 命令:
sh
sudo /opt/AdGuardHome/AdGuardHome -s statussh
sudo /opt/AdGuardHome/AdGuardHome -s startsh
sudo /opt/AdGuardHome/AdGuardHome -s stopsh
sudo /opt/AdGuardHome/AdGuardHome -s restart服务注册和首次启动说明见 AdGuard Home 官方入门文档。重装、卸载前先备份配置与数据,不把它们作为首次安装的连续步骤执行。
安装完成
安装完成之后访问地址为 http://ip:3000/ ,此为ubuntu的静态IP地址+3000端口号

http://ip:3000/配置 AdGuardHome
端口配置
- 网页管理界面监听端口为
80 - DNS 服务监听端口为
53,普通 DNS 需允许 LAN 访问 TCP/UDP 53。
安装前用 sudo ss -lntup 检查端口占用。Ubuntu 的 systemd-resolved 等服务可能占用本机 53 端口;按实际监听地址处理冲突,不要盲目禁用系统解析服务。管理端口 80 如已占用可另选端口,之后使用配置后的地址登录。
设置账号密码

常规设置 部分

DNS 设置
上游 DNS 服务器
md
tls://dot.360.cn
https://doh.360.cn/dns-query
tls://dns.pub
https://dns.pub/dns-query
tls://dns.alidns.com
https://dns.alidns.com/dns-query
tls://dns.ipv6dns.com
https://dns.ipv6dns.com/dns-queryBootStrap DNS 服务器地址
md
1.1.1.1:53
114.114.114.114:53
119.29.29.29
223.5.5.5
180.76.76.76
2400:3200::1
2400:da00::6666
240C::6666过滤器设置
先使用管理界面内置的 DNS 封锁清单选择器,启用少量适合自己的列表并更新。浏览器广告过滤列表中的元素隐藏、脚本等规则不等同于 DNS 规则,不能因能下载就认定全部生效。
新增列表后确认更新时间和解析条目数,再在查询日志中检查实际命中规则。若正常网站受影响,按日志定位并添加例外或停用对应列表;DNS 过滤无法消除与正常内容共用域名的全部广告。
配置 OpenWrt
接口 - Lan - 基本设置
如需让路由器自身使用 AdGuard Home,填写虚拟机的固定 LAN 地址。不要再把 AdGuard Home 的上游指回同一路由器的转发 DNS,否则可能形成循环。

接口 - Lan - 高级设置 - DHCP - 高级设置
假设 AdGuard Home 地址为 192.168.1.3,DHCP 选项填写 6,192.168.1.3(无加号)。由同一网段唯一的 DHCP 服务器下发,保存后让客户端重新获取租约。IPv6 的 DNS 通告需要另行核对,浏览器安全 DNS/系统私人 DNS 也可能绕过这里。

接口 - Wan - 高级设置
WAN 上游 DNS 按网络实际需求配置,不要求 LAN、WAN 所有 DNS 栏位都重复填写。使用 AdGuard Home 作为路由器上游时,要保证虚拟机可达且它自己的上游不形成回路。
客户端执行 nslookup example.com 192.168.1.3 后,应在 AdGuard Home 查询日志看到这次请求;再执行不指定服务器的 nslookup example.com,确认日常解析同样进入 AdGuard Home。

扩容 AdGuardHome
先备份并扩大虚拟磁盘
备份虚拟机和 AdGuard Home 配置,确认备份可恢复;关闭虚拟机后,在 ESXi 编辑虚拟硬盘容量,例如从 10 GB 增至 25 GB。这里增加的是磁盘,不是内存。

SSH 连接并确认磁盘布局
启动 Ubuntu 后检查根文件系统、分区与剩余空间:
sh
lsblk -f
findmnt -no SOURCE,FSTYPE /
df -hT /
下文仅适用根文件系统直接位于普通分区、格式为 ext4、该分区后面有连续未分配空间的情况。示例使用磁盘 /dev/sda、分区 /dev/sda2。若实际为 /dev/mapper/...、LVM、LUKS、XFS 或布局不同,先按对应存储方案处理,不能照抄以下设备名和命令。
扩大已有分区
Ubuntu 安装分区扩容工具:
sh
sudo apt update
sudo apt install cloud-guest-utils先预览,不写分区表;注意磁盘名与分区编号之间有空格:
sh
sudo growpart -N /dev/sda 2核对预览中的目标分区、起始扇区保持不变、结束位置扩大且不覆盖其他分区,再执行:
sh
sudo growpart /dev/sda 2随后用 lsblk 确认分区容量已增大。若内核未重读新分区表,按工具提示重启后再次检查;出现错误先停止,不要改用删除分区并接受默认起点的办法。
扩大 ext4 文件系统
确认文件系统确为 ext4,且分区已扩大后执行:
sh
sudo resize2fs /dev/sda2resize2fs 调整现有文件系统大小,不是格式化。不要对这个已有数据的分区执行 mkfs。参数依据:growpart 手册、resize2fs 手册。
查看结果
sh
lsblk -f
df -hT /
sudo /opt/AdGuardHome/AdGuardHome -s status确认文件系统容量增加、服务正常,再从客户端发起一次 DNS 查询并检查查询日志。若仍未增加,应区分虚拟磁盘、分区和文件系统哪一层尚未扩容。
相关 ESXi 教程
安装前可先检查 ESXi 安装与虚拟网络配置;如果 AdGuardHome 与软路由共用同一网络,可对照 ESXi 安装 OpenWrt 核对虚拟磁盘和网口配置。