feat(network): OpenWrt 接管主路由,代理与文档统一切换至 192.168.68.1

- QWRT (AX1800 Pro) PPPoE 拨号接管主路由,京东无线宝转 AP/Mesh 模式
- emby/jellyfin 移除 media-player 目录,改由飞牛应用中心安装
- proxy.env 及全部文档从旁路由 68.109 切换至主路由 68.1
This commit is contained in:
王磊
2026-10-01 18:24:55 +08:00
parent 4b6b34f3ae
commit 76c44b39fe
8 changed files with 31 additions and 91 deletions
+13 -11
View File
@@ -8,24 +8,26 @@
┌─────────────────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────────┐
│ 互联网 │ │ 互联网 │
└─────────────────────────────┬───────────────────────────────┘ └─────────────────────────────┬───────────────────────────────┘
│ │ PPPoE(光猫桥接)
┌─────────▼─────────┐ ┌─────────▼─────────┐
│ 主路由 │ │ 主路由 │
│ 192.168.68.1 │ │ 192.168.68.1 │
│ 网关 + DHCP │ │ JDCloud AX1800 Pro (QWRT) │
│ PPPoE + DHCP + IPv6-PD │
│ OpenClash + Tailscale │
└─────────┬─────────┘ └─────────┬─────────┘
│ │
┌─────────────────────┼─────────────────────┐ ┌─────────────────────┼─────────────────────┐
│ │ │ │ │ │
┌───────▼────────┐ ┌────────▼────────┐ ┌───────▼────────┐ ┌───────▼────────┐ ┌────────▼────────┐ ┌───────▼────────┐
│ 旁路由 │ │ 宿主机 (NAS) │ │ 客户端设备 │ │ AP/Mesh 节点 │ │ 宿主机 (NAS) │ │ 客户端设备 │
│ 192.168.68.109 │ │ 192.168.68.168 │ │ 192.168.68.x │ │ 京东无线宝 x2 │ │ 192.168.68.168 │ │ 192.168.68.x │
│ OpenClash │ │ Docker 各服务 │ │ PC / 手机 │ │ 仅 WiFi 覆盖 │ │ Docker 各服务 │ │ PC / 手机 │
└────────────────┘ └─────────────────┘ └────────────────┘ └────────────────┘ └─────────────────┘ └────────────────┘
``` ```
- **主路由 (192.168.68.1)**:负责物理拨号接入与局域网 DHCP 分配。 - **主路由 (192.168.68.1)**:JDCloud AX1800 Pro(QWRT,NSS 硬件加速),PPPoE 拨号、DHCP/IPv6-PD 分发,内置 OpenClash(混合模式 `redir-host-tun` + 规则模式 `rule`)与 Tailscale。
- **旁路由 (192.168.68.109)**:运行 OpenClash,混合模式 (`redir-host-tun`) + 规则模式 (`rule`)。 - **AP/Mesh 节点 (192.168.68.125 / .144)**:京东云无线宝,AP 模式仅提供 WiFi 覆盖,不参与路由与 DHCP。
- **宿主机 / NAS (192.168.68.168)**:承载全部 Docker 服务与数据存储。 - **宿主机 / NAS (192.168.68.168)**:承载全部 Docker 服务与数据存储。
## 2. 外部访问策略(当前状态:纯内网直连) ## 2. 外部访问策略(当前状态:纯内网直连)
@@ -36,12 +38,12 @@
## 3. 代理规范 (`proxy.env`) ## 3. 代理规范 (`proxy.env`)
需要拉取海外源数据或访问特定 API 的容器(如 MoviePilot 刮削 TMDB/Fanart、GitHub API、Docker 拉取等),通过引入 `proxy.env` 走旁路由代理: 需要拉取海外源数据或访问特定 API 的容器(如 MoviePilot 刮削 TMDB/Fanart、GitHub API、Docker 拉取等),通过引入 `proxy.env` 走主路由 OpenClash 代理:
```env ```env
HTTP_PROXY=http://192.168.68.109:7890 HTTP_PROXY=http://192.168.68.1:7890
HTTPS_PROXY=http://192.168.68.109:7890 HTTPS_PROXY=http://192.168.68.1:7890
ALL_PROXY=socks5://192.168.68.109:7891 ALL_PROXY=socks5://192.168.68.1:7891
NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12 NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12
``` ```
+9 -15
View File
@@ -16,7 +16,7 @@
## 2. 核心架构原则 (Architecture Principles) ## 2. 核心架构原则 (Architecture Principles)
1. **模块化与垂直隔离**: 1. **模块化与垂直隔离**:
按功能层级组织目录(下载层 `media-cloud`/`media-pt`、处理层 `media-servers`、流媒体层 `media-player`、工具层 `development`/`lucky` 等),每个单元独立维护 `docker-compose.yml`,严禁建立单点巨石 Compose。 按功能层级组织目录(下载层 `media-cloud`/`media-pt`、处理层 `media-servers`、工具层 `development`/`lucky` 等),每个单元独立维护 `docker-compose.yml`,严禁建立单点巨石 Compose。[emby/jellyfin 已改由飞牛应用中心安装,media-player 目录已移除]
2. **唯一配置真实源 (SSOT)**: 2. **唯一配置真实源 (SSOT)**:
根目录 `.env` 是所有共享配置与密码凭据的唯一源头。各子目录通过符号链接 `.env -> ../.env` 集中引用,严禁在 Compose 文件或子配置中硬编码敏感值。 根目录 `.env` 是所有共享配置与密码凭据的唯一源头。各子目录通过符号链接 `.env -> ../.env` 集中引用,严禁在 Compose 文件或子配置中硬编码敏感值。
3. **共享网络通信 (`trim-default`)**: 3. **共享网络通信 (`trim-default`)**:
@@ -43,17 +43,15 @@
│ └── docker-service-ops/ # 容器启停排障 SOP │ └── docker-service-ops/ # 容器启停排障 SOP
├── .env # 全局主环境变量(唯一真实源) ├── .env # 全局主环境变量(唯一真实源)
├── media.env # 媒体存储路径专有变量 ├── media.env # 媒体存储路径专有变量
├── proxy.env # 旁路由代理环境变量 ├── proxy.env # 代理环境变量(指向主路由 OpenClash)
├── AGENTS.md # 本规范总纲(顶级 SSOT,各工具原生直接支持) ├── AGENTS.md # 本规范总纲(顶级 SSOT,各工具原生直接支持)
├── README.md # 项目端口与历史概览 ├── README.md # 项目端口与历史概览
├── media-cloud/ # 云端下载层 (openlist, pansou, quark-auto-save, aria2) ├── media-cloud/ # 云端下载层 (openlist, aria2) [pansou, quark-auto-save 已迁移至 Oracle ARM]
├── media-pt/ # PT 协议下载层 (qbittorrent, transmission) ├── media-pt/ # PT 协议下载层 (qbittorrent, transmission)
├── media-servers/ # 元数据处理层 (moviepilot, music-tag-web, bonita, danmu-api) ├── media-servers/ # 元数据处理层 (moviepilot, bonita) [danmu-api 已迁移至 Oracle ARM, music-tag-web 已被飞牛音乐替代下线;emby/jellyfin 已改由飞牛应用中心安装]
├── media-player/ # 流媒体播放层 (emby, jellyfin)
├── calibre-web/ # 电子书服务 ├── calibre-web/ # 电子书服务
├── development/ # 开发与代码管理服务 (gitea, sjzl) ├── development/ # 开发与代码管理服务 (gitea, sjzl)
├── lucky/ # 反向代理与运维管理工具 └── lucky/ # 反向代理与运维管理工具
└── oracle-a1-retry/ # 外部自动化调度工具
``` ```
--- ---
@@ -61,8 +59,8 @@
## 4. 网络架构与局域网服务访问规范 ## 4. 网络架构与局域网服务访问规范
### 4.1 网络拓扑 ### 4.1 网络拓扑
- **主路由 (`192.168.68.1`)**:负责局域网 DHCP 分配与网关接入。 - **主路由 (`192.168.68.1`)**:JDCloud AX1800 Pro(QWRT/OpenWrt,NSS 硬件加速),PPPoE 拨号(光猫桥接)、DHCP/IPv6 分发、运行 OpenClash(HTTP: `7890`, SOCKS5: `7891`)与 Tailscale。
- **旁路由 (`192.168.68.109`)**:运行 OpenClash,负责代理流量转发(HTTP: `7890`, SOCKS5: `7891`)。 - **AP/Mesh 节点 (`192.168.68.125` JDBox_Athena / `192.168.68.144` JDBox_Arthur)**:京东云无线宝,AP 模式专职 WiFi 覆盖,不参与路由/DHCP。
- **宿主机 (`192.168.68.168`)**:承载全部 Docker 服务。 - **宿主机 (`192.168.68.168`)**:承载全部 Docker 服务。
### 4.2 访问模式准则 ### 4.2 访问模式准则
@@ -73,15 +71,11 @@
| 服务分类 | 服务名称 | 内部端口 | 局域网访问地址 | 核心职责 | | 服务分类 | 服务名称 | 内部端口 | 局域网访问地址 | 核心职责 |
| :--- | :--- | :--- | :--- | :--- | | :--- | :--- | :--- | :--- | :--- |
| **媒体管理** | MoviePilot-v2 | 17021 | `http://192.168.68.168:17021` | 影视自动识别、TMDB 刮削与整理入库 | | **媒体管理** | MoviePilot V3 | 17021 | `http://192.168.68.168:17021` | 影视自动识别、TMDB 刮削与整理入库 |
| **媒体管理** | Music-Tag-Web | 17022 | `http://192.168.68.168:17022` | 音乐标签多源刮削、封面歌词补全与自动归档 |
| **媒体管理** | Danmu-API | 17025 | `http://192.168.68.168:17025` | 弹幕 API 接口服务 |
| **媒体管理** | Bonita | 17026 | `http://192.168.68.168:17026` | 媒体辅助工具 | | **媒体管理** | Bonita | 17026 | `http://192.168.68.168:17026` | 媒体辅助工具 |
| **PT 下载** | qBittorrent | 17030 | `http://192.168.68.168:17030` | BT/PT 任务下载 | | **PT 下载** | qBittorrent | 17030 | `http://192.168.68.168:17030` | BT/PT 任务下载 |
| **PT 下载** | Transmission | 17032 | `http://192.168.68.168:17032` | BT/PT 任务下载 | | **PT 下载** | Transmission | 17032 | `http://192.168.68.168:17032` | BT/PT 任务下载 |
| **网盘生态** | PanSou | 17080 | `http://192.168.68.168:17080` | 网盘资源搜索引擎 |
| **网盘生态** | OpenList | 17081 | `http://192.168.68.168:17081` | 网盘挂载与目录浏览 | | **网盘生态** | OpenList | 17081 | `http://192.168.68.168:17081` | 网盘挂载与目录浏览 |
| **网盘生态** | Quark-Auto-Save | 17082 | `http://192.168.68.168:17082` | 夸克自动转存与追更 |
| **网盘生态** | Aria2 | 17085 | `http://192.168.68.168:17085` | 直链下载 RPC 接口 | | **网盘生态** | Aria2 | 17085 | `http://192.168.68.168:17085` | 直链下载 RPC 接口 |
| **图书管理** | Calibre-Web | 17090 | `http://192.168.68.168:17090` | 电子书库管理 | | **图书管理** | Calibre-Web | 17090 | `http://192.168.68.168:17090` | 电子书库管理 |
| **开发服务** | Gitea | 17100 | `http://192.168.68.168:17100` | 私有 Git 服务 | | **开发服务** | Gitea | 17100 | `http://192.168.68.168:17100` | 私有 Git 服务 |
@@ -122,7 +116,7 @@ services:
restart: unless-stopped restart: unless-stopped
env_file: env_file:
- .env - .env
- proxy.env # 可选:需要外网/旁路由代理时使用 - proxy.env # 可选:需要外网代理(主路由 OpenClash)时使用
- media.env # 可选:媒体相关服务使用 - media.env # 可选:媒体相关服务使用
networks: networks:
- default - default
+4 -7
View File
@@ -47,7 +47,7 @@ done
- `TZ=Asia/Shanghai` - 所有容器的时区 - `TZ=Asia/Shanghai` - 所有容器的时区
- `PUID=1000`, `PGID=1000` - Linux 用户映射,用于文件权限控制 - `PUID=1000`, `PGID=1000` - Linux 用户映射,用于文件权限控制
- `NETWORK_NAME=trim-default` - 外部 Docker 网络名称 - `NETWORK_NAME=trim-default` - 外部 Docker 网络名称
- `HTTP_PROXY`/`HTTPS_PROXY` - 代理配置 `192.168.68.109:7890` - `HTTP_PROXY`/`HTTPS_PROXY` - 代理配置 `192.168.68.1:7890`(主路由 OpenClash)
- `ADMIN_USER`/`ADMIN_PASSWORD` - 通用管理员凭据 - `ADMIN_USER`/`ADMIN_PASSWORD` - 通用管理员凭据
- 数据库凭据:`MYSQL_ROOT_PASSWORD`、`MYSQL_PASSWORD`、`POSTGRES_PASSWORD`、`REDIS_PASSWORD` - 数据库凭据:`MYSQL_ROOT_PASSWORD`、`MYSQL_PASSWORD`、`POSTGRES_PASSWORD`、`REDIS_PASSWORD`
@@ -61,10 +61,9 @@ done
#### media-cloud (媒体云服务) #### media-cloud (媒体云服务)
**端口范围:** 17080-17085 **端口范围:** 17080-17085
- **pansou**: 网盘资源搜索,端口 17080
- **openlist**: 文件列表服务,端口 17081 - **openlist**: 文件列表服务,端口 17081
- **quark-auto-save**: 夸克自动转存/追更,端口 17082 - **aria2**: 网盘直链下载器,端口 17085
- **aria2**: 网盘直链下载器,端口 17085,配合 quark-auto-save 下载网盘资源到本地 Cloud/ *(注:pansou、quark-auto-save 已迁移至 Oracle ARM 云端运行)*
#### media-pt (PT 下载服务) #### media-pt (PT 下载服务)
**端口范围:** 17030-17033 **端口范围:** 17030-17033
@@ -74,10 +73,8 @@ done
#### media-servers (媒体管理服务) #### media-servers (媒体管理服务)
**端口范围:** 17021-17026 **端口范围:** 17021-17026
- **moviepilot**: 媒体管理,端口 17021,连接 qbittorrent 和 transmission - **moviepilot**: 媒体管理,端口 17021,连接 qbittorrent 和 transmission
- **music-tag-web**: 音乐标签,端口 17022
- **omnibox**: 媒体工具,端口 17023
- **danmu-api**: 弹幕 API,端口 17025
- **bonita**: 媒体工具,端口 17026 - **bonita**: 媒体工具,端口 17026
*(注:danmu-api 已迁移至 Oracle ARM 云端;music-tag-web 已被飞牛音乐取代下线)*
#### media-player (媒体播放服务) #### media-player (媒体播放服务)
**端口范围:** 17060-17061 **端口范围:** 17060-17061
-1
View File
@@ -1 +0,0 @@
/vol1/1000/docker/.env
-50
View File
@@ -1,50 +0,0 @@
services:
emby:
image: amilys/embyserver:latest
container_name: emby
restart: unless-stopped
env_file:
- .env
- proxy.env
- media.env
networks:
- default
ports:
- "17060:8096"
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ./emby/config:/config
- ${MEDIA_ROOT}:/media
devices:
- /dev/dri:/dev/dri
jellyfin:
image: nyanmisaka/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
env_file:
- .env
- proxy.env
- media.env
networks:
- default
ports:
- "17061:8096"
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ./jellyfin/config:/config
- ./jellyfin/cache:/cache
- ${PORN_ROOT}:/porn
devices:
- /dev/dri:/dev/dri
networks:
default:
name: trim-default
external: true
-1
View File
@@ -1 +0,0 @@
/vol1/1000/docker/media.env
-1
View File
@@ -1 +0,0 @@
/vol1/1000/docker/proxy.env
+5 -5
View File
@@ -6,11 +6,11 @@
# 不需要代理的服务(如 BT 下载)不要引用此文件 # 不需要代理的服务(如 BT 下载)不要引用此文件
# ============================================================================== # ==============================================================================
# HTTP/HTTPS 代理配置 # HTTP/HTTPS 代理配置(主路由 QWRT/OpenClash)
HTTP_PROXY=http://192.168.68.109:7890 HTTP_PROXY=http://192.168.68.1:7890
HTTPS_PROXY=http://192.168.68.109:7890 HTTPS_PROXY=http://192.168.68.1:7890
http_proxy=http://192.168.68.109:7890 http_proxy=http://192.168.68.1:7890
https_proxy=http://192.168.68.109:7890 https_proxy=http://192.168.68.1:7890
# 不走代理的地址列表 # 不走代理的地址列表
NO_PROXY=localhost,127.0.0.1,192.168.68.0/24 NO_PROXY=localhost,127.0.0.1,192.168.68.0/24