Eseguire nordvpn e ricevere un messaggio su un demone irraggiungibile è una lamentela ristretta che di solito arriva quando siete già in ritardo. Non dice nulla sul funzionamento del tunnel, perché la CLI è solo una facciata: parla con un processo in background tramite un socket Unix, e il messaggio significa che quella conversazione non è avvenuta. Partite dal comando e procedete verso l’esterno, fermandovi alla prima cosa che risulta falsa.

Iniziate da dove appare l’errore

Sono coinvolti due processi, ed è confonderli che rende la faccenda misteriosa. Il demone possiede il tunnel e ascolta su un socket sotto /run/nordvpn/. Il comando che avete digitato si collega a quel socket invece di toccare le interfacce da sé.

Quando il socket manca o rifiuta la connessione, la CLI non ha nessuno a cui chiedere, quindi segnala la variante «demone utente» o «demone di sistema» della stessa lamentela. Una di quelle varianti nomina il percorso direttamente, ed è la frase più utile di tutto lo scambio.

Controllate l’unità prima di ogni altra cosa

Chiedete al gestore dei servizi se il demone è in esecuzione, poi avviatelo e abilitatelo in un solo passo se non lo è:

systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version

Se l’unità esiste ma è inattiva, enable --now la avvia e prepara anche il prossimo avvio. Se l’unità non esiste, il pacchetto non è quello che supponete, e il nome installato conta più del nome nelle vostre note. Sembra una distinzione pedante finché non passate venti minuti ad abilitare un servizio che non è mai stato installato con quell’etichetta. Leggete ciò che c’è, poi agite di conseguenza.

Elencare i file di unità risolve la questione con un solo comando, e vale la pena farlo prima di concludere qualsiasi cosa sull’installazione:

systemctl list-unit-files 'nordvpn*'
service --status-all

Le versioni hanno distribuito il servizio con più di un nome di unità, quindi una build che usa nordvpn invece di nordvpnd produrrà una copia perfetta di questo errore mentre un servizio sano gira proprio accanto.

Il socket e il suo gruppo decidono l’accesso

Anche con il demone in esecuzione, la connessione può essere rifiutata per i permessi. L’installer crea un gruppo nordvpn, e il socket è di proprietà di conseguenza, quindi un utente fuori da quel gruppo viene respinto mentre il servizio è perfettamente sano.

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

L’appartenenza al gruppo viene letta all’avvio di una sessione, ed è per questo che la modifica sembra non funzionare nel terminale in cui l’avete fatta. Serve una nuova shell di login o newgrp prima che la sessione in corso veda il nuovo gruppo. Provate in una shell nuova, non in quella che ha appena eseguito il comando. Altrimenti concluderete che la correzione è fallita quando semplicemente non è ancora stata applicata.

La proprietà del socket stesso è la seconda metà di quel controllo. Confrontate il gruppo sul socket con i gruppi riportati nella shell che esegue la CLI, e la questione dei permessi è risolta in un passo invece che reinstallando:

ls -l /run/nordvpn
id

Un processo vivo non è prova del socket giusto. Un demone avviato da un altro gestore, o un vecchio pacchetto che ha legato un socket con un nome diverso, riportano allo stesso modo. L’elenco della directory distingue quei casi in una riga, ed è per questo che batte la reinstallazione.

Il processo per utente sui pacchetti più vecchi

Alcuni pacchetti eseguono un secondo processo nel contesto dell’utente connesso, che l’integrazione desktop si aspetta di trovare. Se uno script di init di sistema lo avvia senza passare a quell’account, la CLI cerca un demone che nessuna sessione possiede.

Su un init senza systemd la disposizione documentata divide i ruoli: il servizio di sistema gira sotto un nome e il processo lato utente sotto l’account di destinazione con chpst -u <user>. Verificate quale disposizione usa davvero la vostra installazione prima di aggiungere uno script di avvio che presuppone l’altra.

Come sapere di aver finito

L’aggiornamento è il grilletto abituale, perché il nuovo binario si aspetta uno stato del servizio che il vecchio non ha mai lasciato. Fermare, riabilitare e avviare in quest’ordine lo ripulisce:

sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version

Quest’ultimo comando è il test di accettazione. Una versione stampata significa che il socket risponde, il che sposta ogni guasto residuo nel territorio di login, piano o connettività e lo toglie da questo articolo. Se risponde, smettete di leggere qui e andate invece a guardare l’account.

Se il socket manca ancora, leggete il journal dell’unità per vedere perché è terminata, poi verificate che /run/nordvpn esista e che l’account del servizio possa scrivervi. Un processo che sale e muore subito registra il suo motivo in quel journal, e una riga si legge più in fretta di quanto si esegua una reinstallazione.

Articoli correlati