320 lines
11 KiB
Markdown
320 lines
11 KiB
Markdown
---
|
||
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 内部网络 |
|
||
|
||
### IP 分段规划
|
||
|
||
```
|
||
.1-.10 网络设备预留
|
||
.11-.30 K8s 集群(静态 netplan,不走 DHCP)
|
||
.60-.70 核心基础设施(DHCP 静态绑定)
|
||
.71-.99 个人设备(DHCP 静态绑定)
|
||
.100-.229 DHCP 动态池(start=100, limit=130)
|
||
.230-.239 预留
|
||
.240-.242 MetalLB VIP(K8s Ingress LoadBalancer)
|
||
.243+ 未使用
|
||
```
|
||
|
||
### 端口映射(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 静态绑定(22 台设备)
|
||
|
||
### K8s 集群(.11-.22)
|
||
|
||
| 名称 | IP | MAC | 说明 | DNS |
|
||
|------|-----|-----|------|-----|
|
||
| k8s-cp1 | 192.168.68.11 | BC:24:11:44:DB:F6 | K8s 控制面 | 8.8.8.8(绕过 OpenClash) |
|
||
| k8s-w1 | 192.168.68.21 | BC:24:11:16:AD:25 | K8s 工作节点 | 8.8.8.8(绕过 OpenClash) |
|
||
| k8s-w2 | 192.168.68.22 | BC:24:11:51:8E:58 | K8s 工作节点 | 8.8.8.8(绕过 OpenClash) |
|
||
|
||
### 核心基础设施(.60-.70)
|
||
|
||
| 名称 | IP | MAC | 说明 |
|
||
|------|-----|-----|------|
|
||
| Yiukai-Asus-lan | 192.168.68.60 | 44:E5:17:DD:26:01 | Asus 笔记本(有线) |
|
||
| easepi | 192.168.68.63 | EE:61:98:11:AD:C4 | iStoreOS 主网关 |
|
||
| pve-server | 192.168.68.69 | 84:47:09:20:70:DA | PVE 虚拟化服务器 |
|
||
| YIUKAINAS | 192.168.68.70 | 24:5E:BE:5F:ED:38 | QNAP NAS |
|
||
|
||
### 个人设备(.71-.99)
|
||
|
||
| 名称 | IP | MAC | 说明 |
|
||
|------|-----|-----|------|
|
||
| Yaojias-iPhone | 192.168.68.73 | 68:EF:DC:B7:36:40 | iPhone |
|
||
| Yaojia-ipad | 192.168.68.77 | 64:0B:D7:F0:D0:4C | iPad |
|
||
| Yiukai-Asus-wifi | 192.168.68.79 | 08:3A:88:59:1F:A6 | Asus 笔记本(WiFi) |
|
||
| network-scanner | 192.168.68.84 | BC:24:11:09:F1:9E | 网络扫描 VM |
|
||
| Yiukais-MBP | 192.168.68.87 | 5C:E9:1E:B2:56:79 | MacBook Pro |
|
||
| kuangxideiPhone | 192.168.68.88 | C4:C1:7D:7B:76:CC | iPhone |
|
||
| Yiukai | 192.168.68.89 | 10:FF:E0:CC:1D:00 | 个人设备 |
|
||
| homeassistant | 192.168.68.97 | BC:24:11:63:40:1E | Home Assistant VM |
|
||
|
||
### PVE 虚拟机 & 服务(.100-.120)
|
||
|
||
| 名称 | IP | MAC | 说明 |
|
||
|------|-----|-----|------|
|
||
| pve-docker | 192.168.68.102 | BC:24:11:3B:9C:8A | PVE VM |
|
||
| kai-desktop-jetson | 192.168.68.104 | 3C:6D:66:1E:D7:62 | Jetson 开发板 |
|
||
| wireguard | 192.168.68.107 | BC:24:11:00:4D:D2 | WireGuard VM |
|
||
| yiukai-ubuntu | 192.168.68.108 | 1C:79:2D:5C:2C:C4 | Ubuntu 台式机 |
|
||
| android-8fbbfff | 192.168.68.111 | 6C:2D:24:F8:F3:0C | Android 手机 |
|
||
| adguard-vm | 192.168.68.112 | BC:24:11:C9:58:CB | AdGuard Home VM(备用) |
|
||
|
||
### 其他
|
||
|
||
| 名称 | IP | MAC | 说明 |
|
||
|------|-----|-----|------|
|
||
| pc | 192.168.68.176 | 12:D0:5B:A3:8B:4F | Windows PC |
|
||
|
||
### MetalLB VIP(不走 DHCP)
|
||
|
||
| IP | 用途 |
|
||
|-----|------|
|
||
| 192.168.68.240 | K8s Ingress (ingress-nginx) |
|
||
| 192.168.68.241-242 | MetalLB 预留 |
|
||
|
||
---
|
||
|
||
## 安全加固(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
|