Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Controllare un computer a distanza con Linux

Come controllare un computer da remoto con Linux: dall'accensione alla gestione dei programmi. Una mini-guida per l'installazione e l'uso dei software migliori e più semplici
Come controllare un computer da remoto con Linux: dall'accensione alla gestione dei programmi. Una mini-guida per l'installazione e l'uso dei software migliori e più semplici
Link copiato negli appunti

Controllare un computer a distanza è un'attività che può risultare utile in diverse occasioni: se si è dimenticato un file sul computer di casa quando si è in ufficio, quando si vogliono utilizzare programmi lì installati oppure quando si deve portare assistenza ad un amico in difficoltà. In questo articolo discuteremo alcuni comuni approcci, iniziando dagli strumenti di più basso livello (ottimi in ambito professionale, ma meno intuitivi per gli utenti più inesperti) e passando, poi, ad applicativi desktop più semplici da utilizzare.

Accendere il PC a distanza

Un primo problema da risolvere riguarda la necessità di dovere accendere un PC spento remotamente. Questa possibilità non è sempre disponibile, in quanto un'applicazione che deve accendere un PC dovrà, in qualche maniera, comunicare con la scheda di rete nonostante lo stand-by del computer. Alcune schede di rete utilizzano lo standard ethernet WOL (Wake-On-LAN), che consente la ricezione di particolari pacchetti (chiamati magic packet) che interpreta per inviare un segnale di accensione alla macchina. Tutto ciò a patto di conoscere l'indirizzo MAC della scheda di rete. Supponendo di utilizzare una scheda di rete compatibile con questo protocollo, vediamo un semplice metodo per “svegliare" il nostro PC.

Per prima cosa, è necessario installare i pacchetti etherwake e wakeonlan (disponibili nella maggior parte dei repository delle maggiori distribuzioni) sia sulla macchina remota che su quella fissa. Su Ubuntu, per esempio, è sufficiente utilizzare apt:

sudo apt-get install etherwake

In questo modo, verrà automaticamente installato anche wakeonlan. Una volta ultimata l'installazione, sarà sufficiente eseguire, sulla macchina remota, il seguente comando:

ethtool -s eth0 wol g

Da questo momento in poi, avremo abilitato la funzionalità WOL della scheda di rete. Tutte le volte che desidereremo accendere il PC remoto, sarà sufficiente utilizzare quest'altro comando:

etherwake AA:BB:CC:DD:EE:FF

Il parametro passato al comando etherwake rappresenta l'indirizzo MAC della macchina, che potrete ottenere utilizzando l'output del comando ifconfig.

È comunque necessario precisare che, spesso, la funzione Wake on lan va attivata dal BIOS (poiché, per ragioni di sicurezza, questa potrebbe essere inizialmente disabilitata). Inoltre, essendo WOL uno standard ethernet, è necessario che il PC remoto sia connesso tramite una scheda di rete ethernet. Per le connessioni wireless (nel qual caso si parla di WOW, ovvero Wake-On-WAN) è possibile utilizzare qualche semplice accorgimento al fine di indirizzare le richieste in ingresso al router, direttamente alla macchina da “svegliare".

In particolare, tutti i pacchetti che riceverà il router saranno destinati alla porta 9, ed inviati tramite protocollo UDP. Per chi volesse approfondire, segnaliamo una breve descrizione su come gestire tale problema, sebbene sarà sempre necessaria una minima conoscenza della configurazione del NAT sul proprio router.

Passiamo, adesso, ad analizzare alcuni metodi per ottenere il controllo del PC.

Accedere al PC via SSH

SSH è un protocollo di comunicazione cifrato e sicuro, pensato apposta per consentire il controllo remoto di due computer; basti pensare che l'acronimo SSH sta per Secure Shell. Esso consente di accedere ad una shell remota, consentendo, quindi, di inviare i comandi per la gestione del computer remoto. Riferendoci, ancora una volta, ad Ubuntu, l'installazione prevede la necessità di installare un server SSH sul computer remoto. Questa operazione può essere svolta, tramite apt, digitando da terminale:

sudo apt-get install openssh-server

Analogamente, sostituendo a 'server' la parola 'client', possiamo installare le funzionalità di un client SSH sul computer che dovrà accedere a quello remoto.

Il server SSH, di default, resta in ascolto sulla porta 22, ed utilizza il protocollo TCP. Di conseguenza, se utilizziamo un router NAT, dovremo aprire la porta 22 ed indirizzare le richieste in ingresso verso la macchina che farà da server, cioè il computer remoto che vorremo utilizzare.

