Auto-sync: 2026-04-27 00:02

This commit is contained in:
2026-04-27 00:02:56 +08:00
parent 997e25aae6
commit 23bef113dd
30 changed files with 1454 additions and 1037 deletions

View File

@@ -1,81 +1,135 @@
---
title: "Mac Mini 安装 FRP 0.65.0ARM64操作笔记"
type: source
tags: [frp, frpc, gatekeeper, mac-mini, macos, arm64]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/Mac Mini 安装 FRP 0.65.0ARM64操作笔记.md]]
## Summary (用中文描述)
- **核心主题**:在 Apple SiliconARM64Mac Mini M4 上安装配置 FRP 0.65.0 内网穿透客户端,实现通过公网 VPS 远程访问本地服务
- **问题域**macOS 服务器化运维、内网穿透、远程访问
- **方法/机制**:通过 FRPfrpc客户端连接远程 VPSfrps建立反向隧道结合 tmux/nohup/launchd 三种方式实现后台持久运行
- **结论/价值**:提供完整的 Mac Mini 服务器化运维指南,包含 macOS 特有障碍Gatekeeper的解决方案
## Key Claims (用中文描述)
- macOS 默认 `/opt` 目录需要手动创建并授权才能使用
- macOS Gatekeeper 会阻止未签名程序运行,必须通过 `xattr -rd com.apple.quarantine .` 解除限制
- launchd 是 macOS 推荐的开机自启服务管理方式,可通过 `launchctl` 管理生命周期
- 软链接symlink策略可实现 FRP 版本无缝切换
## Key Quotes
> "macOS 默认 `/opt` 需要手动创建" — 说明了 macOS 与 Linux 目录结构的差异,需手动初始化系统目录
> "xattr -rd com.apple.quarantine ." — macOS 特有的安全限制解除命令,针对整个目录递归执行
> "launchd推荐开机自启" — macOS 原生服务管理器,是进程持久化的推荐方案
## Key Concepts
- [[内网穿透]]:通过反向隧道技术,使公网用户能够访问处于 NAT 或防火墙后的内网服务
- [[frp]]Fast Reverse Proxy开源内网穿透工具包含 frps服务端和 frpc客户端
- [[TCP隧道]]:基于 TCP 协议的端口转发机制,将本地端口映射到远程服务
- [[launchd]]macOS 原生服务管理器,用于管理系统级和用户级守护进程
## Key Entities
- [[Mac Mini M4]]Apple Silicon Mac Mini作为家庭服务器运行 FRP 客户端
- [[VPS]]:公网虚拟专用服务器,运行 frps 作为内网穿透的中转站IP: 192.227.222.142
- [[frpc]]FRP 客户端程序,运行在 Mac Mini 上,建立与 frps 的连接
- [[frps]]FRP 服务端程序,运行在 VPS 上,接收公网请求并转发到 frpc
- [[Gatekeeper]]macOS 安全机制,阻止未签名应用运行
## Connections
- [[Mac Mini M4]] ← runs_on ← [[frpc]]
- [[VPS]] ← runs_on ← [[frps]]
- [[frpc]] ← creates_tunnel ← [[frps]]
- [[内网穿透]] ← enables ← [[远程SSH访问]]
- [[launchd]] ← manages ← [[frpc]] 进程生命周期
- [[Gatekeeper]] ← blocks ← [[frpc]] (需解除)
## Contradictions
- 无已知冲突
## Environment Details
| 项目 | 内容 |
|------|------|
| 系统 | macOSMac Mini M4|
| 架构 | Apple Silicon (ARM64) |
| 软件 | FRP 0.65.0 |
| 安装目录 | `/opt/frp/frp_0.65.0_darwin_arm64` |
| 客户端程序 | `frpc` |
| 配置文件 | `frpc.toml` |
| frps服务器 | 192.227.222.142:7000 |
| frps映射端口 | 6000SSH|
## Installation Steps
1. 创建安装目录:`sudo mkdir -p /opt/frp && sudo chown -R $(whoami) /opt/frp`
2. 下载 ARM64 版本:`wget https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_darwin_arm64.tar.gz`
3. 解压:`tar -xzf frp_0.65.0_darwin_arm64.tar.gz`
4. 解除 Gatekeeper`xattr -rd com.apple.quarantine .`
5. 配置 frpc.toml设置 serverAddr、serverPort、auth.token 和 proxies
6. 启动 frpc`./frpc -c frpc.toml`
## Background Running Methods
1. **tmux**(推荐开发环境):创建持久会话,断开 SSH 后仍保持运行
2. **nohup**(简单后台):重定向输出到日志文件,适合简单部署
3. **launchd**(生产环境):系统级服务,开机自启,推荐使用 plist 配置
## Best Practices
- 统一安装路径:`/opt/frp/<version>` 便于版本管理
- 创建软链接:`ln -sfn /opt/frp/frp_0.65.0_darwin_arm64 /opt/frp/current` 简化启动命令
- 日志独立存储:配置 StandardOutPath 和 StandardErrorPath 分离日志
- 进程守护:使用 launchd KeepAlive=true 确保服务持续运行
---
title: "Mac Mini 安装 FRP 0.65.0ARM64操作笔记"
type: source
tags: [frp, frpc, gatekeeper, mac-mini, macos, arm64]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/Mac Mini 安装 FRP 0.65.0ARM64操作笔记.md]]
## Summary (用中文描述)
- **核心主题**:在 Apple SiliconARM64Mac Mini M4 上安装配置 FRP 0.65.0 内网穿透客户端,实现通过公网 VPS 远程访问本地服务
- **问题域**macOS 服务器化运维、内网穿透、远程访问、SSH 安全隧道
- **方法/机制**:通过 FRPfrpc客户端连接远程 VPSfrps建立反向隧道结合 tmux/nohup/launchd 三种方式实现后台持久运行;通过 SSH 客户端配置简化远程访问
- **结论/价值**:提供完整的 Mac Mini 服务器化运维指南,包含 macOS 特有障碍Gatekeeper的解决方案和 SSH 客户端优化配置
## Key Claims (用中文描述)
- macOS 默认 `/opt` 目录需要手动创建并授权才能使用
- macOS Gatekeeper 会阻止未签名程序运行,必须通过 `xattr -rd com.apple.quarantine .` 解除限制
- launchd 是 macOS 推荐的开机自启服务管理方式,可通过 `launchctl` 管理生命周期
- 软链接symlink策略可实现 FRP 版本无缝切换
- SSH 客户端配置(`~/.ssh/config`)可简化远程访问命令,只需 `ssh macmini` 即可登录
## Key Quotes
> "macOS 默认 `/opt` 需要手动创建" — 说明了 macOS 与 Linux 目录结构的差异,需手动初始化系统目录
> "xattr -rd com.apple.quarantine ." — macOS 特有的安全限制解除命令,针对整个目录递归执行
> "launchd推荐开机自启" — macOS 原生服务管理器,是进程持久化的推荐方案
> "ssh macmini" — SSH 客户端配置后的简化登录命令,通过 `~/.ssh/config` 定义 Host 别名
## Key Concepts
- [[内网穿透]]:通过反向隧道技术,使公网用户能够访问处于 NAT 或防火墙后的内网服务
- [[frp]]Fast Reverse Proxy开源内网穿透工具包含 frps服务端和 frpc客户端
- [[TCP隧道]]:基于 TCP 协议的端口转发机制,将本地端口映射到远程服务器
- [[launchd]]macOS 原生服务管理器,用于管理系统级和用户级守护进程
- [[SSH隧道]]:通过 SSH 协议建立的加密隧道,实现安全的远程端口转发
## Key Entities
- [[Mac Mini M4]]Apple Silicon Mac Mini作为家庭服务器运行 FRP 客户端
- [[VPS]]:公网虚拟专用服务器,运行 frps 作为内网穿透的中转站IP: 192.227.222.142
- [[frpc]]FRP 客户端程序,运行在 Mac Mini 上,建立与 frps 的连接
- [[frps]]FRP 服务端程序,运行在 VPS 上,接收公网请求并转发到 frpc
- [[Gatekeeper]]macOS 安全机制,阻止未签名应用运行
- [[UFW防火墙]]VPS 上的防火墙,需开放 FRP 映射端口
## Connections
- [[Mac Mini M4]] ← runs_on ← [[frpc]]
- [[VPS]] ← runs_on ← [[frps]]
- [[frpc]] ← creates_tunnel ← [[frps]]
- [[内网穿透]] ← enables ← [[远程SSH访问]]
- [[launchd]] ← manages ← [[frpc]] 进程生命周期
- [[Gatekeeper]] ← blocks ← [[frpc]] (需解除)
- [[UFW防火墙]] ← controls_access ← [[SSH隧道]](需开放 remotePort 60026
## Contradictions
- 无已知冲突
## Environment Details
| 项目 | 内容 |
|------|------|
| 系统 | macOSMac Mini M4|
| 架构 | Apple Silicon (ARM64) |
| 软件 | FRP 0.65.0 |
| 安装目录 | `/opt/frp/frp_0.65.0_darwin_arm64` |
| 客户端程序 | `frpc` |
| 配置文件 | `frpc.toml` |
| frps服务器 | 192.227.222.142:7000 |
| frps映射端口 | 6000SSH60026实际案例端口|
## Installation Steps
1. 创建安装目录:`sudo mkdir -p /opt/frp && sudo chown -R $(whoami) /opt/frp`
2. 下载 ARM64 版本:`wget https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_darwin_arm64.tar.gz`
3. 解压:`tar -xzf frp_0.65.0_darwin_arm64.tar.gz`
4. 解除 Gatekeeper`xattr -rd com.apple.quarantine .`
5. 配置 frpc.toml设置 serverAddr、serverPort、auth.token 和 proxies
6. 启动 frpc`./frpc -c frpc.toml`
## Background Running Methods
1. **tmux**(推荐开发环境):创建持久会话,断开 SSH 后仍保持运行
2. **nohup**(简单后台):重定向输出到日志文件,适合简单部署
3. **launchd**(生产环境):系统级服务,开机自启,推荐使用 plist 配置
## Best Practices
- 统一安装路径:`/opt/frp/<version>` 便于版本管理
- 创建软链接:`ln -sfn /opt/frp/frp_0.65.0_darwin_arm64 /opt/frp/current` 简化启动命令
- 日志独立存储:配置 StandardOutPath 和 StandardErrorPath 分离日志
- 进程守护:使用 launchd KeepAlive=true 确保服务持续运行
## SSH 远程访问案例(完整配置)
### 网络架构
```
本地 Mac Mini
│ SSH 22
frpc 客户端
│ FRP 隧道
远端 VPS (frps)
│ 60026
公网 SSH 访问ssh username@VPS_IP -p 60026
```
### VPS 防火墙配置UFW
```bash
sudo ufw allow 60026
sudo ufw status
# 输出60026/tcp ALLOW Anywhere
```
### frpc.toml SSH 代理配置
```toml
serverAddr = "VPS_IP"
serverPort = 7000
auth.method = "token"
auth.token = "your_token"
[[proxies]]
name = "macmini-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 60026
```
### SSH 客户端配置(~/.ssh/config
```ssh-config
Host macmini
HostName VPS_IP
Port 60026
User billy
```
配置后可直接使用 `ssh macmini` 登录 Mac Mini无需记忆 IP 和端口。

View File

@@ -1,49 +1,41 @@
---
title: "macOS 创建与解除 Symbolic LinkOpenClaw 目录映射)"
type: source
tags: [obsidian, openclaw, symbolic-link, macos]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/macOS 创建与解除 Symbolic LinkOpenClaw 目录映射).md]]
## Summary (用中文描述)
- **核心主题**:在 macOS 为 OpenClaw 隐藏目录创建符号链接,使 Finder Obsidian 能够直接访问
- **问题域**OpenClaw 默认使用 `~/.openclaw` 隐藏目录,在图形界面中不可见,无法直接作为 Obsidian Vault 使用
- **方法/机制**:使用 `ln -s` 创建 Symbolic Link`~/.openclaw` 映射为可见 `~/openclaw` 目录,两个路径指向同一份数据
- **结论/价值**:符号链接让 Obsidian 可以访问 OpenClaw 的 Markdown 文件,同时保 OpenClaw 正常工作,是一种零成本、无风险的目录可见性解决方案
## Key Claims (用中文描述)
- OpenClaw 默认数据目录 `~/.openclaw` 是隐藏目录,Finder Obsidian 无法直接访问
- Symbolic Link符号链接可以将隐藏目录映射为可见目录两个路径指向同一份数据
- 创建符号链接 `ln -s ~/.openclaw ~/openclaw` 不会复制数据,只创建指向关系
- 删除符号链接 `rm ~/openclaw` 只会删除链接本身,不会影响原始数据
- 推荐的长期方案是以 `~/openclaw` 为实际目录,再用 `ln -s` 反向链接到 `~/.openclaw`,便于 Git 管理和 Finder 访问
## Key Quotes
> "该操作**只会删除链接文件,不会删除真实目录**。" — Symbolic Link 删除操作的安全性说明
> "Finder / Obsidian 可直接访问OpenClaw 兼容原路径;方便 Git 管理与备份。" — 推荐的长期目录结构三优点
## Key Concepts
- [[Symbolic Link]]符号链接Unix/Linux/macOS 文件系统特性,通过 `ln -s` 创建,指向另一个文件或目录的特殊文件类型
- [[目录映射]]:将一个目录路径指向另一个目录内容的机制,使不同路径访问同一份数据
- [[隐藏目录]]:以 `.` 开头的目录macOS Finder 默认不显示,需用 `ls -a``Cmd+Shift+.` 可见
## Key Entities
- [[OpenClaw]]:多 Agent 框架,默认数据目录为 `~/.openclaw` 隐藏目录,本笔记的操作对象
- [[Obsidian]]:本地 Markdown 知识库工具,可通过 Symbolic Link 将 OpenClaw 目录作为 Vault 直接打开
## Connections
- [[Obsidian]] ← 通过 Symbolic Link 访问 ← [[OpenClaw]]
- [[OpenClaw]] ← 数据存储于 ← [[Symbolic Link]]
## Contradictions
- 无已知冲突
## Aliases
- Symbolic Link
- 符号链接
- symlink
- 软链接
---
title: "macOS 创建与解除 Symbolic LinkOpenClaw 目录映射)"
type: source
tags: [obsidian, openclaw, symbolic-link, macos]
date:
---
## Source File
- [[Home Office/macOS 创建与解除 Symbolic LinkOpenClaw 目录映射).md]]
## Summary用中文描述
- 核心主题macOS 为 OpenClaw 隐藏目录创建和解除符号链接,使 Finder / Obsidian 直接访问
- 问题域OpenClaw 默认使用 `~/.openclaw` 隐藏目录,不便于文件管理器直接操作
- 方法/机制:通过 `ln -s` 创建符号链接,将隐藏目录映射为可见目录 `~/openclaw`;通过 `rm` 删除链接文件而非真实目录
- 结论/价值:实现 OpenClaw 与 Obsidian 共用同一数据目录,无需复制文件,同时保留原 OpenClaw 正常功能
## Key Claims用中文描述
- OpenClaw 默认隐藏目录 `~/.openclaw` 不便于 Finder Obsidian 直接访问
- 使用 `ln -s ~/.openclaw ~/openclaw` 创建符号链接后Obsidian 可将 `~/openclaw` 作为 Vault 打开
- 使用 `rm ~/openclaw` 仅删除链接文件,不会影响真实目录 `~/.openclaw` 中的数据
- 推荐长期方案:建立可见目录 `~/openclaw` 作为实际存储,反向链接 `~/.openclaw -> ~/openclaw`,便于 Git 管理和 Finder 访问
## Key Quotes
> `ln -s ~/.openclaw ~/openclaw` — 创建符号链接的标准命令,将隐藏目录映射为可见目录
> `rm ~/openclaw` — 删除符号链接(注意:不会删除真实目录中的数据)
> `⚠️ 该操作只会删除链接文件,不会删除真实目录` — 强调操作安全性
## Key Concepts
- [[SymbolicLink]]Unix/Linux/macOS 中的符号链接Symlink是一种特殊类型的文件指向另一个文件或目录路径
- [[ObsidianVault]]Obsidian 知识库的核心概念,以本地文件夹为单位的笔记管理方式
## Key Entities
- [[OpenClaw]]AI Agent 管理工具默认使用隐藏目录存储记忆、Skills、Prompts 等数据
- [[Obsidian]]:本地 Markdown 笔记应用,支持将任意文件夹作为 Vault 使用
## Connections
- [[OpenClaw]] ← 使用 ← [[SymbolicLink]]
- [[Obsidian]] ← 访问 ← [[OpenClaw]](通过 [[SymbolicLink]] 映射后的可见目录)
## Contradictions
- 无已知冲突内容

