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

12 KiB
Raw Blame History

created, type, tags
created type tags
2026-03-15 moc
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.182DHCP
模式 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 VIPK8s 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。

IoT 设备防火墙隔离

25 台智能家居设备(小米/Yeelight/Aqara 等)通过 nftables 规则限制访问:

流量方向 策略
IoT → NAS (.70) DROP
IoT → PVE (.69) DROP
IoT → K8s (.11/.21/.22) DROP
IoT → iStoreOS (.63) DROP
IoT → Home Assistant (.97) ACCEPT
IoT → 手机(米家 App ACCEPT同网段
IoT → 互联网 ACCEPT

实现方式:

  • nft set iot_devices25 台 IoT 设备 IP
  • nft set protected_servers:敏感服务器 IP
  • 规则:ip saddr @iot_devices ip daddr @protected_servers drop
  • 脚本:/etc/firewall.iot(通过 UCI firewall include 自动加载)

未使用 VLAN 隔离,因为小米 WiFi 设备(灯、插座、摄像头)需要与手机在同一网段才能本地控制。

待评估

项目 说明 建议
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

# 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

相关项目

相关资源