Files
knowledge-base/3 - Areas/家庭网络基础设施.md

275 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
created: "2026-03-15"
type: moc
tags: [homelab, networking, infrastructure]
---
# 家庭网络基础设施
## 网络拓扑
```
互联网 (Telia, 瑞典)
光猫 (拨号, Dynamic IP)
▼ WAN (eth0, 公网 IP: 81.231.178.251)
iStoreOS / EasePi Pro (192.168.68.63) ← 主网关
├── DHCP 服务器
├── dnsmasq (:53) → 内网 DNS
├── OpenClash / mihomo (:7874) → 翻墙回国 + 广告拦截
├── WireGuard VPN (10.8.0.0/24)
├── 端口映射
▼ LAN (eth1/eth2/eth3, 192.168.68.0/22)
├── Deco BE65 (AP 模式) ─── WiFi ─── 手机/平板/笔记本
│ └── Deco 子节点 (mesh)
└── 交换机 (2楼)
├── PVE 服务器 (192.168.68.69) ─── 虚拟机集群
└── QNAP NAS (192.168.68.70) ─── 存储 + Docker 服务
```
## 物理布局
| 楼层 | 设备 | 连接方式 |
|------|------|---------|
| 1楼 | 光猫 → iStoreOS → Deco BE65 主机 | 有线 |
| 2楼 | 交换机 → PVE + NAS | 有线(通过 Deco mesh 回程到 iStoreOS |
---
## 核心设备
### iStoreOS / EasePi Pro — 主网关
| 项目 | 值 |
|------|-----|
| IP | `192.168.68.63` |
| 系统 | iStoreOS 24.10.2 (aarch64) |
| 角色 | 主网关、DHCP、DNS、VPN、代理 |
| SSH | `ssh root@192.168.68.63`(需 1Password agent |
| 管理面板 | http://192.168.68.63 |
**运行服务:**
| 服务 | 端口 | 说明 |
|------|------|------|
| dnsmasq | :53 | 内网 DNS + 转发到 OpenClash |
| OpenClash | :7874 | fake-ip 分流 + 翻墙回国 |
| OpenClash Dashboard | :9090 | 连接监控 |
| WireGuard VPN | tun0 (10.8.0.0/24) | 远程接入 |
### Deco BE65 — WiFi 网状网络
| 项目 | 值 |
|------|-----|
| IP | `192.168.68.182`DHCP |
| 模式 | AP接入点 |
| 角色 | 仅 WiFi mesh不做路由/DHCP |
| 管理 | Deco App |
### PVE 服务器 — 虚拟化平台
| 项目 | 值 |
|------|-----|
| IP | `192.168.68.69` |
| 系统 | Proxmox VE (Linux 6.8.12-9-pve, x86_64) |
| SSH | `ssh root@192.168.68.69`(需 1Password agent |
| 管理面板 | https://192.168.68.69:8006 |
| 存储 | local (98GB dir) + local-lvm (855GB lvmthin) |
**虚拟机列表:**
| VMID | 名称 | IP | 内存 | 磁盘 | 状态 | 说明 |
|------|------|-----|------|------|------|------|
| 100 | HA | - | 2GB | 32GB | running | Home Assistant 智能家居 |
| 101 | k8s-cp1 | - | 2GB | 83GB | running | Kubernetes 控制面节点 |
| 102 | Wireguard | 192.168.68.107 | 2GB | 32GB | running | WireGuard VPN 服务 |
| 103 | k8s-w1 | - | 2GB | 83GB | running | Kubernetes 工作节点 1 |
| 104 | k8s-w2 | - | 2GB | 83GB | running | Kubernetes 工作节点 2 |
| 105 | pg-01 | - | 8GB | 23GB | running | PostgreSQL 数据库 |
| 106 | network-scanner | 192.168.68.84 | 8GB | 43GB | running | 网络扫描工具 |
| 111 | adguard-vm | 192.168.68.112 | 512MB | 8GB | running | AdGuard Home备用当前未使用 |
| 9000 | ubuntu-cloudinit | - | 8GB | 3.5GB | stopped | 模板 |
### QNAP NAS — 存储与服务
| 项目 | 值 |
|------|-----|
| IP | `192.168.68.70` |
| 系统 | QNAP (Linux 5.10.60-qnap, x86_64) |
| SSH | `ssh -p 4696 kai@192.168.68.70`(需 1Password agent |
| Docker | Container Station (`/share/CACHEDEV4_DATA/.qpkg/container-station/bin/docker`) |
**Docker 容器:**
| 容器 | 镜像 | 端口 | 说明 |
|------|------|------|------|
| n8n | n8nio/n8n | :5678 | 工作流自动化 |
| n8n-postgres | postgres:16-alpine | 内部 | n8n 数据库 |
| affine_server | toeverything/affine | :3010 | 协作知识库 |
| affine_postgres | pgvector/pgvector:pg16 | 内部 | Affine 数据库 |
| affine_redis | redis | 内部 | Affine 缓存 |
| gitea | gitea/gitea | :2200(SSH), :10011(Web) | Git 代码托管 |
| transmission | linuxserver/transmission | :8091(Web), :51413(BT) | BT 下载 |
| flowise | flowiseai/flowise | :6060 | AI 工作流 |
| flowise-dong | flowiseai/flowise | :6061 | AI 工作流(副本) |
| qdrant | qdrant/qdrant | :6333-6334 | 向量数据库 |
| npm | nginx-proxy-manager | :80, :81, :443 | 反向代理 |
| ddns-go | jeessy/ddns-go | - | DDNS 动态域名 |
---
## 网络配置
### 子网
| 网段 | 用途 |
|------|------|
| `192.168.68.0/22` | 家庭 LAN所有设备 |
| `10.8.0.0/24` | WireGuard VPN |
| `172.17.0.0/16` | Docker 内部网络 |
### 端口映射WAN → LAN
| 外部端口 | 目标 | 说明 |
|---------|------|------|
| 2200 | 192.168.68.70:2200 | Gitea SSH |
| 443 | 192.168.68.70:443 | Nginx Proxy Manager HTTPS |
| 51888 | 192.168.68.107:51888 | WireGuard |
### DNS
**链路:** `设备 → dnsmasq(:53) → OpenClash(:7874) → 8.8.8.8 / 1.1.1.1`
**内网 DNS 记录:**
| 域名 | IP | 说明 |
|------|-----|------|
| `*.k8s.home` | 192.168.68.240 | Kubernetes Ingress (MetalLB) |
| `nas.colacoder.com` | 192.168.68.70 | NAS |
| `pve.colacoder.com` | 192.168.68.70 | PVE通过 NPM 代理) |
| `npm.colacoder.com` | 192.168.68.70 | Nginx Proxy Manager |
| `router.colacoder.com` | 192.168.68.63 | 路由器 |
| `adguard.colacoder.com` | 192.168.68.63 | AdGuard Home |
| `claw.colacoder.com` | 192.168.68.70 | Claw 服务 |
| `openvas.colacoder.com` | 192.168.68.70 | OpenVAS 漏洞扫描 |
| `invest-api.k8s.home` | 192.168.68.240 | 投资 API |
---
## DHCP 静态绑定
| 名称 | IP | MAC | 设备类型 |
|------|-----|-----|---------|
| YIUKAINAS | 192.168.68.70 | 24:5E:BE:5F:ED:38 | QNAP NAS |
| lingke | 192.168.68.69 | 84:47:09:20:70:DA | PVE 服务器 |
| easepi | 192.168.68.63 | EE:61:98:11:AD:C4 | iStoreOS 路由器 |
| Yiukais-MBP | 192.168.68.87 | 5C:E9:1E:B2:56:79 | MacBook Pro |
| Yiukai-Asus-wifi | 192.168.68.79 | 08:3A:88:59:1F:A6 | Asus 笔记本(WiFi) |
| Yiukai-Asus-lan | 192.168.68.60 | 44:E5:17:DD:26:01 | Asus 笔记本(有线) |
| yiukai-ubuntu | 192.168.68.108 | 1C:79:2D:5C:2C:C4 | Ubuntu 台式机 |
| Yiukai | 192.168.68.89 | 10:FF:E0:CC:1D:00 | 个人设备 |
| pc | 192.168.68.176 | 12:D0:5B:A3:8B:4F | Windows PC |
| pve-docker | 192.168.68.102 | BC:24:11:3B:9C:8A | PVE VM |
| wireguard | 192.168.68.107 | BC:24:11:00:4D:D2 | WireGuard VM |
| kai-desktop-jetson | 192.168.68.104 | 3C:6D:66:1E:D7:62 | Jetson 开发板 |
| homeassistant | 192.168.68.97 | BC:24:11:63:40:1E | Home Assistant VM |
| network-scanner | 192.168.68.84 | BC:24:11:09:F1:9E | 网络扫描 VM |
| adguard-vm | 192.168.68.112 | BC:24:11:C9:58:CB | AdGuard Home VM |
| Yaojia-ipad | 192.168.68.77 | 64:0B:D7:F0:D0:4C | iPad |
| Yaojias-iPhone | 192.168.68.73 | 68:EF:DC:B7:36:40 | iPhone |
| kuangxideiPhone | 192.168.68.88 | C4:C1:7D:7B:76:CC | iPhone |
| android-8fbbfff | 192.168.68.111 | 6C:2D:24:F8:F3:0C | Android 手机 |
---
## 安全加固2026-03-15 审计)
### 已实施
| 项目 | 措施 | 状态 |
|------|------|------|
| WAN 入站 | 默认 REJECT仅放行必要端口 | ✅ |
| DNS | dnsmasq 只监听 LAN IP (`192.168.68.63`) | ✅ |
| SSH | 密码认证关闭,仅密钥,只绑 LAN | ✅ |
| ttyd (Web终端) | 只绑 LAN IP | ✅ |
| uhttpd (管理面板) | 只绑 LAN IP (`192.168.68.63:80/443`) | ✅ |
| IPv6 | 已关闭,无全局地址 | ✅ |
| WAN Ping | 已关闭 | ✅ |
| OpenVPN 1194 规则 | 已删除(不使用 OpenVPN | ✅ |
| UPnP | 已禁用 | ✅ |
| Samba | 只绑 LAN IP | ✅ |
### WAN 入站放行端口
| 端口 | 服务 | 说明 |
|------|------|------|
| 8897/tcp | linkease (易有云) | iStoreOS 自带远程访问 |
| 2200/tcp → NAS:2200 | Gitea SSH | 端口映射 |
| 443/tcp → NAS:443 | Nginx Proxy Manager | 端口映射 |
| 51888/tcp → WG:51888 | WireGuard | 端口映射 |
### K8s 节点绕过 OpenClash
K8s 节点 DNS 使用 `8.8.8.8`(不经过 OpenClash fake-ip流量通过 `SRC-IP-CIDR` 规则直连:
| 节点 | IP | DNS | 网关 | OpenClash |
|------|-----|-----|------|-----------|
| k8s-cp1 | 192.168.68.11 | 8.8.8.8 | 192.168.68.63 | DIRECT绕过 |
| k8s-w1 | 192.168.68.21 | 8.8.8.8 | 192.168.68.63 | DIRECT绕过 |
| k8s-w2 | 192.168.68.22 | 8.8.8.8 | 192.168.68.63 | DIRECT绕过 |
> 原因OpenClash fake-ip 对容器镜像仓库quay.io、ecr.aws 等)返回假 IP
> K8s 节点无法通过 TUN 路由假 IP导致 ImagePullBackOff。
### 待评估
| 项目 | 说明 | 建议 |
|------|------|------|
| linkease 8897 | 对 WAN 开放,如不用可关闭 | 确认需求 |
| NFS/RPC (111,2049) | 监听 0.0.0.0,防火墙挡了 WAN | 如不用可关闭 |
| wsdd2 (5355,3702) | Windows 网络发现,防火墙挡了 | 如不用可关闭 |
| root 密码 MD5 哈希 | `$1$` 较弱,但 SSH 已关密码认证 | 低风险 |
---
## SSH 访问
所有 SSH 连接需要通过 1Password SSH Agent
```bash
# iStoreOS 路由器
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ssh root@192.168.68.63
# PVE 服务器
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ssh root@192.168.68.69
# NAS
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ssh -p 4696 kai@192.168.68.70
# 阿里云 VLESS 服务器
ssh admin@8.138.1.192
```
---
## 相关项目
- [[VLESS-Reality 翻墙回国]] — 翻墙回国代理配置
- [[PVE Security Scanner]] — 网络安全扫描
## 相关资源
- iStoreOS 管理面板: http://192.168.68.63
- PVE 管理面板: https://192.168.68.69:8006
- OpenClash Dashboard: http://192.168.68.63:9090
- Gitea: http://192.168.68.70:10011
- n8n: http://192.168.68.70:5678
- Affine: http://192.168.68.70:3010
- Nginx Proxy Manager: http://192.168.68.70:81
- Transmission: http://192.168.68.70:8091