Posts for: #Docker

全网广告过滤:AdGuard Home 部署实战

为什么需要广告过滤?

浏览器装插件只能过滤网页广告,手机 App、电视、IoT 设备的广告管不了。AdGuard Home 是 DNS 级别的解决方案——在路由器层面拦截广告域名,全网所有设备自动生效。

实际效果:

  • ✅ 手机 App 开屏广告消失
  • ✅ 电视盒子广告过滤
  • ✅ 网页弹窗、追踪器拦截
  • ✅ YouTube 广告减少(配合规则)
  • ✅ 提升网页加载速度,节省带宽

技术原理

设备请求广告域名 → AdGuard Home 拦截 → 返回 0.0.0.0 → 广告加载失败
设备请求正常域名 → AdGuard Home 转发 → 返回真实 IP → 正常访问

部署步骤

第一步:创建项目目录

mkdir -p ~/docker/adguard
cd ~/docker/adguard

第二步:编写 docker-compose.yml

services:
  adguard:
    image: adguard/adguardhome:latest
    container_name: adguard
    restart: unless-stopped
    ports:
      - "53:53/tcp"      # DNS 服务
      - "53:53/udp"      # DNS 服务
      - "3000:3000"      # 管理面板
    volumes:
      - ./work:/opt/adguardhome/work    # 工作数据
      - ./conf:/opt/adguardhome/conf    # 配置文件
    environment:
      - http_proxy=      # OrbStack 代理兼容
      - https_proxy=
      - ALL_PROXY=

第三步:启动容器

docker compose up -d

第四步:初始化设置

  1. 浏览器打开 http://你的NAS-IP:3000
  2. 按向导设置管理员账号密码
  3. DNS 监听端口保持默认 53

第五步:配置上游 DNS

进入 设置 → DNS 设置 → 上游 DNS 服务器,添加:

[]

内网服务公网访问:Lucky DDNS + 反向代理实战

为什么需要 DDNS 和反向代理?

家里的 NAS、Home Assistant、Emby 等服务只能在内网访问,出门就断了。Lucky 解决两个问题:

  1. DDNS:家宽 IP 会变,自动更新域名解析,始终指向你家
  2. 反向代理:把多个内网服务通过不同域名/端口暴露出去,统一 HTTPS 入口

实际应用场景:

  • 🏠 外网访问飞牛 NAS 文件
  • 🎬 出门看 Emby 影视库
  • 🎵 LX Music 歌曲同步
  • 🏡 远程控制 Home Assistant
  • 📊 查看监控面板

技术架构

外网用户
    ↓
域名 xxx.1681588.xyz(阿里云 DNS)
    ↓
家庭宽带 IP(动态)
    ↓
路由器端口转发(8888 → NAS:8888)
    ↓
Lucky 反向代理
    ↓
┌─────────────┬─────────────┬─────────────┐
│ LX Music    │ Emby        │ 其他服务    │
│ :9527       │ :8096       │ :xxxx       │
└─────────────┴─────────────┴─────────────┘

部署步骤

第一步:创建项目目录

mkdir -p ~/docker/lucky
cd ~/docker/lucky

第二步:编写 docker-compose.yml

services:
  lucky:
    image: gdy666/lucky:latest
    container_name: lucky
    restart: unless-stopped
    ports:
      - "16601:16601"    # 管理面板
      - "8888:8888"      # 反向代理端口
    volumes:
      - ./config:/goodluck    # 配置持久化
    environment:
      - http_proxy=     # OrbStack 代理兼容
      - https_proxy=
      - ALL_PROXY=
    network_mode: bridge   # 必须用 bridge,host 模式不通

第三步:启动容器

docker compose up -d

第四步:访问管理面板

浏览器打开 http://你的NAS-IP:16601

[]

自建音乐服务器:LX Music 歌曲同步方案

为什么自建音乐同步?

LX Music(洛雪音乐助手)是开源音乐播放器,但默认不能跨设备同步。自建同步服务后:

  • ✅ 手机/电脑/平板歌单实时同步
  • ✅ 收藏、播放历史云端保存
  • ✅ 不依赖第三方服务,数据在自己手里
  • ✅ 多设备无缝切换

技术方案

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   手机 App   │     │  电脑客户端  │     │  网页版      │
└──────┬───────┘     └──────┬───────┘     └──────┬───────┘
       │                    │                    │
       └────────────────────┼────────────────────┘
                            ↓
                   LX Music 同步服务(:9527)
                            ↓
                   ┌────────────────┐
                   │   NAS 存储     │
                   │   歌曲文件     │
                   └────────────────┘

部署步骤

第一步:创建项目目录

mkdir -p ~/docker/lxmusic
cd ~/docker/lxmusic

第二步:编写 docker-compose.yml

services:
  lxmusic:
    image: lyswhut/lx-music-sync-server:latest
    container_name: lxmusic
    restart: unless-stopped
    ports:
      - "9527:9527"      # 同步服务端口
    volumes:
      - ./data:/data     # 数据持久化
    environment:
      - http_proxy=      # OrbStack 代理兼容
      - https_proxy=
      - ALL_PROXY=

第三步:启动容器

docker compose up -d

第四步:验证服务

curl http://localhost:9527
# 返回 LX Music 同步服务信息表示成功

客户端配置

手机端(Android/iOS)

  1. 打开 LX Music App
  2. 进入 设置 → 同步
  3. 服务器地址填:http://你的NAS-IP:9527
  4. 点击 连接
  5. 输入自定义的同步密码

电脑端(Windows/macOS/Linux)

  1. 打开 LX Music 桌面版
  2. 进入 设置 → 同步
  3. 服务器地址填:http://你的NAS-IP:9527
  4. 点击 连接
  5. 输入同步密码

网页版

  1. 打开 LX Music 网页版
  2. 设置中配置同步服务器地址
  3. 使用相同密码连接

外网访问

方案一:Lucky 反向代理(推荐)

如果已配置 Lucky DDNS + 反向代理:

[]

透明代理网关:mihomo 部署实战

为什么需要透明代理?

科学上网工具(Clash、V2Ray 等)需要每台设备单独配置,手机、电视、IoT 设备不方便装软件。mihomo(原 Clash Meta) 作为透明代理网关,让全网设备自动走代理,无需单独配置。

实际效果:

  • ✅ 全网设备自动科学上网
  • ✅ 手机/电视/IoT 无需装软件
  • ✅ 智能分流(国内直连、国外代理)
  • ✅ 路由器 DNS 指向即可生效
  • ✅ RESTful API 管理

技术架构

设备请求国内域名 → mihomo 分流规则 → 直连 → 速度快
设备请求国外域名 → mihomo 分流规则 → 代理节点 → 科学上网

部署步骤

第一步:创建项目目录

mkdir -p ~/docker/mihomo/config
cd ~/docker/mihomo

第二步:编写 docker-compose.yml

services:
  mihomo:
    image: metacubex/mihomo:latest
    container_name: mihomo
    restart: unless-stopped
    ports:
      - "7890:7890"      # HTTP 代理
      - "7891:7891"      # SOCKS5 代理
      - "9090:9090"      # API 管理面板
    volumes:
      - ./config:/root/.config/mihomo    # 配置目录
    environment:
      - http_proxy=      # OrbStack 代理兼容
      - https_proxy=
      - ALL_PROXY=

第三步:准备配置文件

./config/ 目录下创建 config.yaml

[]