docs: add full network architecture diagram to README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-08 18:25:17 +08:00
parent 70ad99161b
commit 178f3c56bb

131
README.md
View File

@@ -1,7 +1,136 @@
# OpenWrt 管理指令
**目標設備**`192.168.42.10`OpenWrt 24.10.4
**WAN IP**`125.229.110.50`PPPoE
**WAN IP**`125.229.110.50`PPPoE / HiNet
---
## 整體架構圖
### 網路拓撲
```
Internet (HiNet)
PPPoE 125.229.110.50
┌────────────────────▼────────────────────┐
│ OpenWrt 24.10.4 │
│ 192.168.42.10 │
│ │
│ ┌─ 服務 ──────────────────────────┐ │
│ │ dnsmasq odhcpd sqm banip │ │
│ │ miniupnpd dropbear uhttpd │ │
│ └─────────────────────────────────┘ │
│ │
│ ┌─ 防火牆 (nftables / fw4) ────────┐ │
│ │ taiwan_ips set每週一 04:00 更新)│ │
│ └─────────────────────────────────┘ │
│ │
│ ┌─ WireGuard wg0 ──────────────────┐ │
│ │ 10.0.0.1/24 port 51820/UDP │ │
│ └─────────────────────────────────┘ │
└────────────────┬────────────────────────┘
│ br-lan 192.168.42.0/24
┌─────────┬───────────┼───────────┬─────────────┐
▼ ▼ ▼ ▼ ▼
.100 .101 .115 .117 .124 / .126
Jump Box RustDesk SQL Server SQL Server 反代 / Headscale
```
---
### 防火牆區域Firewall Zones
```
┌──────────┐ REJECT in ┌──────────┐ ACCEPT in
│ wan │ ──────────────▶ │ lan │ ◀────────────
│(pppoe_wan│ REJECT fwd │192.168.42│ ACCEPT fwd
│ wan6) │ │ .0/24 │
└──────────┘ └──────────┘
ACCEPT in
ACCEPT fwd
┌──────────┐
│ vpn │
│ (wg0) │
│10.0.0/24 │
└──────────┘
```
---
### 對外開放的 PortWAN → LAN
| WAN Port | 協定 | 目標 | 服務 | Taiwan IP 限制 |
|---|---|---|---|:---:|
| `22` | TCP | `192.168.42.100:22` | SSH Jump Box | ✅ |
| `80` | TCP | `192.168.42.124:80` | Nginx Proxy Manager | — |
| `443` | TCP | `192.168.42.124:443` | Nginx Proxy Manager | — |
| `7835` | TCP | `192.168.42.100:7835` | Bore Tunnel | ✅ |
| `8080` | TCP | `192.168.42.126:8080` | Headscale | — |
| `9090` | TCP | `192.168.42.126:9090` | Headscale | — |
| `900010000` | TCP | `192.168.42.100:900010000` | Bore Range | — |
| `2111521119` | TCP/UDP | `192.168.42.101:2111521119` | RustDesk HBBS/HBBR | — |
| `30022` | TCP | `192.168.42.115:22` | SSH → .115 | — |
| `50022` | TCP | `192.168.42.117:22` | SSH → .117 | — |
| `50443` | TCP | `192.168.42.126:50443` | Headscale DERP | — |
| `51433` | TCP | `192.168.42.115:1433` | SQL Server (.115) | — |
| `31433` | TCP | `192.168.42.117:1433` | SQL Server (.117) | — |
| `51820` | UDP | router wg0 | WireGuard | — |
---
### LAN 裝置
| IP | 主機名稱 / 用途 |
|---|---|
| `192.168.42.10` | OpenWrt 路由器 |
| `192.168.42.100` | Jump BoxSSH、Bore|
| `192.168.42.101` | RustDesk Server |
| `192.168.42.115` | SQL Server A |
| `192.168.42.117` | SQL Server B |
| `192.168.42.124` | Nginx Proxy Manager + Gitea:31337|
| `192.168.42.126` | Headscale |
| `192.168.42.220` | TimmydeMBP |
---
### WireGuard VPN 拓撲
```
外部(任意網路)
│ UDP 51820
192.168.42.10 ←→ wg0: 10.0.0.1/24
├── 10.0.0.2 Workstation
└── 10.0.0.3 iPhone 15 Pro Max
VPN client 加入後可存取:
├── 192.168.42.0/24 (整個 LAN
└── 10.0.0.0/24 (其他 VPN peer
```
---
### Taiwan IP 過濾機制
```
外部請求
nftables 檢查 source IP 是否在 taiwan_ips set
├── 是 → 允許通過SSH Jump Box、Bore Tunnel
└── 否 → REJECT
```
- IP 清單來源:`https://www.ipdeny.com/ipblocks/data/countries/tw.zone`
- 自動更新:每週一 04:00`crontab`
- 手動更新:`sh /root/42_10/update_tw_ip.sh`
---