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:
@@ -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
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 +0,0 @@
|
|||||||
/vol1/1000/docker/.env
|
|
||||||
@@ -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 +0,0 @@
|
|||||||
/vol1/1000/docker/media.env
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
/vol1/1000/docker/proxy.env
|
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user