Fatto ciò, abbiamo la possibilità di inviare comandi via SSH. Vediamo alcuni esempi di utilizzo.

ssh USER@HOST:DIRECTORY COMANDO

In tal modo, siamo in grado di eseguire il COMANDO sulla macchina il cui indirizzo IP è HOST, accedendovi come USER, e posizionandosi nella DIRECTORY passata come argomento. Tutto ciò, ovviamente, dopo avere inserito la password.

Il comando eseguito può essere di qualsiasi tipo. Tuttavia, nel caso di applicazioni grafiche, che richiedono la gestione dell'interfaccia, è necessario utilizzare lo switch -X, che abilita l'X forwarding (supponendo che sia attivabile). Spesso, tuttavia, è preferibile la combinazione degli switch -Y e -C, che consentono anche una compressione dei dati in arrivo. Perciò, per utilizzare comandi grafici remotamente, sarà sufficiente e preferibile utilizzare la seguente sintassi:

ssh -Y -C USER@HOST:DIRECTORY COMANDO

In generale, l'omissione del comando da eseguire consente di accedere direttamente al computer remoto, e di ottenere l'accesso diretto alla Shell.

Vale la pena di accennare al comando scp, pensato per consentire la copia di file remotamente, e via SSH, nonché la possibilità di utilizzare coppie di chiavi per automatizzare la fase di login, evitando l'immissione della password.

Sebbene non va assolutamente sottovalutata la potenzialità del protocollo SSH, che risulta probabilmente una delle soluzioni più sicure ed affidabili in questo genere di ambito, potrebbe risultare più comodo l'utilizzo di applicazioni interattive più user-friendly. Vediamone una: Vino.

Vino, servizio di desktop remoto per GNOME

Pensato per GNOME, Vino è un'applicazione distribuita che consente di visualizzare il desktop di un computer remoto, in modo sostanzialmente analogo al servizio offerto da programmi come TeamViewer per Windows. È possibile scaricare Vino dal sito ufficiale del progetto, ed il suo utilizzo è molto intuitivo. Una volta avviato, abbiamo la possibilità di aprire una finestra di configurazione, digitando, da terminale, il comando vino-preferences.

Figura 1: Finestra delle preferenze di Vino
(clic per ingrandire)

Figura 1: Finestra delle preferenze di Vino

Una volta aperta la finestra, se vogliamo visualizzare il nostro desktop remotamente, sarà sufficiente selezionare la voce Consentire agli altri utenti di visualizzare questo desktop. Con questo solo accorgimento, però, l'accesso da remoto è consentito soltanto previa conferma. Considerando l'esempio esposto all'inizio dell'articolo, se vogliamo accedere al computer remoto e nostra moglie non sa “dove mettere le mani”, non potremo confermare la richiesta di accesso e, di conseguenza, non otterremo il desktop del computer. Per farlo senza una conferma, infatti, è necessario deselezionare la voce Confermare ogni accesso alla macchina, che di default dovrebbe essere selezionata (per ovvie ragioni di sicurezza).

Alla fine, la nuova configurazione di Vino somiglierà a questa:

Figura 2: Configurazione ottimale di Vino per il controllo remoto
(clic per ingrandire)

Figura 2: Configurazione ottimale di Vino per il controllo remoto

A questo punto, non ci resta che capire come visualizzare il desktop remotamente. A tale scopo, installiamo il pacchetto vncviewer:

sudo apt-get install vncviewer

Questo consentirà, con un semplice comando, di visualizzare lo schermo del computer a distanza. Sarà infatti sufficiente utilizzare l'indirizzo IP del PC remoto, passandolo al seguente comando:

vncviewer INDIRIZZO_IP

E finalmente, otterremo il desktop remoto sul nostro PC:

Figura 3:  Desktop remoto con vncviewer e Vino
(clic per ingrandire)

Figura 3:  Desktop remoto con vncviewer e Vino

Va sottolineato che le ultime versioni di Vino supportano anche l'UPnP, una funzionalità che consente di evitare l'impostazione manuale del port forwarding dei router NAT compatibili. Tuttavia molti dei router oggi più diffusi non sono compatibili con UpnP. Di conseguenza, anche in questo caso, sarà necessario conoscere la porta utilizzata da Vino ed aprirla, seguendo le stesse linee guida accennate precedentemente per il server SSH. La porta di default utilizzata da Vino è la 5900.

Ti consigliamo anche