93 lines
2.7 KiB
Markdown
93 lines
2.7 KiB
Markdown
# Kraken — Внешний доступ
|
|
|
|
> Обновлено: 2026-05-13
|
|
|
|
## SSH с любой машины
|
|
|
|
`~/.ssh/config` на Eagle:
|
|
```
|
|
Host kraken
|
|
HostName kraken
|
|
User kraken
|
|
Port 22
|
|
IdentityFile ~/.ssh/id_rsa
|
|
StrictHostKeyChecking no
|
|
ProxyCommand bash -c 'if ifconfig | grep -q 10.99.0.2; then nc 10.99.1.2 22; else nc kraken 22; fi'
|
|
```
|
|
|
|
**SSH напрямую по LAN:**
|
|
```bash
|
|
ssh kraken@kraken
|
|
```
|
|
|
|
**SSH через VPS** (reverse tunnel, порт 2223):
|
|
```bash
|
|
ssh -J root@91.207.28.205 kraken@127.0.0.1 -p 2223
|
|
```
|
|
|
|
`kraken.qentra.top` — Cloudflare Tunnel, только HTTP (Hermes API), SSH не работает.
|
|
|
|
`kraken.qentra.top` — Cloudflare Tunnel, только HTTP (Hermes API), SSH не работает.
|
|
|
|
---
|
|
|
|
## Как устроен туннель
|
|
|
|
Кракен держит постоянный **reverse SSH tunnel** на VPS через autossh:
|
|
|
|
```
|
|
Кракен (RPi 5, 192.168.1.14)
|
|
└── autossh → ssh -R 2223:localhost:22 root@91.207.28.205
|
|
↓
|
|
VPS (91.207.28.205)
|
|
слушает :2223 → перенаправляет на Кракен:22
|
|
```
|
|
|
|
Аналогично Тайге (у неё порт 2222).
|
|
|
|
### Управление туннелем на Кракене
|
|
|
|
```bash
|
|
sudo systemctl status kraken-tunnel
|
|
sudo systemctl restart kraken-tunnel
|
|
sudo journalctl -u kraken-tunnel -n 20
|
|
```
|
|
|
|
Файл сервиса: `/etc/systemd/system/kraken-tunnel.service`
|
|
SSH-ключ Кракена: `/home/kraken/.ssh/id_ed25519`
|
|
Публичный ключ добавлен в `/root/.ssh/authorized_keys` на VPS.
|
|
|
|
### Проверить с VPS
|
|
|
|
```bash
|
|
ssh root@91.207.28.205 "ss -tlnp | grep 2223"
|
|
```
|
|
|
|
---
|
|
|
|
## Cloudflared (для будущих сервисов)
|
|
|
|
Контейнер `cloudflared` запущен на Кракене (`unless-stopped`), туннель `kraken` активен в CF Zero Trust.
|
|
Hostname: `kraken.qentra.top → HTTP → localhost:8642` (Hermes API).
|
|
|
|
---
|
|
|
|
## Portainer API (локально)
|
|
|
|
```bash
|
|
BASE=http://localhost:9000
|
|
KEY="ptr_AJY+Ba9A7f6pcAHZfDD5koU4stkKgJCdbTEXLDLxn0g="
|
|
EP=3 # endpoint ID на Кракене = 3, не 1!
|
|
|
|
curl -s -H "X-API-Key: $KEY" "$BASE/api/endpoints/$EP/docker/containers/json?all=true" \
|
|
| jq '[.[] | {name: .Names[0], status: .Status}]'
|
|
```
|
|
|
|
---
|
|
|
|
## Связанные заметки
|
|
|
|
- [[kraken-portainer-access]] — полная инструкция по деплою cloudflared через Portainer
|
|
- [[openmediavault-rpi5]] — настройка Кракена (Docker, Hermes, структура папок)
|
|
- [[truenas-remote-access-reverse-proxy]] — аналогичный туннель для Тайги
|