View File

@@ -1,75 +1,45 @@
---
title: "Ubuntu禁用合盖休眠"
type: source
tags: [ubuntu, systemd, 服务器配置]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/Ubuntu禁用合盖休眠.md]]
## Summary (用中文描述)
- 核心主题Ubuntu Server 合盖休眠的完整操作指南
- 问题域:Ubuntu 笔记本作为服务器运行时,合盖触发系统休眠/待机导致服务中断的问题
- 方法/机制:通过修改 systemd-logind 的 logind.conf 配置文件,设置 HandleLidSwitch 系列参数为 ignore,并重启服务生效;进阶方案是通过 systemctl mask 彻底禁用内核级休眠目标
- 结论/价值:让 Ubuntu 笔记本在无外接显示器的情况下作为稳定服务器运行
## Key Claims (用中文描述)
- systemd-logind 是 Ubuntu 24.04 控制笔记本合盖行为的系统服务
- 修改 /etc/systemd/logind.conf 中的 HandleLidSwitch* 系列配置项并重启服务即可生效
- HandleLidSwitch=ignore 使系统合盖后继续运行
- systemctl mask 可从内核级别彻底禁用 sleep/suspend/hibernate/hybrid-sleep 四个休眠目标
## Key Quotes
> "HandleLidSwitch合盖时的动作通常指用电池时" — Ubuntu logind.conf 配置项说明
> "HandleLidSwitchExternalPower连接外接电源合盖时的动作" — Ubuntu logind.conf 配置项说明
> "HandleLidSwitchDocked连接扩展坞合盖时的动作" — Ubuntu logind.conf 配置项说明
> "在执行此命令时,你的当前会话(包括图形界面或当前的 SSH 连接)可能会短暂断开或重新加载。" — 重启 systemd-logind 的注意事项
## Key Concepts
- [[systemd-logind]]Linux 系统登录管理器,负责管理用户会话、电源事件和系统休眠行为
- [[HandleLidSwitch]]systemd-logind 的合盖动作配置项,支持 ignore/suspend/hibernate/poweroff/lock 等值
- [[休眠目标]]Linux 内核的电源管理目标,包括 sleep.target / suspend.target / hibernate.target / hybrid-sleep.target
## Key Entities
- [[Ubuntu Server]]Canonical 维护的 Linux 服务器操作系统,默认使用 systemd 作为初始化系统
- [[systemd]]Linux 系统和服务管理器,通过 logind 管理笔记本电源事件
## Connections
- [[Ubuntu Server]] ← 使用 ← [[systemd-logind]](电源管理机制
- [[systemd-logind]] ← 配置项 ← [[HandleLidSwitch]](合盖行为控制)
- [[休眠目标]] ← 进阶禁用 ← systemd通过 systemctl mask
## Contradictions
- 无已知冲突页面
## Related Sources
- [[mac-mini服务器配置-防止自动锁屏与睡眠]] — macOS 等效配置(防止 Mac Mini 服务器自动睡眠)
- [[ubuntu服务器通过rsync实现日常增量备份]] — Ubuntu 服务器备份方案
- [[安装ubuntu-24-04-2在hp-zbook工作站笔记本上]] — HP ZBook Ubuntu 安装记录
## Operations (操作步骤)
### 基础方案:修改 logind.conf
```bash
# 1. 编辑配置文件
sudo nano /etc/systemd/logind.conf
# 2. 修改/添加以下配置(删除行首 #
[Login]
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
# 3. 重启服务使配置生效
sudo systemctl restart systemd-logind
```
### 进阶方案:禁用内核级休眠功能
```bash
# 彻底禁用所有休眠目标
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
# 恢复(如需)
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
```
---
title: "Ubuntu禁用合盖休眠"
type: source
tags: [ubuntu, systemd, 服务器配置]
date: 2026-04-26
---
## Source File
- [[Home Office/Ubuntu禁用合盖休眠]]
## Summary用中文描述
- 核心主题Ubuntu 24.04 笔记本合盖休眠行为配置
- 问题域:服务器场景下笔记本合盖后不应进入休眠状态
- 方法/机制:通过修改 `systemd-logind``logind.conf` 配置文件,`HandleLidSwitch` 系列参数`ignore`;进阶方通过 `systemctl mask` 彻底禁用所有休眠目标
- 结论/价值:提供两步完成服务器场景下笔记本合盖持续运行的生产级方案
## Key Claims用中文描述
- systemd-logind 是 Ubuntu 24.04 控制笔记本合盖行为的登录管理器
- 通过 `HandleLidSwitch``HandleLidSwitchExternalPower``HandleLidSwitchDocked` 三个配置项可覆盖不同场景
- 将配置值设为 `ignore` 后系统合盖不执行任何操作,继续运行
- 修改配置后需执行 `systemctl restart systemd-logind` 重启服务才能生效
- 可通过 `systemctl mask` 从内核级别彻底禁止待机sleep/suspend/hibernate/hybrid-sleep
- `mask``unmask` 可逆,恢复时将 mask 改为 unmask 即可
## Key Quotes
> "在执行此命令时,你的当前会话(包括图形界面或当前的 SSH 连接)可能会短暂断开或重新加载。" — 重启 systemd-logind 服务的注意事项
## Key Concepts
- [[systemd-logind]]Linux 系统登录管理器,负责管理用户会话、电源管理和设备访问权限,合盖行为由其控制
- [[HandleLidSwitch]]systemd-logind 配置项,定义笔记本合盖时的电源行为
- [[sleep.target suspend.target hibernate.target hybrid-sleep.target]]Linux 休眠相关系统目标,通过 `systemctl mask` 可从内核级别彻底禁用
## Key Entities
- [[Ubuntu 24.04]]Canonical 发布的长期支持版 Ubuntu本配置方法的适用系统
- [[systemd]]Linux 系统和服务管理器systemd-logind 为其组件之一
## Connections
- [[Ubuntu禁用合盖休眠]] ← relates_to ← [[Ubuntu服务器通过rsync实现日常增量备份]]
- [[Ubuntu禁用合盖休眠]] ← related_topic ← [[Mac Mini 服务器配置:防止自动锁屏与睡眠]](不同 OS方法不同无冲突
## Contradictions
- 与 [[Mac Mini 服务器配置:防止自动锁屏与睡眠]] 无冲突:
- 冲突点macOS 使用 `pmset` 命令,与 Ubuntu systemd 配置完全不同)
- 当前观点Ubuntu 通过 systemd-logind 配置
- 对方观点macOS 通过 pmset 命令配置

View File

@@ -1,42 +1,46 @@
---
title: "在Synology NAS上安装CloudDrive2"
type: source
tags: [clouddrive2, nas, synology, 阿里云盘]
date: 2025-12-29
---
## Source File
- [[raw/Home Office/在Synology NAS上安装CloudDrive2.md]]
## Summary (用中文描述)
- 核心主题:在 Synology NAS 上通过 CloudDrive2阿里云盘挂载为本地文件系统
- 问题域NAS 本地存储与云端存储的融合、家庭多媒体中心的云盘访问
- 方法/机制:利用矿神源(社群套件源)安装 CloudDrive2通过阿里云盘 App 扫码授权,实现云盘的本地挂载访问
- 结论/价值:将阿里云盘无缝接入 NAS 文件系统,无需手动同步即可直接访问云端资源
## Key Claims (用中文描述)
- 矿神源提供了 CloudDrive2 等第三方套件,扩展了 Synology 官方套件中心的应用生态
- DSM 7+ 版本要求额外的 Root 权限修复命令,否则 CloudDrive2 可能无法正常运行
- 阿里云盘授权时应仅授权"资源目录",避免"备份目录"以控制数据访问范围
## Key Quotes
> "不要授权备份目录,仅资源目录即可" — 最小权限原则,避免意外访问敏感备份数据
## Key Concepts
- [[云盘挂载]]:通过 FUSE/虚拟文件系统将云端存储映射为本地目录的技术
- [[NAS套件管理]]:群晖 NAS 的 Package Center 套件安装与管理机制
- [[Root权限修复]]DSM 7+ 系统中第三方套件权限配置的特殊处理方法
## Key Entities
- [[CloudDrive2]]云盘挂载工具支持阿里云盘、Google Drive、OneDrive 等多种云存储服务
- [[Synology NAS]](群晖 NAS网络附加存储设备本方案的硬件平台
- [[矿神源]]Synology 社群套件源SPK 社区生态),提供大量官方未收录的第三方应用
- [[阿里云盘]]:阿里巴巴云盘服务,本方案的挂载目标云存储
## Connections
- [[群晖NAS科学上网]] ← 关联场景 ← [[在Synology NAS上安装CloudDrive2]]
- [[Home Server 多服务架构]] ← 扩展 ← [[在Synology NAS上安装CloudDrive2]]
- [[CloudDrive2]] ← 挂载目标 ← [[阿里云盘]]
## Contradictions
- 无已知冲突
---
title: "在Synology NAS上安装CloudDrive2"
type: source
tags: [clouddrive2, nas, synology, 阿里云盘]
date: 2025-12-29
---
## Source File
- [[Home Office/在Synology NAS上安装CloudDrive2.md]]
## Summary用中文描述
- 核心主题:在 Synology NASDSM 7+)上安装并配置 CloudDrive2,实现阿里云盘的本地挂载
- 问题域:群晖 NAS 用户希望将阿里云盘像本地硬盘一样挂载使用,无需手动同步
- 方法/机制:通过 Synology 社群(矿神源)安装 CloudDrive2 → 执行 root 权限修复命令DSM 7+ 专用)→ Web UI 配置 → 阿里云盘 App 扫码授权 → 挂载 Aliyun 目录
- 结论/价值:CloudDrive2 提供了在 NAS 上原生挂载云盘的能力,适合影视、文件等大体积内容管理
## Key Claims用中文描述
- 主体 + 机制 + 结果
- Synology 社群安装方式:矿神源 → 社群 → CloudDrive2(标准流程)
- DSM 7+ 特殊处理:需执行 `sed` 命令修改 CloudDrive2 权限文件,将 `package` 替换为 `root`,否则因权限不足无法正常运行
- Web UI 访问:通过 `http://192.168.3.17:19798/` 访问 CloudDrive2 配置界面
- 阿里云盘授权:使用阿里云盘 App 扫码授权,仅授权「资源目录」(不要授权「备份目录」)
## Key Quotes
> "因为我的 DSM 是 7+ 版本,所以需要额外在 root 下执行一条命令" — DSM 7+ 权限修复说明
> "请主要,不要授权备份目录,仅资源目录即可" — 安全提示,避免备份文件被挂载
## Key Concepts
- [[CloudDrive2]]:云盘挂载工具,支持阿里云盘、百度网盘等多种云存储,可将云端文件像本地硬盘一样在 NAS 上使用
- [[Synology NAS]]:群晖网络附加存储设备,运行 DSM 操作系统;通过社群套件源安装第三方应用
- [[矿神源]]Synology 社群第三方套件源,提供大量社群维护的应用(如 CloudDrive2
## Key Entities
- [[阿里云盘]]:阿里巴巴旗下云盘服务,CloudDrive2 支持挂载的云存储之一;通过 App 扫码授权连接
- [[CloudDrive2]]:云盘挂载应用,可在 NAS/PC 上将云盘映射为本地文件系统WebDAV/SMB 等协议)
## Connections
- [[群晖NAS科学上网方法]] ← related ← [[在Synology NAS上安装CloudDrive2]](同一设备上的网络配置需求)
- [[用Docker安装Jellyfin]] ← related ← [[在Synology NAS上安装CloudDrive2]]Jellyfin 可读取 CloudDrive2 挂载的阿里云盘影视资源)
## Contradictions
- 无已知冲突
## Related Sources
- [[群晖NAS科学上网方法]]
- [[用Docker安装Jellyfin]]

