Soluzione della community

Esegui Tailscale in modo nativo su ZimaOS con un modulo systemd-sysext della community

A May-July 2026 community project packaging Tailscale as a ZimaOS systemd-sysext instead of Docker. It enabled host-level TUN, subnet-router and exit-node use, then fixed a real reboot-order bug in v1.0.1; by July the author reported IPv6 tunneling working on the newer ZimaOS kernel.

L'app Docker standard di Tailscale è comoda, ma una VPN containerizzata non si comporta sempre come Tailscale installato direttamente su un host Linux. L'autore della fonte voleva un demone host di prima classe con un vero dispositivo TUN, così ZimaOS stesso potesse fungere da router subnet o nodo di uscita e montare risorse raggiungibili attraverso la tailnet.

Poiché ZimaOS dispone di una root in sola lettura in stile appliance e non di un convenzionale apt install tailscale percorso, l'autore ha impacchettato Tailscale come systemd-sysext estensione. Si tratta di un progetto della community, non di un pacchetto Tailscale supportato da IceWhale, quindi i relativi comandi e il ciclo di vita devono essere indicati come tali.

Perché eseguire Tailscale sull'host?

L'autore della fonte ha descritto il networking userspace di Docker come sufficiente per la connettività ordinaria, ma scomodo per il routing a livello di host. Un demone nativo può usare direttamente il dispositivo TUN del kernel e integrarsi con systemctl, l'inoltro IP, le route subnet e il comportamento del nodo di uscita.

Perché systemd-sysext è adatto a ZimaOS

systemd-sysext sovrappone file aggiuntivi in percorsi come /usr a runtime senza modificare l'immagine di base immutabile. L'autore ha rispecchiato la struttura Buildroot upstream di Tailscale e ha memorizzato lo stato di autenticazione persistente sotto /DATA/AppData/tailscale/.

Il progetto fornisce uno script di installazione sull'host

Il flusso di avvio rapido del repository della community clona il progetto, esegue il relativo programma di installazione con sudo, quindi autentica con tailscale up. Poiché si tratta di codice di terze parti eseguito come root, esamina il repository e la cronologia dei rilasci prima di eseguirlo.

Leggi il progetto sysext attuale e le relative note di installazione aggiornate invece di copiare una vecchia versione del forum.

Lo stato di autenticazione risiede al di fuori dell'estensione temporanea

Il progetto conserva lo stato del nodo in /DATA/AppData/tailscale/. Ciò consente all'identità Tailscale di sopravvivere alla ricostruzione o sostituzione di .raw file sysext.

Dopo il rilascio iniziale è stato trovato un vero bug di riavvio

Un utente ha segnalato che tailscaled non si avviava dopo il riavvio. L'autore del progetto ha riprodotto il problema e ha spiegato la race condition: multi-user.target ha risolto le dipendenze dei servizi prima di systemd-sysext.service aveva già unito l'estensione, quindi l'unità di servizio non esisteva quando systemd ha creato il target.

La v1.0.1 ha aggiunto un timer watchdog

L'autore ha risolto la race condition all'avvio con un piccolo timer e un servizio oneshot memorizzati nella root persistente sotto /etc/systemd/system/Viene eseguito poco dopo l'avvio e avvia tailscaled una volta presente l'overlay sysext.

L'autore della fonte ha riferito di aver verificato la correzione con un vero riavvio.

Le impostazioni di inoltro IP erano una questione di persistenza separata

La discussione chiedeva anche se le impostazioni sysctl del router subnet sopravvivessero al riavvio. L'autore ha spiegato che ZimaOS mantiene /etc tramite un overlay basato su uno storage persistente, quindi la configurazione in /etc/sysctl.d/ sopravvive e viene riapplicata.

Queste impostazioni di inoltro sono necessarie per usare un subnet router o un exit node, non per un normale client Tailscale.

La limitazione dell'IPv6 è cambiata con il kernel di ZimaOS

Il modulo originale di maggio 2026 documentava l'assenza delle opzioni del kernel per il policy routing IPv6 su ZimaOS 1.6.1/kernel 6.12.25, causando la disattivazione dell'IPv6 tramite tunnel da parte di Tailscale.

Entro il 30 luglio, l'autore ha aggiornato la discussione perché il kernel più recente di IceWhale forniva le funzionalità IPv6 necessarie. L'attuale repository del progetto verifica il funzionamento dell'IPv6 nella tailnet su ZimaOS 1.7.0/kernel 6.18.9.

Esegui nuovamente il programma di installazione dopo gli aggiornamenti di ZimaOS

Il progetto è progettato per ricostruire il sysext a partire dai binari statici ufficiali di Tailscale e conservare separatamente lo stato di autenticazione. Il repository attualmente consiglia di eseguire nuovamente il programma di installazione dopo un aggiornamento di ZimaOS.

Tratta un modulo community a livello root come software di sistema

Questo modulo viene eseguito direttamente sull'host NAS e il suo programma di installazione dispone di privilegi elevati. Esamina il codice sorgente, gli hash, il comportamento degli aggiornamenti e quello della disinstallazione prima di distribuirlo su un sistema che contiene dati importanti.

Il progetto è stato nuovamente verificato su ZimaOS 1.7.0

Il repository attuale segnala un test end-to-end completato con esito positivo su ZimaOS 1.7.0 con kernel 6.18.9, inclusi la persistenza dopo il riavvio e il corretto funzionamento dell'IPv6 nella tailnet. Si tratta di una prova più solida rispetto al post originale di maggio 2026, sviluppato con ZimaOS 1.6.1.

Docker e sysext nativo rispondono a esigenze diverse

Se ti serve solo rendere raggiungibili determinate applicazioni tramite Tailscale, il percorso Docker può essere più semplice e mantiene al minimo le modifiche all'host. Il percorso sysext è interessante quando lo stesso host ZimaOS deve montare risorse tailnet, pubblicizzare subnet LAN o fungere da exit node.

Non sostituire un'installazione Docker funzionante solo perché esiste l'approccio nativo. Scegli in base alla necessità effettiva del routing a livello host.

Disinstallazione ed eliminazione completa sono operazioni diverse

Il progetto community separa deliberatamente la rimozione del sysext dall'eliminazione dello stato di Tailscale. Il normale percorso di disinstallazione può mantenere i dati persistenti del nodo, mentre l'eliminazione completa rimuove anche la directory dello stato. Questa distinzione è importante se intendi reinstallare senza creare un'altra identità tailnet.

Il watchdog di avvio fa ancora parte del design

La documentazione attuale del progetto afferma che il watchdog è ancora necessario anche su ZimaOS 1.7.0, perché l'unità di servizio all'interno del sysext può ancora non intercettare l'assemblaggio iniziale del target systemd. Il kernel più recente ha risolto la disponibilità delle funzionalità IPv6, non la race condition nell'ordine di avvio del servizio sysext.

Domande frequenti su Tailscale nativo

È un pacchetto Tailscale ufficiale di IceWhale?

No. È un progetto community systemd-sysext.

Perché usarlo invece di Docker?

Il progetto è destinato all'integrazione a livello host di TUN, subnet router, exit node e systemd standard.

Il problema dell'avvio al riavvio è stato risolto?

L'autore del progetto ha riprodotto il problema e ha rilasciato una correzione basata su watchdog nella versione v1.0.1.

IPv6 presenta ancora la limitazione della versione 1.6.1?

Il progetto segnala che il kernel più recente 6.18.9 utilizzato da ZimaOS 1.7.0 fornisce il supporto necessario per il policy routing IPv6.