Zdalny dostęp#
vCLU działa lokalnie – nie wymaga konta w chmurze, nie posiada wbudowanego TLS i w pełni funkcjonuje bez dostępu do internetu. Aby uzyskać dostęp zdalny, użyj zewnętrznego tunelu szyfrowanego.
Nie wystawiaj vCLU bezpośrednio na internet bez szyfrowanego tunelu. Brak wbudowanego TLS oznacza, że cały ruch jest przesyłany jako plaintext.
Tailscale (zalecany)#
Tailscale to mesh VPN typu zero-config. Raspberry Pi staje się węzłem sieci Tailscale i jest dostępne pod prywatnym adresem IP z dowolnego miejsca.
Instalacja#
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale upPo autoryzacji w przeglądarce Raspberry Pi otrzyma adres z puli 100.x.y.z.
Dostęp do vCLU#
http://100.x.y.z:8080Tailscale wspiera MagicDNS – jeśli hostname Pi to vclu-pi, panel jest dostępny pod:
http://vclu-pi:8080Zalety#
- Konfiguracja w jednej komendzie
- Szyfrowanie WireGuard end-to-end
- Brak konieczności otwierania portów na routerze
- Działa za NAT i firewallem
- Darmowy plan do 100 urządzeń
Cloudflare Tunnel#
Cloudflare Tunnel pozwala wystawić panel webowy przez HTTPS bez otwierania portów. Ruch przechodzi przez sieć Cloudflare i trafia na localhost.
Instalacja#
# Zainstaluj cloudflared
curl -fsSL https://pkg.cloudflare.com/cloudflared-linux-arm64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
# Zaloguj się do Cloudflare
cloudflared tunnel login
# Utwórz tunel
cloudflared tunnel create vclu
cloudflared tunnel route dns vclu vclu.twoja-domena.pl
# Uruchom tunel
cloudflared tunnel run --url http://localhost:8080 vcluZalety#
- HTTPS z certyfikatem Cloudflare – bez konfiguracji
- Brak otwartych portów na routerze
- Ochrona DDoS w cenie
- Możliwość dodania dodatkowej autoryzacji (Cloudflare Access)
WireGuard / OpenVPN#
Tradycyjny VPN daje pełny dostęp do sieci domowej – nie tylko do vCLU, ale do wszystkich urządzeń w LAN.
WireGuard na Raspberry Pi#
sudo apt install wireguard
wg genkey | tee privatekey | wg pubkey > publickeySkonfiguruj /etc/wireguard/wg0.conf z adresami i kluczami, a następnie:
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0OpenVPN#
Alternatywnie skonfiguruj OpenVPN na routerze (jeśli wspiera) lub bezpośrednio na Raspberry Pi za pomocą narzędzia pivpn.
MCP – zdalny dostęp dla agentów AI#
Endpoint MCP działa na tym samym porcie co panel webowy (/mcp). Agent AI łączy się do niego przez HTTP z uwierzytelnieniem kluczem API.
Konfiguracja#
{
"mcpServers": {
"vclu": {
"url": "http://100.x.y.z:8080/mcp",
"headers": {
"X-API-Key": "vclu_mcp_abc123..."
}
}
}
}Za tunelem Tailscale użyj adresu Tailscale. Za Cloudflare Tunnel użyj domeny HTTPS.
Bezpieczeństwo MCP#
Każdy bot MCP ma:
- Własny klucz API – hash SHA-256 przechowywany w
.vclu.json - Profile dostępu – ograniczają, które urządzenia bot może odczytywać i sterować
- Logi audytu – każde wywołanie narzędzia jest logowane
Szczegóły konfiguracji botów w rozdziale Uwierzytelnianie.
Porównanie metod#
| Metoda | Szyfrowanie | Otwarte porty | HTTPS | Trudność |
|---|---|---|---|---|
| Tailscale | WireGuard | Nie | Nie (HTTP po tunelu) | Niska |
| Cloudflare Tunnel | TLS | Nie | Tak | Średnia |
| WireGuard | WireGuard | Tak (1 port UDP) | Nie | Średnia |
| OpenVPN | TLS/SSL | Tak (1 port) | Nie | Wysoka |
Usługi niedostępne zdalnie#
Niektóre usługi vCLU działają wyłącznie w sieci lokalnej (LAN) i nie są tunelowane:
| Usługa | Protokół | Dlaczego tylko LAN |
|---|---|---|
| Discovery Grenton | UDP broadcast | Wymaga broadcastu w segmencie L2 |
| TFTP (konfiguracja OM) | UDP port 69 | Protokół bez szyfrowania, wymaga LAN |
| mDNS (HomeKit) | Multicast | Apple Home wymaga urządzeń w tej samej sieci |
| MQTT Broker | TCP port 1883 | Klienci MQTT łączą się lokalnie |
Panel webowy, REST API i MCP – te usługi działają przez tunel bez ograniczeń.
Dobre praktyki#
- Zawsze używaj szyfrowanego tunelu – nigdy nie wystawiaj portu 8080 bezpośrednio na internet
- Generuj osobne klucze API dla każdej integracji zewnętrznej
- Używaj profili dostępu, aby ograniczyć uprawnienia botów AI
- Regularnie sprawdzaj logi audytu w panelu webowym
- Rozważ Cloudflare Access lub Tailscale ACL dla dodatkowej warstwy autoryzacji