View File

@@ -1,54 +1,59 @@
---
title: "如何删除旧的废弃的Docker Container + Volume"
type: source
tags: [container, docker, portainer, volume]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/如何删除旧的废弃的docker container +volume.md]]
## Summary (用中文描述)
- 核心主题Docker 容器生命周期管理——如何彻底清理旧的废弃 Portainer 容器、Volume 和 Network,并安全重装
- 问题域:Home Server 运维中常见的 Docker 残留资源清理问题,尤其是 Portainer 重装时遇到的警告和报错
- 方法/机制:通过 `docker stop` / `docker rm` 删除容器 → `docker volume rm` 删除数据卷 → `docker network rm` 删除网络 → `docker compose down` 清理 Compose 堆栈;对于遗留资源通过 `external: true` 配置复用或直接重建
- 结论/价值:提供了从发现到彻底重装的完整操作流程,以及对两类常见 WARN 警告的根因分析和解决方案
## Key Claims (用中文描述)
- 运维人员可通过 `docker ps -a | grep portainer` 快速定位 Portainer 容器
- 容器删除前必须先停止,否则需使用 `docker rm -f` 强制删除
- 删除 `portainer_data` Volume 会永久丢失 Portainer 所有数据(用户、配置)
- `docker compose down` 可一键清理整Compose 堆栈的容器、网络和(可选)卷
- WARN 1 根因:之前的 compose 文件创建了 network但新 compose 文件试图重建同名网络
- WARN 2 根因:之前的 compose 项目使用了不同 project name遗留了 Volume
- 解决方案:在 compose 文件中声明 `external: true` 以复用旧网络/卷,或删除旧资源后重建
## Key Quotes
> "⚠️ 注意:这会删除 Portainer 所有数据(用户、配置)。如果你想保留数据,不要删 volume只需要在 compose 文件里加:`external: true`" — 删除 Volume 前的警告,区分数据保留策略
> "说明你之前用了别的 compose 文件部署过 Portainer" — WARN 1 的根因解释network 冲突的场景
> "说明你以前用不同 project 名字做过 Portainer" — WARN 2 的根因解释Volume 隔离的项目命名机制
## Key Concepts
- [[Docker容器生命周期管理]]:容器的创建( create ) → 启动( start ) → 停止( stop ) → 删除( rm ) 完整流程管理
- [[Docker Volume]]:容器持久化数据存储卷,通过 `docker volume ls` 查看,`docker volume rm` 删除
- [[Docker Network]]:容器网络连接,通过 `docker network ls` 查看,`docker network rm` 删除
- [[Docker Compose堆栈管理]]:通过 `docker compose down` 一次性清理整个堆栈的容器、网络和卷
- [[external配置]]compose 文件中 `external: true` 声明让 Docker 复用已存在的 Volume 或 Network 而非创建新的
- [[Docker警告处理]]Network 已存在警告和 Volume 属于其他项目的警告的标准排查思路
## Key Entities
- [[Portainer]]Docker 可视化管理工具portainer/portainer-ce通过 Web UI 管理容器/卷/网络,支持 Edge Agent 集群管理
- [[Docker]]:容器化平台,本文档所有操作的底层系统
- [[Docker Compose]]:多容器应用的定义和编排工具,`docker compose down` 提供堆栈级清理能力
## Connections
- [[Portainer]] ← 部署于 ← [[Docker]]
- [[Docker Compose]] ← 管理 ← [[Docker容器生命周期管理]]
- [[Docker Volume]] ← 依赖 ← [[Docker]]
- [[Docker Network]] ← 连接 ← [[Docker]]
- [[external配置]] ← 解决 ← [[Docker警告处理]]
## Contradictions
- 与其他文档无已知冲突
---
title: "如何删除旧的废弃的 Docker Container + Volume"
type: source
tags: [docker, container, portainer, volume]
date: 2026-04-26
---
## Source File
- [[Home Office/如何删除旧的废弃的docker container +volume.md]]
## Summary用中文描述
- 核心主题:清理 Docker 环境中废弃 Portainer 容器、Volume 和 Network 的完整操作流程
- 问题域:Docker 容器残留导致的端口冲突、卷数据残留、以及重启 Portainer 时出现的 WARN 警告
- 方法/机制:通过 `docker stop/rm``docker volume ls/rm``docker network ls/rm` 系列命令手动清理;使用 `docker compose down` 一键清理整个 compose 项目;通过 `external: true` 配置避免 future 部署时的资源冲突
- 结论/价值:提供了从手动单步清理到一键重装的完整操作,以及 WARN 因分析和解决方案
## Key Claims用中文描述
- `docker compose down` 命令可同时删除容器、网络和匿名 Volume但保留命名 Volume
- `docker volume rm` 可显式删除指定 Volume`portainer_data`),从而清除 Portainer 所有用户数据和配置
- Docker WARN "Network already exists" 表示同名 network 由另一个 compose 项目创建,与当前项目冲突
- Docker WARN "Volume is used by another service" 表示同名 volume 属于另一compose 项目的不同 project name
- 在 compose 文件中设置 `external: true` 可让新项目复用旧 network/volume 而不触发冲突警告
## Key Quotes
> "⚠️ 注意:这会删除 Portainer 所有数据(用户、配置)。如果你想保留数据,不要删 volume只需要在 compose 文件里加:`external: true`" — 删除 portainer_data 的重要提示
## Key Concepts
- [[Docker Container]]Docker 镜像的运行实例,`docker ps -a` 查看所有容器,`docker rm` 删除已停止容器,`docker rm -f` 强制删除运行中容器
- [[Docker Volume]]:持久化存储机制,挂载到容器内部用于保存数据;`docker volume ls` 列出所有卷,`docker volume rm` 删除指定卷
- [[Docker Network]]:容器间通信的虚拟网络;同名 network 冲突是 compose 项目隔离机制导致的警告
- [[Docker Compose]]`docker compose down` 停止并删除整个 compose 项目中的容器、网络,以及(非 external 的)命名卷
- [[Docker Socket]]Docker 守护进程的 Unix Socket通常为 `/var/run/docker.sock`Portainer 通过挂载它实现对本地 Docker 的管理
## Key Entities
- [[Portainer]]:开源 Docker 容器管理面板,本文档的清理目标;`portainer/portainer-ce` 为其 Community Edition 镜像
- [[portainer_data]]Portainer 的命名 Docker Volume存储用户、配置等持久化数据
## Connections
- [[Docker安装Portainer]] ← depends_on ← [[如何删除旧的废弃的 Docker Container + Volume]]
- [[如何在Ubuntu Server安装 Docker & Docker Compose]] ← related_to ← [[如何删除旧的废弃的 Docker Container + Volume]]
## Contradictions
- 无已知冲突
## 完整操作流程速查
```bash
# 最干净的重装流程
docker stop portainer && docker rm portainer
docker volume rm portainer_data
docker network rm portainer_network
docker compose up -d
```
```bash
# 一键清理compose 部署)
docker compose down # 删除容器+网络+匿名卷
docker compose down -v # 额外删除命名卷(谨慎!)
```

