Files
server-infra/docs/network.md
2026-05-30 21:19:05 +09:00

89 lines
3.9 KiB
Markdown

# 네트워크 구성
## 물리 / 호스트 인터페이스
| 인터페이스 | IP | 용도 |
|---|---|---|
| LAN | `172.30.1.41` | 외부 접근 (공유기 내부망) |
| Podman bridge (proxy) | `10.89.0.1` | 컨테이너 → 호스트 게이트웨이 |
## Podman 네트워크
| 네트워크명 | 서브넷 | 용도 |
|---|---|---|
| `proxy` | `10.89.0.0/24` | 주요 서비스 간 통신 |
| `asr` | 별도 브리지 | ASR 서비스 격리 |
| `podman` (기본) | — | 미사용 |
## proxy.network IP 할당
| IP | 서비스 | 역할 |
|---|---|---|
| `10.89.0.1` | 호스트 (브리지 게이트웨이) | 호스트 네이티브 서비스 접근점 |
| `10.89.0.2` | `asr` | ASR Whisper |
| `10.89.0.3` | `jellyfin` | Jellyfin 미디어 서버 |
| `10.89.0.5` | `filebrowser` | FileBrowser |
| `10.89.0.6` | `npm-app` | Nginx Proxy Manager |
| `10.89.0.7` | `sftpgo` | SFTPGo |
| `10.89.0.8` | `gitea` | Gitea |
| `10.89.0.20` | `authentik-server` | Authentik Server + Embedded Outpost |
| `10.89.0.21` | `authentik-worker` | Authentik Worker |
| `10.89.0.22` | `reservation` | Reservation App |
| `10.89.0.23` | `telegram-reminder-bot` | Telegram Reminder Bot 관리자 UI / Bot runtime |
| `10.89.0.30` | `prometheus` | Prometheus |
| `10.89.0.31` | `cadvisor` | cAdvisor |
| `10.89.0.40` | `postgres-main` | PostgreSQL |
| `10.89.0.41` | `authentik-redis` | Redis (Authentik) |
| `10.89.0.42` | `nextcloud-app` | Nextcloud |
| `10.89.0.43` | `onlyoffice-docs` | OnlyOffice |
| `10.89.0.44` | `redis-nextcloud` | Redis (Nextcloud) |
| `10.89.0.45` | `wikijs` | Wiki.js |
| `10.89.0.50` | `postfix` | SMTP Relay |
| `10.89.0.99` | `telegram-calendar-bot` | Telegram Calendar Bot |
## 외부 포트 노출 현황
| 포트 | 프로토콜 | 서비스 | 비고 |
|---|---|---|---|
| `80` | TCP | NPM | HTTP → HTTPS 리다이렉트 |
| `443` | TCP | NPM | HTTPS 진입점 (모든 서브도메인) |
| `228` | TCP | SSHd | SSH (비표준 포트) |
| `2222` | TCP | Gitea SSH | Git SSH 클론 (`172.30.1.41` 바인드) |
| `3306` | TCP | MariaDB | ⚠️ 방화벽/네트워크 레벨 차단 필요 |
| `8080` | TCP | SFTPGo Web | `172.30.1.41` 바인드 |
| `8188` | TCP | ComfyUI | `0.0.0.0` — Authentik Proxy 필수 |
| `10080` | TCP | SFTPGo WebDAV | `172.30.1.41` 바인드 |
| `11434` | TCP | Ollama API | `0.0.0.0` — 접근 제어 필요 |
| `18100` | TCP | ASR Gateway | `172.30.1.41` 바인드 |
| `19000` | TCP | Authentik | `0.0.0.0` — NPM 경유 |
| `19090` | TCP | Prometheus | `0.0.0.0` — ⚠️ Authentik 보호 후 제거 권장 |
## 트래픽 흐름
```
Internet
[NPM :443] ─── TLS 종료, 도메인 기반 라우팅
├── auth.du5t.xyz → 10.89.0.20:9000 (Authentik)
├── git.du5t.xyz → 10.89.0.8:3000 (Gitea)
├── cloud.du5t.xyz → 10.89.0.42:80 (Nextcloud)
├── grafana.du5t.xyz → 172.30.1.41:3000 (Grafana)
├── ai.du5t.xyz → 172.30.1.41:8079 (Open WebUI)
├── media.du5t.xyz → 10.89.0.3:8096 (Jellyfin)
├── jupyter.du5t.xyz → 172.30.1.41:8000 (JupyterHub)
├── asr.du5t.xyz → 172.30.1.41:18100 (ASR)
├── wiki.du5t.xyz → 10.89.0.45:3000 (Wiki.js)
├── reservation.du5t.xyz → 10.89.0.22:3000 (Reservation)
├── reminder.du5t.xyz → 10.89.0.23:8088 (Telegram Reminder Bot Admin)
├── sftp.du5t.xyz → 172.30.1.41:8080 (SFTPGo Web)
├── webdav.du5t.xyz → 172.30.1.41:10080 (SFTPGo WebDAV)
├── ollama.du5t.xyz → 172.30.1.41:11434 (Ollama)
│ ── Authentik Proxy (인증 후 포워딩) ──
├── prometheus.du5t.xyz → 10.89.0.20:9000 → 10.89.0.30:9090
├── file.du5t.xyz → 10.89.0.20:9000 → 10.89.0.5:8080
└── comfy.du5t.xyz → 10.89.0.20:9000 → 10.89.0.1:8188
```