Allestire il server
Al server serve una macchina con indirizzo pubblico e un nome di dominio che punti a essa. Il resto lo fa lo script di installazione: registra l'unità systemd, configura nginx e ottiene un certificato.
sudo DOMAIN=vnet.example.com sh install.sh
# poi aprite https://vnet.example.com/admin
# entrate come admin / admin e cambiate la password
Le richieste sono modeste: un core e 512 MB di memoria reggono decine di macchine collegate, perché il server inoltra le trame invece di elaborarle.
Installare il client
Al client servono due cose: l'indirizzo del vostro server e un codice d'invito da esso. Tutto il resto — scheda, servizio, indirizzo — se lo predispone da sé.
sudo dpkg -i elx-vnetwork_*.deb
sudo elxvnet join -server https://vnet.example.com -invite ELX-XXXX-XXXX-XXXX
sudo systemctl enable --now elxvnet
elxvnet status
cd "C:\Program Files\ELX-VNetwork"
elxvnet join -server https://vnet.example.com -invite ELX-XXXX-XXXX-XXXX
elxvnet -service restart
elxvnet status stampa lo stato del collegamento, l'indirizzo assegnato e tutti i vicini del segmento. La maggior parte delle domande trova risposta in quella sola riga, prima di aprire qualsiasi altra cosa.Segmenti e inviti
Un segmento è una rete indipendente. Le macchine che vi stanno dentro si vedono; quelle di segmenti diversi no, pur condividendo un server. Un sito, un cliente o un banco di prova ne ricevono ciascuno uno.
- Create un segmento nell'interfaccia e dategli un nome che riconoscerete ancora fra un anno.
- Generate un codice d'invito — a uso singolo o aperto per un lotto di macchine.
- Installate il client con quel codice.
- Approvate la macchina nell'interfaccia: fino ad allora attende invece di essere collegata.
Leggere la tabella dei membri
| Colonna | Cosa dice |
|---|---|
| Indirizzo | L'indirizzo permanente nel segmento, immutato da un collegamento all'altro |
| Versione | La versione del client — una vecchia qui è la ragione del pulsante di aggiornamento |
| In linea | Da quanto dura questa sessione; un numero che riparte di continuo indica una linea instabile |
| Velocità | Il flusso attuale nei due sensi |
| Traffico | I totali della sessione |
| Sistema | Sistema operativo, memoria occupata e carico del processore, ogni mezzo minuto |
La colonna del sistema viene da ciò che il kernel sa già; sulla macchina remota non si installa nulla in più per ottenerla.
Il terminale del browser
Qualsiasi macchina Linux del segmento si apre come terminale dall'interfaccia. È una normale sessione SSH: è la macchina remota ad autenticarvi, con i propri account e le proprie regole sulle password. L'interfaccia non conserva quelle credenziali e non può aggirare la verifica.
Aggiornare i client
- Windows. Il client si aggiorna da solo, senza chiedere nulla.
- Linux. Una macchina rimasta a una versione vecchia si aggiorna dalla tabella dei membri: l'interfaccia apre una sessione SSH ed esegue l'aggiornamento del pacchetto al posto vostro.
- A mano. Scaricate il nuovo pacchetto e installatelo come prima; invito e indirizzo sopravvivono all'aggiornamento.
Avvisi
Il server può segnalare che una macchina è sparita o è tornata, che qualcuno attende approvazione e che qualcuno ha sbagliato la password. La consegna avviene via Telegram, per posta elettronica o in entrambi i modi, con gli orari nel vostro fuso.
Quando una macchina non si collega
| Sintomo | Dove guardare |
|---|---|
elxvnet status non mostra alcun collegamento | L'indirizzo del server, il certificato, oppure un proxy in uscita che intercetta il TLS |
| Collegato, ma nessun indirizzo assegnato | La macchina attende ancora l'approvazione nell'interfaccia |
| Indirizzo assegnato, i vicini non rispondono | Il firewall locale blocca la scheda virtuale — dichiaratela come rete privata |
| Windows vede la scheda ma non le risorse di rete | Per il profilo di quella scheda sono disattivate la scoperta della rete e la condivisione dei file |
| Il collegamento cade ogni pochi minuti | Una linea mobile con timeout d'inattività severo, oppure due client installati con la stessa identità |
| Funziona tutto tranne un protocollo | Quel protocollo è legato a un'altra scheda — verificate ordine e metriche delle interfacce |