View File

@@ -1,60 +1,54 @@
---
title: "如何在Ubuntu Server安装 Docker & Docker Compose"
type: source
tags: [docker, ubuntu]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/如何在Ubuntu Server安装 docker & docker compose.md]]
## Summary (用中文描述)
- 核心主题:Ubuntu Server 上通过官方 apt 仓库安装 Docker Engine 和 Docker Compose V2 的完整流程
- 问题域:服务器容器化环境搭建
- 方法/机制:五步标准安装流程——卸载旧版 → 配置官方仓库 → 安装引擎 → 验证安装 → 配置非 root 用户
- 结论/价值:推荐从 Docker 官方仓库安装确保获取最新版本Docker Compose V2 已集成到 docker-compose-plugin使用 `docker compose` 命令
## Key Claims (用中文描述)
- Docker 官方仓库安装能确保获取最新版本的 Docker Engine
- Docker Compose V2 通过 docker-compose-plugin 安装,使用 `docker compose` 命令而非 `docker-compose`
- 将用户加入 docker 用户组后,可无需 sudo 直接运行 Docker 命令
- 必须先安装 ca-certificates 和 curl 才能通过 HTTPS 添加 Docker GPG 密钥和仓库
## Key Quotes
> "It's generally best to install from Docker's official repositories to ensure you have the latest version." — 官方仓库安装的最佳实践理由
> "The `docker-compose-plugin` installs **Docker Compose V2**, which is used via the command `docker compose` instead of `docker-compose`." — V2 版本命令变化说明
> "By default, running Docker commands requires `sudo`. To run Docker without `sudo`, you can add your user to the **`docker` group`." — docker 用户组的作用
## Key Concepts
- [[Docker Engine]]Docker 核心运行时,包含 dockerd 守护进程、CLI 和 containerd 容器运行时
- [[Docker Compose]]:多容器 Docker 应用的定义和运行工具V2 版本集成到 docker CLI`docker compose`
- [[APT 仓库]]Ubuntu/Debian 的软件包管理仓库,通过 /etc/apt/sources.list.d/ 配置
- [[GPG 密钥]]apt 仓库签名验证,确保软件包来源可信
- [[Docker 用户组]]Linux 用户组,允许组成员无需 sudo 直接运行 Docker 命令(存在安全风险)
- [[containerd]]Docker 的容器运行时底层引擎,独立项目
## Key Entities
- [[Docker CE]]Docker Community EditionDocker Engine 的开源版本
- [[docker-ce-cli]]Docker 命令行工具
- [[docker-buildx-plugin]]Docker 扩展插件,支持多平台镜像构建
- [[docker-compose-plugin]]Docker Compose V2 插件,替代独立的 docker-compose 包
- [[containerd.io]]containerd 的 Docker 打包版本
- [[hello-world]]Docker 官方测试镜像,用于验证安装是否成功
## Connections
- [[Docker Engine]] ← installed_by ← [[Docker CE on Ubuntu]]
- [[Docker Compose]] ← extends ← [[Docker Engine]]
- [[APT 仓库]] ← provides ← [[Docker CE]]
- [[GPG 密钥]] ← authenticates ← [[APT 仓库]]
- [[Ubuntu Server]] ← runs_on ← [[Docker Engine]]
- [[Docker 用户组]] ← enables ← [[Docker Engine]] (non-root execution)
- [[containerd]] ← powers ← [[Docker Engine]]
## Contradictions
-已知冲突
## Related Sources
- [[用docker安装transmission]] — Docker 部署实战
- [[用docker安装portainer]] — Docker 可视化管理
- [[用docker安装jellyfin]] — Docker 媒体服务
- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] — Docker 监控堆栈
---
title: "如何在Ubuntu Server安装 Docker & Docker Compose"
type: source
tags: [Docker, Ubuntu, 容器化, DevOps]
date: 2026-04-14
---
## Source File
- [[Home Office/如何在Ubuntu Server安装 docker & docker compose]]
## Summary用中文描述
- 核心主题Ubuntu Server 上安装 Docker Engine 和 Docker Compose V2 的完整操作指南
- 问题域:Ubuntu Server 容器运行时环境搭建,是后续所有 Docker 部署类笔记的前置依赖
- 方法/机制:通过添加 Docker 官方 APT 仓库GPG 密钥验证)→ 安装 Docker Engine 核心组件dockerd、containerd、buildx、compose→ 验证安装 → 配置非 root 用户权限
- 结论/价值:官方仓库安装确保版本最新,与 Ubuntu 内置旧版 docker.io 包完全兼容Docker Compose V2 通过 `docker compose` 调用,与传统 `docker-compose` 命令分离
## Key Claims用中文描述
- Docker 官方 APT 仓库安装比 Ubuntu 默认仓库版本更新、功能更完整
- 安装 `docker-compose-plugin` 即获得 Docker Compose V2,使用 `docker compose` 而非 `docker-compose` 命令
- 将用户加入 `docker` 用户组后无需 `sudo` 即可运行 Docker 命令
- 完整安装包含 5 个组件包docker-ce、docker-ce-cli、containerd.io、docker-buildx-plugin、docker-compose-plugin
## Key Quotes
> "The `docker-compose-plugin` installs Docker Compose V2, which is used via the command `docker compose` instead of `docker-compose`." — 源文档 Step 3 安装说明
> "Log out and log back in (or restart your terminal session, or run `newgrp docker`) for the changes to take effect." — 源文档 Step 5 用户组配置说明
## Key Concepts
- [[Docker Engine]]:容器运行时核心,包含 dockerd 守护进程、containerd 容器运行时、docker CLI 工具
- [[Docker Compose]]多容器应用编排工具V2 版本通过 `docker compose` 子命令调用
- [[containerd]]Docker 的底层容器运行时,本文档安装 `containerd.io`
- [[GPG 密钥验证]]Docker 官方通过 GPG 密钥(`/etc/apt/keyrings/docker.asc`)验证 APT 包来源真实性
- [[APT 仓库配置]]:通过在 `/etc/apt/sources.list.d/docker.list` 添加 Docker 官方仓库启用
- [[Docker 用户组]]通过 `usermod -aG docker $USER` 将用户加入 docker 组实现免 sudo 运行
## Key Entities
- [[Docker]]Docker 公司及其容器平台生态
- [[Docker-CE]]Docker Community Edition 开源版本
- [[hello-world]]:官方验证镜像,用于测试 Docker 安装是否成功
- [[Docker-Buildx-Plugin]]Docker 多平台镜像构建插件
- [[Docker-Compose-Plugin]]Docker Compose V2 插件形式实现
## Connections
- [[Docker Engine]] ← 依赖 ← [[containerd]](安装 containerd.io 包)
- [[Docker Engine]] ← 依赖 ← [[Docker-Buildx-Plugin]](安装时一并安装)
- [[Docker Engine]] ← 依赖 ← [[Docker-Compose-Plugin]](安装时一并安装)
- [[Ubuntu Server]] ← 目标平台 ← [[如何在ubuntu-server安装-docker-docker-compose]](本文档)
- [[Docker]] ← 官方维护 ← [[Docker-CE]](上游包来源)
- [[如何在ubuntu-server安装-docker-docker-compose]] → 前置依赖 → [[用docker安装it-tools]]it-tools 需 Docker 环境)
- [[如何在ubuntu-server安装-docker-docker-compose]] → 前置依赖 → [[用docker安装portainer]]Portainer 需 Docker 环境)
- [[如何在ubuntu-server安装-docker-docker-compose]] → 前置依赖 → [[用docker安装transmission]]Transmission 需 Docker 环境)
- [[如何在ubuntu-server安装-docker-docker-compose]] → 前置依赖 → [[用docker中安装navidrome]]Navidrome 需 Docker 环境)
## Contradictions
-冲突。文档聚焦 Ubuntu Server 单机安装流程,与企业级 Kubernetes 容器编排([[Container-Lifecycle-Hardening]])等来源属不同层次,无内容矛盾。

View File

@@ -1,66 +1,48 @@
---
title: "安装v2rayN"
type: source
tags: [linux, v2rayn, windows, macos]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/安装v2rayN.md]]
## Summary (中文)
- **核心主题**v2rayN 跨平台代理客户端的官方发布包详解,涵盖 Windows/Linux/macOS 各平台下载选项、安装方式与依赖要求
- **问题域**:如何为不同操作系统选择正确的 v2rayN 版本,以及各平台安装注意事项
- **方法/机制**
- zip 便携版:解压即用,数据存储在同目录,多份独立运行
- deb/rpm 安装版:存储在系统用户文件目录,通过 apt/dnf 安装
- WPF 版需额外安装 .NET 8 Desktop RuntimeAvalonia UI 版为自包含
- macOS DMG 版因无签名需执行 `xattr -cr` 修复
- 支持多核心Xray、sing-box、mihomo
- **结论/价值**v2rayN 是支持 Windows/Linux/macOS 的可视化代理客户端Windows 推荐 WPF 版,跨平台推荐 Avalonia UI 版;核心文件需单独下载
## Key Claims (中文)
- v2rayN 跨平台支持 Windows 10+、LinuxDebian 12+/Ubuntu 22.04+/Fedora 36+/RHEL 9+、macOS 12+
- zip 便携版解压后直接运行 `./v2rayN`,数据存放在程序同目录,可多份独立使用
- deb/rpm 安装版存储位置为系统规定的用户文件目录
- Windows x64 WPF 版需预装 Microsoft .NET 8.0 Desktop RuntimeAvalonia UI 版为自包含无需额外依赖
- macOS DMG 版因应用无签名会提示"已损坏",安装后需执行 `xattr -cr /Applications/v2rayN.app` 修复
- 发布包内含部分 CoreXray/sing-box/mihomo其他 Core 需从 v2rayN-core-bin 仓库单独下载
## Key Quotes
> "zip 格式包为便携版,解压缩到文件夹后直接可以运行,存储文件位置为本文件夹;可以复制多份互相独立" — 官方说明
> "v2rayN-windows-64.zip WPF实现的界面需要安装 Microsoft .NET 8.0 Desktop Runtime" — Windows x64 WPF版依赖说明
> "v2rayN-macos-64.dmg 由于安装包没有签名会提示应用已损坏安装后需要运行xattr -cr /Applications/v2rayN.app" — macOS签名问题解决方案
## Key Concepts
- [[代理客户端]]:运行在终端设备上,通过代理协议连接远程节点的软件
- [[代理协议]]v2rayN 支持 VLESS/VMess/Trojan/SS 等协议
- [[Reality]]Xray 的流量伪装方案v2rayN 可配合 Reality 节点使用
- [[Avalonia UI]]:跨平台 .NET UI 框架v2rayN Avalonia 版可运行在 Windows/Linux/macOS无需额外运行时依赖
- [[WPF]]Windows Presentation FoundationWindows 原生 UI 框架,.NET 桌面应用首选
- [[.NET Desktop Runtime]].NET 桌面运行时环境WPF 应用必需依赖
- [[便携版]] vs [[安装版]]:便携版数据自包含、安装版数据放系统目录
- [[代理核心]]:代理客户端的底层引擎,如 Xray、sing-box、mihomo
## Key Entities
- [[v2rayN]]主产品GitHub 2dust 维护的跨平台代理客户端,支持多种协议和核心
- [[Xray]]v2rayN 支持的代理核心之一Reality 流量伪装方案的内核
- [[sing-box]]v2rayN 支持的代理核心,支持多协议
- [[mihomo]]v2rayN 支持的代理核心mihomo 协议实现
- [[2dust]]v2rayN GitHub 仓库维护者
- [[Microsoft .NET 8.0 Desktop Runtime]]Windows WPF 版的必需运行时环境
- [[Avalonia UI]]:跨平台 UI 框架v2rayN desktop 版基于此构建
## Connections
- [[v2rayN]] ← 使用 ← [[Xray]]
- [[v2rayN]] ← 使用 ← [[sing-box]]
- [[v2rayN]] ← 使用 ← [[mihomo]]
- [[v2rayN]] ← 依赖 ← [[Microsoft .NET 8.0 Desktop Runtime]]WPF 版)
- [[v2rayN]] ← 基于 ← [[Avalonia UI]]desktop 版)
- [[3X-UI]] ← 服务端 ← [[Xray]]v2rayN 的服务端 counterpart
- [[v2rayNG]] ← 移动版 ← [[v2rayN]]Android 版)
- [[Bandwagon VPS]] ← 托管 ← [[3X-UI]] + [[Xray]](服务端节点)
## Contradictions
- 与 [[3x-ui-xray-on-bandwagonvps]] 互补而非冲突v2rayN 是客户端3X-UI 是服务端管理面板,共同构成完整代理链路(服务端 Xray ←→ 客户端 v2rayN
- 与 [[ubuntu-server科学上网]] 各有侧重v2rayN 提供图形界面,命令行代理适合服务器/路由器场景
---
title: "安装v2rayN"
type: source
tags: [linux, v2rayn, windows]
date: 2026-05-14
---
## Source File
- [[Home Office/安装v2rayN.md]]
## Summary(用中文描述)
- 核心主题v2rayN 跨平台代理工具的各操作系统安装包说明与安装方法
- 问题域用户在不同操作系统Windows、Linux、macOS上安装 v2rayN 客户端的需求
- 方法/机制:通过官方提供的便携版zip和安装版deb/rpm/dmg两种方式覆盖不同使用场景内置 Xray、sing-box、mihomo 核心;支持 x64 和 ARM64 架构
- 结论/价值:提供了清晰的跨平台安装指引,用户可根据系统和架构选择对应包
## Key Claims用中文描述
- v2rayN 发布包内置部分 CoreXray、sing-box、mihomo其他 Core 需自行下载
- zip 格式为便携版,解压即用,文件存储在程序文件夹,可复制多份互相独立
- Windows 版需要 Windows 10+x64 版提供 WPF 界面(需 .NET 8.0 Runtime Avalonia UI 界面两种选择
- Linux 版支持 Debian 12+、Ubuntu 22.04+、Fedora 36+、Redhat 9+;提供 zip 便携版和 deb/rpm 安装版
- macOS 版支持 macOS 12+dmg 安装包因无签名会提示"应用已损坏",需执行 `xattr -cr` 修复
- ARM64 架构在 Windows、Linux、macOS 上均有对应包
## Key Quotes
> "zip格式包为便携版解压缩到文件夹后直接可以运行存储文件位置为本文件夹可以复制多份互相独立" — 便携版特性说明
> "v2rayN-windows-64-desktop.zip Avalonia UI 实现的界面" — WPF vs Avalonia 区别
> "由于安装包没有签名会提示应用已损坏安装后需要运行xattr -cr /Applications/v2rayN.app" — macOS dmg 安装后必须操作
## Key Concepts
- [[代理客户端]]:运行代理协议的桌面/服务器端程序,接收本地流量并转发至远程服务器
- [[代理核心 Core]]代理客户端的内核引擎负责实际的协议通信v2rayN 支持 Xray、sing-box、mihomo 等多种核心
- [[跨平台兼容]]:同一软件支持 Windows、Linux、macOS 多操作系统
- [[ARM64 架构支持]]:支持 Apple Silicon、ARM 服务器等 ARM64 硬件平台
## Key Entities
- [[v2rayN]]2dust 开发的跨平台代理客户端,支持多种代理协议和多个代理核心
- [[Xray]]:代理核心之一,内置于 v2rayN 发布包
- [[sing-box]]:代理核心之一,内置于 v2rayN 发布包
- [[mihomo]]代理核心Clash.Meta之一内置于 v2rayN 发布包
- [[Microsoft .NET 8.0 Desktop Runtime]]Windows WPF 版 v2rayN 的运行时依赖
## Connections
- [[3X-UI Xray on BandwagonVPS]] ← relates_to ← [[安装v2rayn]](均涉及 Xray/代理工具生态)
- [[Ubuntu Server科学上网]] ← extends ← [[安装v2rayn]]Linux 服务器端科学上网的客户端安装参考)
## Contradictions
- 无已知冲突

View File

@@ -1,101 +1,61 @@
---
title: "家庭监控方案Prometheus + Grafana + Node Exporter + cAdvisor + Blackbox"
type: source
tags: [grafana, monitoring, prometheus, home-server]
date: 2025-11-11
---
## Source File
- [[raw/Home Office/家庭监控方案Prometheus + Grafana + Node Exporter + cAdvisor +Blackbox.md]]
## Summary (中文描述)
- 核心主题:家庭/家居服务器NAS / Ubuntu Server的一站式开源监控方案通过 Docker Compose 快速部署完整的 Prometheus 监控栈。
- 问题域:如何对家庭服务器的主机层、容器层、服务层HTTP 可用性、TLS 证书)进行全面的指标采集、存储、可视化和告警。
- 方法/机制:使用 Prometheus 作为时序数据库和告警规则引擎node_exporter 采集主机指标cAdvisor 采集容器资源blackbox_exporter 做 HTTP/TLS 探测Grafana 做可视化仪表盘Alertmanager 分发告警到邮件/Slack。配合 Uptime Kuma 做合成可用性监控。
- 结论/价值:提供可直接拷贝的 docker-compose 模板、prometheus.yml、alerts.yml、alertmanager.yml8 步落地路径,涵盖 PoC 验证到生产级部署的全流程。
## Key Claims (中文描述)
- Prometheus 通过 pull 模式定期抓取 node_exporter / cAdvisor / blackbox_exporter 暴露的指标,实现主机/容器/网络探测的统一采集。
- Grafana 可通过 Dashboard ID如 Node Exporter Full: 1860直接导入官方仪表盘快速搭建可视化界面。
- Blackbox Exporter 通过 `probe_success == 0``probe_ssl_earliest_cert_expiry` 等指标实现 HTTP 可用性和 TLS 证书到期监控。
- node_exporter 以 host network 模式运行,挂载 `/proc``/sys``/` 为只读卷实现无代理agentless主机指标采集。
- Docker socket 挂载(如 cAdvisor 中的 `/var/run/docker.sock`)是容器监控的必要条件,但需审慎评估安全风险。
- Alertmanager 支持邮件/Slack/Teams/Webhook/PagerDuty 等多通道告警路由并提供告警抑制inhibition和分组grouping功能。
## Key Quotes
> "Prometheus 通过 pull 模式定期抓取 exporters 采集指标,支持 PromQL 命名与告警规则。适合做主观测时序库与告警。" — Prometheus 核心机制说明
> "Docker socket 挂载(风险:容器拿到宿主机 root 等同权限)。" — 安全警告
> "把监控流量/端口放在管理 VLAN 或通过防火墙限定访问。" — 网络安全建议
> "Grafana 仪表盘 JSON 导出Prometheus rule 与配置放在 GitGitOps。" — 配置备份最佳实践
## Key Concepts
- [[Prometheus]]:开源时序数据库和监控告警系统,支持 PromQL 查询语言和告警规则引擎
- [[Grafana]]:开源可视化平台,支持多数据源仪表盘和告警管理
- [[node_exporter]]Prometheus 官方主机指标采集器,采集 CPU/内存/磁盘/网络/I/O 等系统指标
- [[cAdvisor]]Google 开源的容器资源监控工具,为 Prometheus 提供容器级别指标
- [[blackbox_exporter]]Prometheus 官方黑盒探测 exporter支持 HTTP/TCP/ICMP/DNS/TLS 探测
- [[Alertmanager]]Prometheus 告警分发组件,支持告警分组、抑制、静默和多通道路由
- [[PromQL]]Prometheus Query Language用于查询时序指标和告警条件
- [[Uptime Kuma]]:自托管 uptime monitoring 工具,支持 HTTP/TCP/DNS/TLS 合成监控
- [[Netdata]]:开箱即用的实时主机/容器监控面板,默认 19999 端口,适合快速诊断
- [[VictoriaMetrics]]Prometheus 时序数据库替代方案,支持长期存储和高效写入
- [[合成监控]]Synthetic Monitoring通过模拟真实用户请求检测服务可用性和响应时间
- [[Exporter]]Prometheus 生态中负责暴露指标数据的组件,通过 HTTP 端点提供 /metrics
- [[时序数据库]]Time Series Database专门存储带时间戳的指标数据支持高效的时间范围查询和聚合
- [[Prometheus告警规则]]YAML 格式的告警条件定义,基于 PromQL 表达式触发状态变更
## Key Entities
- [[Prometheus]]CNCF 项目):时序数据库 + 监控告警平台核心
- [[Grafana Labs]]Grafana 背后的公司和维护组织
- [[Docker]]:所有组件的部署平台,通过 Docker Compose 实现一键启动
- [[Uptime Kuma]]louislam/uptime-kuma开源 uptime monitoring 工具
- [[Portainer]]Docker 可视化管理工具,不替代 Prometheus 但便于运维快速操作
## Connections
- [[Prometheus]] ← 数据源 ← [[node_exporter]]
- [[Prometheus]] ← 数据源 ← [[cAdvisor]]
- [[Prometheus]] ← 数据源 ← [[blackbox_exporter]]
- [[Grafana]] ← 可视化 ← [[Prometheus]]
- [[Alertmanager]] ← 告警接收 ← [[Prometheus]]
- [[Prometheus]] ← 告警规则 ← [[Prometheus告警规则]]
- [[Grafana]] ← 仪表盘模板 ← [[Node Exporter Full Dashboard]]
- [[Docker Compose]] ← 编排 ← 所有组件Prometheus / Grafana / Alertmanager / node_exporter / cAdvisor / blackbox_exporter
## Contradictions
- 与 [[系统监控工具]]Btop++ / Htop / Glances / Netdata相比Netdata 适合实时短期诊断Prometheus + Grafana 适合长期存储和趋势分析,两者可互补使用而非互斥。
- 与 [[ctp-topic-42-grafana-observability-dashboard]] 冲突:该来源标注为 expectedsource missing但内容为 Grafana 在 AWS 场景下的企业级应用;本来源侧重家庭服务器轻量部署,场景和规模不同。
- 与 [[ctp-topic-67-cloud-native-observability-using-opentelemetry]] 冲突OpenTelemetry 是云原生可观测性新标准metrics/traces/logs 三合一Prometheus 生态更成熟但 OpenTelemetry 是未来方向;短期用 Prometheus长期可考虑 OTel 迁移路径。
## Docker Compose 核心架构
```yaml
# 监控栈组件
services:
prometheus: # 时序数据库 + 告警引擎
grafana: # 可视化仪表盘
alertmanager: # 告警分发
node_exporter: # 主机指标host network
cadvisor: # 容器指标(挂载 /var/run/docker.sock
blackbox: # HTTP/TCP 探测
```
## 关键监控项PromQL 示例)
| 指标 | PromQL 表达式 | 阈值 |
|------|--------------|------|
| 磁盘空间 | `node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.10` | < 10% |
| CPU 使用率 | `avg(rate(node_cpu_seconds_total[2m])) * 100 > 85` | > 85% |
| 内存可用 | `node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes < 0.15` | < 15% |
| HTTP 可用性 | `probe_success == 0` (持续 2min) | 探测失败 |
| TLS 证书到期 | `probe_ssl_earliest_cert_expiry - time() < 86400 * 14` | < 14 天 |
## 落地 8 步路径
1. 用 PoC docker-compose 启动 Netdata + Uptime Kuma19999 / 3001验证
2. 上线 Prometheus + prometheus.yml配置 scrape_configs
3. 每台主机部署 node_exporterhost network 模式)
4. Grafana 导入 Dashboard1860 / 14282 / 7587
5. Alertmanager 配置告警路由(邮件/Slack
6. Uptime Kuma 建好所有内外网探测项
7. GitOps 配置管理Grafana JSON 导出Prometheus rules 放 Git
8. TLS 证书到期告警blackbox_exporter 或 Uptime Kuma
---
title: "家庭监控方案Prometheus + Grafana + Node Exporter + cAdvisor + Blackbox"
type: source
tags: [prometheus, grafana, monitoring, docker, home-server]
date: 2025-11-11
---
## Source File
- [[Home Office/家庭监控方案Prometheus + Grafana + Node Exporter + cAdvisor +Blackbox]]
## Summary(用中文描述
- 核心主题:家庭/小型服务器监控的完整 Docker 化解决方案
- 问题域:主机层、容器层、服务层的可观测性覆盖,以及告警通知渠道
- 方法/机制Prometheus 拉取模式采集 + Grafana 可视化 + Alertmanager 告警分发;通过 node_exporter、cAdvisor、blackbox_exporter 三个 exporter 覆盖主机、容器和网络探测;提供可直接拷贝的 docker-compose 完整模板
- 结论/价值:面向 NAS / Ubuntu Server 用户的零门槛可落地监控栈,含具体 PromQL 告警规则和 Grafana Dashboard ID
## Key Claims(用中文描述
- Prometheus + node_exporter + cAdvisor + blackbox_exporter + Grafana + Alertmanager 的组合可覆盖家庭服务器的完整监控面
- 主机层监控 CPU / 内存 / 磁盘 / 网络 / I/O / inode容器层监控运行状态、重启次数、资源使用服务层监控 HTTP 可用性、响应码、延迟、TLS 证书到期、DNS 解析
- TLS 证书剩余天数 < 14 天应触发告警
- 黑箱探测 `probe_success == 0` 连续 3 次应触发告警
- Docker socket 挂载存在宿主机 root 等效权限风险,需审慎处理
- Grafana 官方 Dashboard IDNode Exporter Full (`1860`)、cAdvisor Container Metrics (`14282`)、Blackbox Exporter Probe (`7587`)
## Key Quotes
> "Docker socket 挂载存在宿主机 root 等效权限风险" — 容器安全注意事项
> "Prometheus 本地磁盘会增长,考虑长期保留要用远端存储或定期 snapshot" — 存储注意事项
> "Grafana 仪表盘 JSON 导出Prometheus rule 与配置放在 GitGitOps" — 备份最佳实践
> "把容器/服务启动时打上 service=xxx、env=prod 标签,便于 PromQL 分组和 SLA 报表" — 标签化运维建议
## Key Concepts
- [[Prometheus]]:开源时序数据库 + 监控系统采用拉取pull模式从 exporters 采集指标
- [[Grafana]]:跨数据源的可视化与告警平台,支持 Prometheus/Loki/VictoriaMetrics 等
- [[Observability]]可观测性覆盖指标Metrics、日志Logs、链路Traces三大支柱
- [[Container Monitoring]](容器监控):通过 cAdvisor 采集容器资源使用、重启次数、退出码等指标
- [[Synthetic Monitoring]](合成监控):通过 blackbox_exporter 和 Uptime Kuma 做主动式可用性探测,区别于基于真实用户流量的 RUM
- [[Alert Management]]告警管理Prometheus 定义告警规则 → Alertmanager 接收 → 抑制/分组/路由到邮件/Slack/Webhook/PagerDuty
- [[Home Server Automation]]:家庭服务器的运维自动化与监控覆盖
## Key Entities
- [[Prometheus]](监控数据采集与告警规则引擎):负责从各 exporter 拉取指标并执行告警条件判断
- [[Grafana]](可视化与告警平台):展示 Prometheus 时序数据,配置告警规则和通知渠道
- [[Alertmanager]]Prometheus 告警分发组件):负责告警的抑制、分组、向邮件/Slack/Teams 等渠道分发
- [[Node Exporter]]主机指标采集器Prometheus 官方 exporter采集 CPU/内存/磁盘/网络/文件系统指标
- [[cAdvisor]]Google 容器指标采集器采集容器级别的资源使用情况CPU/内存/网络/磁盘 I/O
- [[Blackbox Exporter]](黑箱探测 exporter通过 HTTP/TCP/ICMP/DNS 探测外部或内部服务端点
- [[Uptime Kuma]](自托管可用性监控工具):开源 uptime monitoring支持 HTTP/TCP/DNS/TLS 探测与历史记录
- [[Netdata]](实时监控看板):开箱即用的详细实时主机/容器监控面板,默认 19999 端口
- [[Portainer]]Docker 可视化管理平台):图形化管理 Docker 主机/Swarm带监控/日志功能
## Connections
- [[Prometheus]] ← scrape_configs ← [[Node Exporter]]
- [[Prometheus]] ← scrape_configs ← [[cAdvisor]]
- [[Prometheus]] ← scrape_configs ← [[Blackbox Exporter]]
- [[Prometheus]] ← sends alerts ← [[Alertmanager]]
- [[Grafana]] ← datasource ← [[Prometheus]]
- [[Grafana]] ← dashboards ← [[Node Exporter]], [[cAdvisor]], [[Blackbox Exporter]]
- [[家庭网络环境概览]] ← provides context for ← [[Home Server Automation]]
## Contradictions
- 与 [[Uptime Kuma]] 描述存在侧重差异:源文档将 Uptime Kuma 定位为"合成监控补充工具"与 blackbox_exporter 并列,实际部署中两者均可独立完成 HTTP/TLS 探测Uptime Kuma 更适合做外网监控(无公网 IP 时blackbox_exporter 更适合内网和更细粒度的 PromQL 告警集成

View File

@@ -1,50 +1,34 @@
---
title: "用Docker安装Portainer"
type: source
tags: [docker, portainer]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/用Docker安装Portainer.md]]
## Summary (用中文描述)
- **核心主题**:通过 Docker Compose 在 Home Server 上部署 Portainer 容器管理 Web UI
- **问题域**:家庭服务器 Docker 容器运维管理
- **方法/机制**:使用 docker-compose.yml 定义 Portainer 服务,通过 Docker socket 直通实现宿主机 Docker 守护进程的 Web 可视化管理
- **结论/价值**:提供图形化界面管理 Docker 容器/镜像/卷/网络,降低命令行运维门槛
## Key Claims (用中文描述)
- **Portainer** 通过 `docker.sock` 挂载实现对宿主机 Docker 守护进程的完整访问控制
- 使用 **portainer/portainer-ce:lts** 镜像部署 Portainer Community Edition 长期支持
- 配置 `restart: always` 确保容器在宿主机重启后自动恢复
- 映射端口 `9443:9443` 提供 HTTPS API Web 界面,`8000:8000` 支持 Edge Agent 通信
- 持久化数据存储在 Docker 卷 `portainer_data:/data`
## Key Quotes
> "create docker-compose.yml" — 部署起点docker-compose 是 Portainer 部署的标准方式
> "`docker-compose run -d`" — 容器启动命令,后台守护模式运行
## Key Concepts
- [[Docker可视化管理工具]]:提供 Web UI 替代命令行管理 Docker 容器、镜像、卷、网络
- [[Docker Socket]]`/var/run/docker.sock` 是 Docker 守护进程的 Unix socket挂载到容器内实现特权访问
- [[Docker卷]]`portainer_data` Docker 卷用于持久化 Portainer 自身数据(配置、密码等)
## Key Entities
- [[Portainer]]:开源 Docker 可视化管理工具,提供 Web UI 管理容器/镜像/卷/网络
- [[Portainer CE LTS]]Portainer Community Edition 长期支持版本
## Connections
- [[Portainer]] ← 依赖 ← [[Docker Engine]](宿主机 Docker 守护进程)
- [[Portainer]] ← 使用 ← [[Docker Socket]]socket 直通实现特权访问)
- [[Portainer]] ← 存储数据在 ← [[Docker卷]]portainer_data 卷)
- [[Portainer]] ← 属于 ← [[Docker可视化管理工具]](替代命令行运维)
## Contradictions
- 无冲突
## Related Sources
- [[用docker安装transmission]] — 同属 Home Office Docker 部署系列
- [[用docker安装jellyfin]] — 同属 Home Office Docker 部署系列
- [[用docker安装navidrome]] — 同属 Home Office Docker 部署系列
---
title: "用Docker安装Portainer"
type: source
tags: [docker, portainer]
date: 2026-04-26
---
## Source File
- [[Home Office/用Docker安装Portainer]]
## Summary用中文描述
- 核心主题:通过 Docker Compose 方式安装 Portainer 容器管理面板
- 问题域:家庭服务器或NAS环境下的Docker容器可视化管理工作
- 方法/机制:使用 docker-compose.yml 配置文件定义 Portainer 服务,通过 `docker-compose run -d` 启动容器
- 结论/价值提供图形化界面管理Docker容器、卷、网络等资源,降低命令行操作复杂度
## Key Claims用中文描述
- Portainer 通过挂载 Docker Socket`/var/run/docker.sock`)实现对本地Docker守护进程的管理
- 使用 LTS 版本镜像(`portainer/portainer-ce:lts`)确保稳定性和长期支持
- 容器配置 `restart: always`确保服务在系统重启后自动恢复
- 默认暴露 9443HTTPS管理界面和 8000Edge Agent通信)端口
## Key Quotes
> "ports: - 9443:9443 - 8000:8000" — Portainer Web界面通过9443端口访问8000端口用于Edge Agent通信不使用Edge Agent时可移除
## Key Concepts
- [[Docker Compose]]定义和运行多容器Docker应用的工具通过YAML配置文件管理服务
- [[Portainer]]开源的Docker和Kubernetes图形化管理界面支持容器、镜像、卷、网络等资源管理
## Key Entities
- [[Portainer]]:开源容器管理平台,本文档的核心安装目标
## Connections
- [[如何删除旧的废弃的Docker Container + Volume]] ← related_to ← [[用Docker安装Portainer]]

View File

@@ -1,53 +1,48 @@
---
title: "群晖NAS科学上网方法"
type: source
tags: [docker, nas, synology, v2raya, vpn]
date: 2025-03-08
---
## Source File
- [[raw/Home Office/群晖NAS科学上网方法.md]]
## Summary (用中文描述)
- **核心主题:** 在群晖 NASSynology DSM上通过 V2RayA 代理实现 Docker 容器透明代理,使 NAS 上的 Docker 可以访问 Docker Hub 等被墙的国外资源
- **问题域:** 国内网络环境下 NAS Docker pull/pull image 困难V2RayA 透明代理对 Docker Daemon 网络栈的兼容性挑战
- **方法/机制:** 两层方案——① V2RayA Docker 容器 + 透明代理(分流模式:大陆白名单);② Docker Daemon HTTP Proxy 配置(兜底方案)
- **结论/价值:** 透明代理在群晖 DSM 7.x 中对 Docker Daemon 网络栈不一定生效;显式配置 Docker Daemon Proxy 环境变量是更可靠的 Engineering Best Practice
## Key Claims (用中文描述)
- V2RayA 在群晖 DSM 7.x 环境下透明代理不一定对 HostNAS 本机)生效,可能与 DSM 防火墙或路由表冲突
- Docker Daemon (dockerd) 的网络栈在群晖 DSM 7.x 中不完全遵循 v2rayA 修改的 iptables 规则
- 显式配置 Docker Daemon 的 HTTP Proxy 环境变量(`/etc/systemd/system/`)比依赖 NAS Host 透明代理更符合工程最佳实践
- 验证流程:`curl -x` 测端口 → `curl` 直连测透明代理 → `docker pull` 实战验证
## Key Quotes
> "对于企业级或生产环境(即使是 SOHO我建议**不要**依赖 NAS Host 的透明代理来解决 `docker pull` 问题,因为这修改了系统级路由表,容易影响 NAS 其他服务。**显式配置 Docker Daemon 的 Proxy 环境变量(上面的最后一种方法)是更符合 Engineering Best Practice 的做法。**" — 经验总结
> "⚠️ 风险提示:在 NAS 上开启透明代理(尤其是 Host 模式)有极小概率会导致局域网连接中断。如果你正在远程操作,请确保有备用连接方案(如 QuickConnect 或同局域网设备)。" — 操作警告
## Key Concepts
- [[透明代理]]V2RayA 通过修改 iptables 规则劫持系统出站流量,国内流量直连、国外流量走代理的分流模式
- [[Docker Daemon Proxy]]Docker 守护进程的 HTTP/HTTPS 代理配置,通过 systemd 环境变量注入,使 `docker pull` 显式走代理而非依赖系统透明代理
- [[分流模式]]V2RayA 路由策略,"大陆白名单"模式下仅代理非中国大陆流量,减少不必要的代理开销
- [[iptables]]Linux 内核防火墙V2RayA 通过修改 iptables 规则实现透明代理
## Key Entities
- [[V2RayA]]V2Ray 的 Web 可视化管理界面,基于 V2Ray 内核,支持透明代理和多种分流策略
- [[群晖 NAS]]Synology NAS 设备,运行 DSM 操作系统Docker 环境为 ContainerManager (DSM 7.x)
- [[Docker]]:容器化平台,群晖通过 ContainerManager 套件提供 Docker 支持
- [[Docker Hub]]Docker 官方镜像仓库,国内访问受限,是科学上网的主要需求驱动
- [[DSM 7.x]]:群晖 DiskStation Manager 7.x 版本Docker 服务名为 ContainerManager旧版叫 Docker
## Connections
- [[V2RayA]] ← 部署于 ← [[群晖 NAS]]
- [[透明代理]] ← 依赖 ← [[iptables]]
- [[Docker Daemon Proxy]] ← 解决 ← 透明代理对 Docker 无效的场景
- [[分流模式]] ← 配置于 ← [[V2RayA]]
- [[群晖NAS科学上网]] ← 扩展 ← [[ubuntu-server科学上网]](终端代理场景)
## Contradictions
- 与"路由器科学上网"方案([[MerlinClash插件]])对比:
- **冲突点:** 路由器作为全屋透明网关 vs NAS 终端代理
- **当前观点(本文):** NAS 终端配置 Docker Daemon Proxy 是针对 Docker 场景的精确解决方案
- **对方观点(路由方案):** 路由器透明代理覆盖所有设备,无需逐设备配置
- **结论:** 两者互补路由器作为主网关NAS 按需单独配置 Docker 代理
---
title: "群晖NAS科学上网方法"
type: source
tags: [docker, nas, synology, v2raya, vpn, 透明代理]
date: 2025-03-08
---
## Source File
- [[Home Office/群晖NAS科学上网方法]]
## Summary用中文描述
- 核心主题:在群晖SynologyNAS 上通过 Docker 安装 V2RayA实现透明代理,使 NAS 本机和 Docker Daemon 均能科学上网
- 问题域:群晖 DSM 环境下Docker Daemon 网络栈不遵循 V2RayA 的 iptables 规则,导致 `docker pull` 仍无法走代理
- 方法/机制:
- 通过 Docker 部署 V2RayA 容器Host 网络模式)
- 透明代理transparent proxy劫持 NAS 本机出站流量
- 路由规则选择"大陆白名单Whitelist of Mainland China"分流
- 备用方案:显式配置 Docker Daemon HTTP 代理环境变量(推荐)
- 结论/价值:透明代理对 NAS 本机有效,但对 Docker Daemon 无效Engineering Best Practice 是显式配置 Docker 守护进程代理,而非依赖 Host 透明代理
## Key Claims用中文描述
- V2RayA Docker 容器以 `--network=host` 模式运行,配合 `--restart=always` 确保开机自启
- V2RayA 透明代理(分流模式"大陆白名单")可使 NAS 本机流量走代理,验证方法:`curl https://www.google.com`(不加 `-x` 参数)直接返回 HTTP 200
- DSM 7.x 中Docker Daemon (`dockerd`) 网络栈不完全遵循 v2rayA 的 iptables 规则,`docker pull` 可能仍然失败
- 显式配置 Docker Daemon 代理systemd environment variables是解决 `docker pull` 科学上网的推荐方案,符合 Engineering Best Practice
## Key Quotes
> "在群晖 DSM 7.x 中Docker Daemon (`dockerd`) 的网络栈有时候不会完全遵循 v2rayA 修改的 iptables 规则。如果上面的 `docker pull` 仍然慢或失败,**不要死磕透明代理**,直接配置 Docker 守护进程走 HTTP 代理是最稳妥的方案。" — 核心观点
> "对于企业级或生产环境即使是SOHO我建议**不要**依赖 NAS Host 的透明代理来解决 `docker pull` 问题,因为这修改了系统级路由表,容易影响 NAS 其他服务。**显式配置 Docker Daemon 的 Proxy 环境变量(上面的最后一种方法)是更符合 Engineering Best Practice 的做法。**" — 最佳实践建议
## Key Concepts
- [[V2RayA]]:基于 V2Ray 的轻量透明代理 Web 管理界面,支持多种分流规则(大陆白名单/GFWList 等)
- [[透明代理]]Transparent Proxy在网络层劫持并转发流量无需客户端显式配置代理
- [[Docker Daemon 代理]]:通过 systemd 环境变量为 Docker 守护进程配置 HTTP/HTTPS 代理,影响所有 `docker pull` 和容器出站流量
- [[Traffic Splitting]](流量分流)V2RayA分流模式,根据路由规则决定流量直连或走代理
## Key Entities
- [[Synology-DSM]]:群晖 NAS 操作系统DSM 7.x 中 Docker 服务名为 `pkg-ContainerManager-dockerd`
- [[Docker]]:容器化平台,本文档中作为 V2RayA 的运行环境和需要科学上网的主要场景
- [[mzz2017/v2raya]]V2RayA 官方 Docker 镜像,用于在 NAS 上部署代理服务
## Connections
- [[Ubuntu-Server科学上网]] ← similar_approach ← [[群晖NAS科学上网方法]](同为 Linux 环境下部署 V2RayA 的实践)
- [[Synology-NAS上安装CloudDrive2]] ← same_platform ← [[群晖NAS科学上网方法]](均针对 Synology NAS 环境)
- [[如何传输Docker-images-并且在另一个Docker安装]] ← referenced_by ← [[群晖NAS科学上网方法]](文档内引用了镜像传输方法)
## Contradictions
- 无冲突。与 [[Ubuntu-Server科学上网]] 的方法论一致(均推荐显式配置代理而非依赖透明代理)。