# [HOWTO] Utilizzare X da remoto

## mouser

Questo howto e' nato da questo thread. Ringrazio anticipatamente chiunque abbia stimolato l'idea per questo howto

Problema

Abbiamo lanciato X da un computer e vogliamo, con un'altro computer in rete, utilizzare un qualsiasi window manager (per questo howto parlero' di fluxbox, ma con qualsiasi altro e' asssolutamente lo stesso procedimento) da remoto... insomma, utilizziamo X su un pc, che altro non e' che una sessione di X remota  :Cool: 

Possibili Soluzioni

Molti di voi si staranno dicendo: "Bhe', per questo ci sono software appositi, come VNC o RemoteDesktop".

Questo e' vero, ma il nostro scopo e' quello di avere il computerino con il minimo installato, evitando programmi su programmi che sostanzialmente fanno le stesse cose.

Pochi sanno di avere installato un programma che si occupa perfettamente di questa cosa: X

Eh, gia', X stesso permette di gestire le connessioni remote

Logica di X

Molti di noi conoscono come funziona X in questo modo: "startx mi fa partire l'interfaccia grafica: dopodiche' un windowmanager mi gestisce finestre, stili, ecc", altri hanno sentito parlare di un fantomatico X server.

In effetti questa e' solo la punta dell'iceberg poiche X ha un funzionamento tutto particolare.

Insomma quando accendiamo il nostro gechino e diamo

```

# startx

```

Cosa succede?

Guardando i vari eseguibili di x potete notarne un paio chiamati rispettivamente X e Xsession.

Il comando startx altro non fa che lanciare X, che e' il famigerato server X, andando a prendere le impostazioni specificate in /etc/X11/xorg.conf. Una volta partito il server, viene lanciato Xsession che apre un programma client interfacciato a questo server. Questo client si occupa di eseguire il window manager. Probabilmente, cercando maggiori info su internet, si scoprono molti piu' particolari, ma per questo howto ci basta sapere questo. Ricapitolando:

 *Quote:*   

> 
> 
> D: "Quando lancio startx, cosa succede?"
> 
> R: "Il pc avvia un server X, dopodiche' viene avviato un client interfacciato al server, che esegue il window manager preferito"
> ...

 

Conoscere il client, conoscere il server

Ma allora, come conosco il client ed il server?

Bhe', per sapere il nome completo bisogna conoscere una variabile di sistema. Facciamo una prova subito.

Accendiamo il pc, facciamo login con l'utente Utonto e lanciamo X

```

login: Utonto

password:

$ startx

```

Quando e' partito il window manager, apriamo un terminale e diamo

```

$ echo $DISPLAY

:0

$

```

Cosa abbiamo fatto? Abbiamo chiesto al client X di dirci qual'e' il display sul quale sta girando e questo ci ha risposto: :0

Questo numero altro non e' che il client X; facciamo una prova:

Premiamo Ctrl+Alt+F2 per aprire un'altra console e facciamo login con un'altro utente

```

login: Tizio

password:

$

```

A questo punto, possiamo lanciare un xterm sul client di Utonto, semplicemente dicendo a X su quale client aprire il terminale

```

$ DISPLAY=:0 xterm &

```

Torniamo in interfaccia grafica di Utonto (Ctrl+Alt+F7) e vediamo cosa e' successo? Si e' aperto un xterm con la login di Tizio nell'interfaccia grafica di Utonto.

Quello che abbiamo fatto finora e' servito per capire la differenza tra Xclient e Xserver: il primo gestisce il windowmanager, il secondo gestisce i client

Faccio notare che e' possibile utilizzare un'altra notazione per lanciare xterm sul client di Utonto

```

$ DISPLAY=localhost:0 xterm &

```

Questo dice al pc

 *Quote:*   

> 
> 
> Lancia xterm sul server X del computer localhost e visualizzalo sul client :0
> 
> 

 

Visto che stiamo facendo tutto dallo stesso pc, e' inutile specificare il nome macchina. Di default X prende come nome del server localhost, tuttavia questa notazione ci servira' in seguito

Ok, lanciamo un client remoto

Ovviamente il server X, in quanto servizio server, e' accessibile dall'esterno del pc.

Ora, quello che vogliamo fare e' aprire un client X sul pc (diciamo) del lavoro, ma utilizzando il server X che c'e' sul nostro computerino di casa.

Dobbiamo, ovviamente, sapere l'IP con il quale raggiungiamo il nostro pc. Supponiamo sia 213.140.12.6 Ora, a casa abbiamo ancora avviato il client :0 e quindi, come facciamo a dire ad X di utilizzare un'altro client? Scegliamo, per esempio, il numero successivo! Il nostro client remoto si chiamera' :1 e su questo vogliamo far partire una sessione di fluxbox. il comando di fluxbox per avviare una sessione e' startfluxbox

Insomma, facciamo partire un client locale, che utilizza come server quello che abbiamo sul pc di casa!

```

login: Tizio_Lavoro

password:

$ DISPLAY=213.140.12.6:1 startfluxbox &

```

Cosa fa questo comando?????

In pratica dice al pc sul quale stiamo lavorando

 *Quote:*   

> 
> 
> Avvia una sessione di fluxbox sul client X :1, utilizza il server X del pc 213.140.12.6
> 
> 

 

Fatto!!! Ci partira' l'interfaccia di fluxbox sul nostro pc, ma staremo utilizzando il server del nostro pc di casa. Come esserne sicuri??? Sicuramente chi ha due schermi differenti l'avra' notato, poiche' il client X locale prende le impostazioni dal server che e' quello a casa. Se il server e' configurato per andare a 1024x768 con una risoluzione di 24bit, anche se al lavoro Tizio ha uno schermo da 28" che supporta fino a 32bit, gli partira' un client X con una risoluzione di 1024x768 e una profondita' di colore di 24 bit.

Troubleshooting

Mi e' capitato spesso di avere problemi con certi messaggi del tipo "Connection refused by server...".

Nel caso non si riesca e' meglio controllare alcune cose (che, erroneamente, nell'howto ho dato per scontato).

Occore, prima di tutto, assicurarsi che il server X accetti connessioni via TCP. Per fare questo e' sufficente:

```

$ ps aux | grep X

root      5744  3.1  3.0  17340 15712 ?        S    18:16   0:56 X :0 -br -deferglyphs 16

mouser    6035  0.0  0.0   1512   456 pts/1    R+   18:46   0:00 grep X

$

```

Se il risultato e' come quello riportato, allora tutto OK.

Con le impostazioni di default, pero', X viene lanciato con l'opzione --no-listen tcp.

Per rimuovere questa opzione basta editare lo script /usr/bin/startx e, nella variabile contenete i parametri (dovrebberi essere "--no-listen tcp -br"), basta rimuovere la prima opzione.

Fatto questo, qualsiasi client puo' lanciare applicazioni da remoto sul nostro pc... MOLTO MALE!!

Prima di tutto, lanciare un bel

```

$ xhost -

```

Togliendo cosi' la possibilita' a chiunque di collegarsi al nostro server X.

A questo punto dobbiamo abilitare l'unico IP (o la lista di IP) che, invece, potranno utilizzare X da remoto.

Per fare questo basta dare xhost +<indirizzo_ip>, quindi, supponendo che il client che utilizzera' X da remoto sia 192.168.0.166, Dovremmo digitare

```

$ xhost +192.168.0.166

```

Ed il gioco e' fatto!

Link utili

Di seguito ecco una serie di link che possono ritornare utili per sviluppare questo argomento:

- http://www.gentoo.org/doc/it/ltsp.xml = Doc ufficiale gentoo (si trova proprio di tutto   :Very Happy:  ). Come organizzare una rete con ltsp per avere un server X centrale e tanti terminali remoti

Note sulla sicurezza

Tengo a precisare, visto i riscontri a questo howto, che questo tipo di connessione server/client NON e criptata, e' in chiaro (come quella di telnet, per intenderci). Insomma, un avvertimento: se avete intenzione di utilizzare questo howto per emergiare dal lavoro su pc di casa: non conviene!!!!! Impostatevi un bel demone sshd e fate tutto con sicurezza  :Very Happy: 

Buona X remotizzazione a tutti

-----------------------------------------------------

Changelog

* 27-01-2005: Aggiunte note sulla sicurezza

* 01-02-2005: Aggiunta sezione "Link utili"

* 03-10-2005: Aggiunta sezione "Troubleshooting"

* 30-12-2009: Modificato il link utile per puntare alla documentazione ufficiale (by Kernel78)

-----------------------------------------------------

ps: questo e' il mio primo howto su questo forum! qualsiasi tipo di riscontro (sia esso una critica, un appunto, una miglioria o quant'altro) e' ben accetto.

Ciriciao

mouser  :Wink: Last edited by mouser on Mon Oct 03, 2005 6:51 pm; edited 3 times in total

----------

## lavish

Grande mouser! Ottimo HOW-TO

 :Very Happy: 

my compliments  :Wink: 

<EDIT> tr M m

----------

## fedeliallalinea

Sara' aggiunto hai post utilissimi

----------

## mouser

 *lavish wrote:*   

> 
> 
> Grande Mouser! Ottimo HOW-TO
> 
> 

 

Ti ringrazio tantissimo, pero'.... dai.... facciamo mouser e non Mouser, ok  :Laughing: 

 *fedeliallalinea wrote:*   

> Sara' aggiunto hai post utilissimi

 

WWWOOOWWW!!! Sono cosi' felice che mi viene da piangere  :Crying or Very sad:  (<- felice)

----------

## lavish

 *mouser wrote:*   

>  *lavish wrote:*   
> 
> Grande Mouser! Ottimo HOW-TO
> 
>  
> ...

 

Era per dare piu' Rilievo   :Laughing: 

Cmq edito  :Wink: 

----------

## kaosone

ma non basta un ssh -X ip?

----------

## prada

Bello davvero, ovviamente ho provato subito  :Wink: 

e puntualmente non va. Allora le mie azioni sono le seguenti:

sul portatile di un amico ho fatto xhost +

dal mio in console di root, utente, con e senza il mio server x avviato ho scritto:

DISPLAY=IP:1 startfluxbox

ma mi da un segmentation fault e could not connect to server x.   :Crying or Very sad: 

dove sbaglio?

----------

## lavish

 *kaosone wrote:*   

> ma non basta un ssh -X ip?

 

Prova a dare uno startx da ssh con la flag -X e poi ci dici  :Wink: 

eheh  :Razz: 

----------

## mouser

@prada:

come mai utilizzi xhost e non X o startx?

prova a fare (sul pc che intendi utilizzare come server)

```

# ps -aux | grep X

```

E vedi se effettivamente c'e' una voce chiamata X con un po' di parametri... quello e' il server.

oppure

I due portatili si pingano tranquillamente??? Hai provato a fare un netstat per vedere che non ci sia un qualche firewall che blocchi tutto in ingresso? In ogni caso, utilizza sempre un utente non-root per collegarti.... oltre ad essere piu' sicuro (nb la connessione ad un X server remoto NON e' criptata) dovrebbe anche essere meno problematico (non so se X supporta client remoti come root)

Ciriciao

mouser  :Wink: 

----------

## realthing

Qualcuno sa spiegare bene le differenze tra:

-Usare X in remoto (come spiega l'how-to di mouser)

-Usare SSH

-Usare VNC

Quali sono i criteri con cui si sceglie cosa usare?

Quali sono le modalità di funzionamento dei tre modi?

Mouser ha spiegato bene il primo caso, ma gli altri?

Grazie

----------

## mouser

 *realthing wrote:*   

> Qualcuno sa spiegare bene le differenze tra:
> 
> -Usare X in remoto (come spiega l'how-to di mouser)
> 
> -Usare SSH
> ...

 

Ciao realthing.

Bhe', fondalmentalmente SSH lo utilizzi per fare login da terminale remoto su un pc. E' criptato con un'ottimo algoritmo!

VNC e' comodo perche', se hai una rete mista, puoi mettere i vncserver su tutte le macchine, siano esse Gentoo, Mac o Winzozz. Poi con un client VNC, da una qualsiasi di queste piattaforme, puoi collegarti ad un qualsiasi altro pc (vnc di base sotto win, ti da' il controllo remoto del pc).

X da remoto puo' servire quando (e puo' capitare) hai un server Xeon biprocessore (o anche solo un AMD64 o comunque generalizzando un pc molto veloce) sul quale fai girare X (che notoriamente non e' che sia leggerissimo). A questo ti colleghi con un'altro pc linux per avere l'interfaccia grafica sul tuo P3 400MHz ma sfruttando il server X che gira sul PC veloce. Questo ti permette di risparmiare ram per altri applicativi (anche se un po' di rete te la fumi nel collegamento)

Spero di essere stato chiaro

Ciriciao

mouser  :Wink: 

----------

## Cerberos86

Ottimo How-To, complimentoni!

Purtroppo al momento noon posso fare prove, ma all'incirca che ampiezza di banda serve per un collegamento simile? all'interno della lan tutto ok, ma volendo provare dall'esterno? Lasciamo stare la sicurezza,immagino che nn sia il punto di forza.... una flat 640/256 potrebbe bastare??

Con questo sistema è possibile solo "sfruttare il server X" o anche controllare effettivamente il pc su cui è avviato il server?

thanks

----------

## mouser

Purtroppo Cerberos86 non posso risponderti.

Non ho ancora internet (anche se sabato vado a fare fastweb YAHOOOO avro' finalmente internet a casuccia   :Very Happy:   :Very Happy:   :Very Happy:  ... ehm scusate  :Laughing:  ) e poi lo provero' dall'esterno.

Anzi, pongo una richiesta. Se qualcuno lo prova, e posta un responso (velocita/banda utilizzata) aggiungo qualche test nell'howto, per completezza.

Thaxxx

mouser  :Wink: 

----------

## Cerberos86

ok, ma dal punto di vista del "controllo remoto"? se puede?

----------

## realthing

Grazie della spiegazione Mouser... 

A grandi linee sapevo come stavano le cose, ero in cerca di qualche dettaglio in più. SSH usato come shell lo conosco e lo uso, ma credo ci sia anche la possibiità di usarlo per una connessione "grafica". Riguardo a VNC ok per il multipiattaforma, non ci avevo pensato.

Se fai fastweb, mi spiace dissilluderti, non potrai collegarti dall'esterno alla tua macchina. Sarai infatti dietro a un NAT e uscirai su internet con un IP pubblico condiviso da più utenti...

----------

## mouser

@realthing:

Per l'ip dinamico c'e' un tip per ovviare a questo problema.... appena lo provero' postero' un howto su come farlo.  :Cool: 

Si, in effetti basta ssh... pero' ogni volta che c'e' una qualche comunicazione tra il tuo client ed il server di X, ssh te lo deve criptare e il demone sul server decriptare.... rallenta non poco  :Laughing: 

@Cerberos86

Per il controllo remoto, se hai gia' avviato il client sul pc che fa da server, allora lo devi fare con VNC o RemoteDesktop. Ovviamente puoi avviare il server senza lanciare client (lanciando direttamente X) ma tiventa un po' inutile monitorare il tutto.... basta ssh.

Un'ultima cosa.... please ...... mouser, non Mouser  :Rolling Eyes: 

Ciriciao

mouser  :Wink: 

----------

## dboogieman

>>>Ottimo appunto di mouser questo da basso:

Si, in effetti basta ssh... pero' ogni volta che c'e' una qualche comunicazione tra il tuo client ed il server di X, ssh te lo deve criptare e il demone sul server decriptare.... rallenta non poco

Ciao a tutti ho esordito con un ottimo appunto, perche' questa modalita' l'ho utilizzata piu' volte pur avendo a disposizione solo la banada dei due canali B di una borchia NT1 Plus..un bagno di sangue per "smanettare" (con rdesktop) le gui grafiche M$...tempi di attesa veramente lunghi con l'imprevisto che sbagli un click e sei fregato...

Ciao 

dboogieman

----------

## mouser

 *dboogieman wrote:*   

> 
> 
> Ciao a tutti ho esordito con un ottimo appunto, perche' questa modalita' l'ho utilizzata piu' volte pur avendo a disposizione solo la banada dei due canali B di una borchia NT1 Plus..un bagno di sangue per "smanettare" (con rdesktop) le gui grafiche M$...tempi di attesa veramente lunghi con l'imprevisto che sbagli un click e sei fregato...
> 
> Ciao 
> ...

 

Grazie mille per il riscontro dboogieman. Io parlavo in linea teorica.... tu hai potuto dare un riscontro secondo la tua esperienza personale.

Ci tengo a precisare (e mi sa che adesso lo aggiungo sull'howto) che un utilizzo consigliato di questo howto e' da farsi in casa, o in una piccola rete. Nel traffico internet, questa connessione NON e' criptata e quindi fondalmentalmente insicura!!!

mouser  :Wink: 

edit: Aggiornato howto con note sulla sicurezza  :Wink: 

----------

## realthing

 *mouser wrote:*   

> @realthing:
> 
> Per l'ip dinamico c'e' un tip per ovviare a questo problema.... appena lo provero' postero' un howto su come farlo. 

 

Il problema non è l'IP dinamico. Anzi a dire il vero, anche se l'IP viene assegnato da un server DHCP, si può dire che sia statico. Il mio pc prende sempre lo stesso IP dal server DHCP, si vede che ha un "lease" infinito. Il fatto è che Fastweb è come una grande Lan, che viene "nattata" su internet attraverso alcuni gateway. L'IP del mio pc non è pubblico, è un IP interno alla rete fastweb. Non è raggiungibile dall'esterno della rete fastweb, cioè dal mondo  :Smile: 

----------

## Cerberos86

ehm...piccola domandina....  :Embarassed: 

Nel caso io abbia avviato il server (con startx) da utente, ed ora volessi aprire un'altra connessione sullo STESSO pc sullo STESSO server come faccio? Pensavo bastasse un 

```

login:root

password:**********

#: DISPLAY=:1 startfluxbox & 
```

Ma mi dà sempre un errore del tipo:

```

Error: Can not connect to X Server.

Make sure you started X befor start fluxbox.

```

Se provo a dare il comando X infatti dice che è già avviato (e su F7 come utonto uso X!).

Grazie 1000

----------

## gutter

Se non ho capito male quello che vuoi fare:

```
startx -- :1
```

----------

## Cerberos86

 *gutter wrote:*   

> Se non ho capito male quello che vuoi fare:
> 
> ```
> startx -- :1
> ```
> ...

 

D'oh....! era troppo semplice per pensarci! GRAZIE MILLE GUTTER!

----------

## mouser

 *realthing wrote:*   

> 
> 
> Il problema non è l'IP dinamico. Anzi a dire il vero, anche se l'IP viene assegnato da un server DHCP, si può dire che sia statico. Il mio pc prende sempre lo stesso IP dal server DHCP, si vede che ha un "lease" infinito. Il fatto è che Fastweb è come una grande Lan, che viene "nattata" su internet attraverso alcuni gateway. L'IP del mio pc non è pubblico, è un IP interno alla rete fastweb. Non è raggiungibile dall'esterno della rete fastweb, cioè dal mondo 

 

Vedi realthing, alla dovrebbe bastare fare uno scrippettino schedulato con cron, che utilizza wget + grep + cut + send.

Con wget ottieni l'output di www.mioip.it (che ti restituisce l'ip con il quale il tuo pc esce nel mondo), con grep e cut estrapoli l'indirizzo ip da quella pagina e lo salvi su un file. In quel file tieni sempre l'ip aggiornato. Fai un confronto per vedere se e' cambiato e, nel caso lo fosse, con send ti invii una mail con il nuovo indirizzo.

Poi, ti colleghi tramite quello. Almeno credo basti questo.....

Poi, se uno vuole fare il figo, puo' fare un'altro script che controlla la mail e va ad aggiornare /etc/hosts

Ciriciao

mouser  :Wink: 

ps: Comunque, nel caso, continuiamo a parlarne in pm, che qui siamo abbastanza ot  :Laughing: 

----------

## xchris

no mouser  :Smile: 

Il punto e' che nella rete fastweb e' come se fossimo del tutto firewallati.

Il mio IP ad es e' 1.17.x.y ed e' privato.

Da un qualunque pc non potrei mai essere raggiunto (a meno che non sia un pc in rete fastweb o con Ip pubblico a pagamente attivato)

Esistono poi diversi metodi per rendersi visibili "in qualche modo".

Il piu' "completo" e' sicuramente quello di recuperarsi un IPv6 da uno dei tunnel broker che ci sono in fastweb (un esempio e' Sideralis di Federico)

Altri sistemi passano per tunnel criptati,traffico misto IPv4+IPv6 e chi + ne ha + ne metta.

Quindi in modo "plug 'n play" non e' possibile!

Io cmq considererei X solo su ssh per 2 motivi:

-criptazione

-compressione

Parlando del tuo Howto..

Ti faccio i complimenti perche' si inizia a parlarne intento.

Manca pero' la parte relativa a XDCMP che a mio avviso e' quella + carina.

E' molto bello poter lanciare da OSX (da cui scrivo ora) il comando:

X -broadcast

e avere la maschera di login di KDM del mio MasterPC gentoo  :Smile: 

Ciao  :Smile: 

----------

## mouser

 *xchris wrote:*   

> 
> 
> [cut]
> 
> Parlando del tuo Howto..
> ...

 

Prima di tutto grazie mille del chiarimento con fw (devo sbattermi un po' e trovare un modo per vedermi da fuori  :Cool:  ).

Grazie anche per i commenti all'howto. Per il XDCMP.... il fatto e' che non l'ho mai utilizzato, e quindi mi sa che mi sbattero' un pochettino, imparo, provo, testo e integro tutti in questo howto. Faro' il prima possibile (solo che al momento sono un po' incasinato con il lavoro).

Ciriciao

mouser  :Wink: 

----------

## oRDeX

L'ho appena letto..scusate il ritardo   :Smile: 

Davvero un ottimo how-to!

----------

## lan

comodo per lanciare l'ambiente grafico di Freebsd  nel mio monitor senza staccare i cavi o scendere fin giu in cantina dove tengo tutti gli altri pc, con windoz uso RDP con rdesktop, molto buono 

Ciao :)

----------

## paperp

[OT] Ma se lancio la sessione da remoto su un mac con installato anche X11 , avrò gli stessi risultati oppure no?  :Surprised: 

----------

## mouser

Teoricamente si, poiche' l'importante e' avere X che riesce a gestire le comunicazioni tra il server ed il client.

Come ha detto xchris, forse e' meglio utilizzare XDCMP ma purtroppo ora come ora non saprei utilizzarlo... se arrivera' un periodo di tranquillita' al lavoro potro' studiare bene quali sono le funzionalita' e andrei ad integrare l'howto, altrimenti tra qualche giorno dovrei avere internet anche a casa, ed allora potro' tranquillamente studiare li.

Chiedo scusa per i tempi di attesa  :Embarassed: 

Ciriciao

mouser  :Wink: 

----------

## gutter

 *mouser wrote:*   

> 
> 
> Chiedo scusa per i tempi di attesa 
> 
> 

 

E di cosa  :Smile:  non ti paga nessuno, anzi dovremo ringraziarti per il lavoro che svolgi. 

Anzi ti ringrazio subito   :Very Happy: 

----------

## mouser

 *gutter wrote:*   

> E di cosa  non ti paga nessuno, anzi dovremo ringraziarti per il lavoro che svolgi. 
> 
> Anzi ti ringrazio subito  

 

Thanxx.

Comunque sono sempre felicissimo di aiutare la community, poiche' quando ho bisogno io la community e' sempre presente.

Ciriciao

mouser  :Wink: 

----------

## paperp

No a quanto pare non si riesce;

```

server root # DISPLAY=192.168.1.11:1 startfluxbox &

[3] 21098

server root # Xlib: connection to ":0.0" refused by server

Xlib: Invalid MIT-MAGIC-COOKIE-1 key

giving up.

xinit:  unable to connect to X server

xinit:  No such process (errno 3):  Server error.

/root/.fluxbox/startup: line 12: 21099 Segmentation fault      /usr/bin/bsetroot -solid black

Error: Can not connect to X server.

Make sure you started X before you start Fluxbox.

[2]-  Done                    DISPLAY=192.168.1.11:1 startx

[3]+  Exit 1                  DISPLAY=192.168.1.11:1 startfluxbox

server root # DISPLAY=192.168.1.11:2 startfluxbox &

[1] 21138

server root # /root/.fluxbox/startup: line 12: 21139 Segmentation fault      /usr/bin/bsetroot -solid black

Error: Can not connect to X server.

Make sure you started X before you start Fluxbox.

[1]+  Exit 1                  DISPLAY=192.168.1.11:2 startfluxbox

```

Ho provato sia con dispaly 1 e 2 non si sa mai...

P.S. hai già fatto troppo ma che scherzi davvero??  :Wink: 

----------

## mouser

Hai gia' una sessione di X aperta sul pc dal quale hai lanciato fluxbox?

In tal caso prova a dare questi comandi dal pc client

```

# startx

[apri un'altra console]

# DISPLAY=xx.xx.xx.xx:1 startfluxbox &

```

E dimmi come va.... potrebbe essere un bug del mio howto  :Laughing: 

Ciriciao

mouser  :Wink: 

----------

## paperp

startx

server root # startx

```
Fatal server error:

Server is already active for display 0

        If this server is no longer running, remove /tmp/.X0-lock

        and start again.

Please consult the The X.Org Foundation support 

         at http://wiki.X.Org

 for help. 

Xlib: connection to ":0.0" refused by server

Xlib: Invalid MIT-MAGIC-COOKIE-1 key

giving up.

xinit:  unable to connect to X server

xinit:  No such process (errno 3):  Server error.
```

..devo rimuovere quel file mi sa , che dici??  :Razz: 

----------

## fedeliallalinea

Beh te lo dice, e' un file in /tmp male non puo' fare

----------

## mouser

Il file /tmp/.X0-lock, dovrebbe essere un security file per impedire l'avvio di X. In genere si setta sui server dove ci vanno a lavorare persone un po n00b, e che in genere utilizzano X per fare ogni cosa. Forse e' il caso di toglierlo....

fammi sapere

Ciriciao

mouser  :Wink: 

EDIT: fedeli mi ha preceduto, come al solito. E' vero, in tmp non dovrebbe far male, ma mi sembra che quel file venga creato quando X crasha in modo brutale, e ti blocca l'avvio di altre sessioni. Almeno credo, dovrei documentarmi...

----------

## paperp

sembra che parta ma.....

```

_XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6

_XSERVTransOpen: transport open failed for inet6/server:1

_XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6

This is a pre-release version of the The X.Org Foundation X11.

It is not supported in any way.

Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.

Select the "xorg" product for bugs you find in this release.

Before reporting bugs in pre-release versions please check the

latest version in the The X.Org Foundation "monolithic tree" CVS

repository hosted at http://www.freedesktop.org/Software/xorg/

X Window System Version 6.8.1.902 (6.8.2 RC 2)

Release Date: 12 January 2005

X Protocol Version 11, Revision 0, Release 6.8.1.902

Build Operating System: Linux 2.6.10-gentoo-r6 i686 [ELF] 

Current Operating System: Linux server 2.6.10-gentoo-r6 #1 Tue Jan 25 21:47:52 UTC 2005 i686

Build Date: 27 January 2005

        Before reporting problems, check http://wiki.X.Org

        to make sure that you have the latest version.

Module Loader present

Markers: (--) probed, (**) from config file, (==) default setting,

        (++) from command line, (!!) notice, (II) informational,

        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.

(==) Log file: "/var/log/Xorg.1.log", Time: Mon Jan 31 20:04:55 2005

(==) Using config file: "/etc/X11/xorg.conf"

Using vt 8

    [10f] 320 x 200, 70Hz

    [134] 320 x 240, 72Hz

    [144] 400 x 300, 72Hz

    [154] 512 x 384, 70Hz

    [11e] 640 x 400, 70Hz

    [112] 640 x 480, 160Hz, 100Hz, 85Hz, 75Hz, 72Hz, 60Hz

    [174] 720 x 480, 75Hz, 72Hz

    [17f] 720 x 576, 75Hz, 72Hz

    [115] 800 x 600, 160Hz, 100Hz, 85Hz, 75Hz, 72Hz, 60Hz, 56Hz

    [15f] 848 x 480, 75Hz

    [118] 1024 x 768, 130Hz, 100Hz, 85Hz, 75Hz, 72Hz, 70Hz, 60Hz

    [164] 1152 x 864, 100Hz, 85Hz, 75Hz, 72Hz, 70Hz, 60Hz

    [17b] 1280 x 768, 60Hz

    [11b] 1280 x 1024, 85Hz, 75Hz, 72Hz, 60Hz

    [16f] 1360 x 768, 60Hz

    [124] 1600 x 1200, 60Hz

WARNING: not a utf8 locale!

Xlib:  extension "XINERAMA" missing on display ":1.0".

Xlib:  extension "XINERAMA" missing on display ":1.0".

Container show!

/root/.fluxbox/startup: line 12: 21365 Segmentation fault      /usr/bin/bsetroot -solid black

```

..e si blocca lì...  :Sad: 

EDIT:Ho verificato che non è un problema del Mac , è un problema del server ,dalla Gentoo come client usato , ho le stesse indicazioni.  :Crying or Very sad: 

----------

## mouser

Ecco qui: aggiunta una sezione "Link Utili"

mouser  :Wink: 

----------

## calvizia

Secondo voi creando una VPN si risolve il problema sicurezza?

----------

## mouser

Bhe', se rendi sicura la vpn.....

Ovviamente all'interno della rete stessa la sicurezza rimane comunque una cosa inesistente

mouser  :Wink: 

----------

## xchris

@paperp:

per lanciare WM e app su server X11 di osx devi fare un paio di operazioni

1 - lanci X11

2 - preferenze X11 ->security -> Allow network client (o simile... non ricordo)

3 - su finestra di xterm che ti appare scrivi:

```

xhost + IPADDRESS_MAC

```

questo e' il modo + semplice ma non del tutto sicuro.

a questo punto sulla linux box fai:

```

export DISPLAY=IPMAC:0.0

comandoWN

```

nota bene!

Ho scritto comandoWM e non startx!!!

Per kde si usa startkde

Noterai cmq che startare un WM non e' proprio agevole.Tende a splittare tutte le componenti del desktop. (puo' aiutare usare X11 in full-screen)

Io preferisco lanciare direttamente le App. (ad es gftp)

Come viene fuori?

Non uguale se non tocchi nulla.

Dipende dai font credo.

Si dovrebbe startare X11 del MAC con supporto xfs. (ci provero')

spero che tu riesca a risolvere.

EDIT:Disabilita momentaneamente il firewall sul MAC in fase di test...

----------

## RenfildDust

Come faccio ad aprire una sessione grafica da remoto.

Se mi collego con ssh ed eseguo startx non funziona..

----------

## mouser

La prossima volta cerca nel forum!

Io non me la voglio tirare, ma nei post utilissimi, sezione howto si puo' trovare questo

Utilizzare X da remoto

Ciriciao

mouser  :Wink: 

----------

## gutter

 *RenfildDust wrote:*   

> Come faccio ad aprire una sessione grafica da remoto.
> 
> Se mi collego con ssh ed eseguo startx non funziona..

 

Fatto il merge del tuo topic con questo.

Vediamo di farla qualche ricerca prima di postare.

----------

## RenfildDust

Mi scuso intanto per il post ripetuto, ma avevo già provato... e non ci sono riuscito.

il comando 

```

$ DISPLAY=localhost:0 xterm &
```

mi da

 *Quote:*   

> xterm Xt error: Can't open display: localhost:0
> 
> 

 

Ho provato anche con 

client

```
 $ xhost +

$ slogin -l user server

$ export DISPLAY=client:0.0

$ xterm &

```

L'errore è *Quote:*   

> xterm Xt error: Can't open display: client:0.0
> 
> 

 

Non sarà per caso perchè X non compare tra i servizi di rete attivi? Se si ome si attiva?

(Naturalmente X è in esecuzione si in client che server)

Oppure, influisce il fatto che il Server è un PC e il client un PPC? (Il mio coinquilino (RollsAppleTree in questo forum)  lo fa anche con Win + Cygwin sullo stesso server da un'altra stanza)

----------

## Simbul

Forse dico una banalità, ma hai aggiunto al comando ssh l'opzione "-X"?

Inoltre mi pare che il demone sshd debba essere configurato in modo da consentire il tunneling... prova a spulciare il file di configurazione.

----------

## RenfildDust

 *Simbul wrote:*   

> Forse dico una banalità, ma hai aggiunto al comando ssh l'opzione "-X"?

 

Si

 *Quote:*   

> 
> 
> Inoltre mi pare che il demone sshd debba essere configurato in modo da consentire il tunneling... prova a spulciare il file di configurazione.

 

Cercherò...

----------

## Flonaldo

si ma se faccio un ssh -X login@********** riesco tranquillamente ad aprire firefox! l'X server non parte ma firefox si! come mai?

----------

## RenfildDust

Se non faccio un UP rimarrà nel dimenticatoio....

----------

## gutter

 *RenfildDust wrote:*   

> Se non faccio un UP rimarrà nel dimenticatoio....

 

Non si uppa se non sono passate almeno 24 ore.

----------

## Simbul

 *Flonaldo wrote:*   

> si ma se faccio un ssh -X login@********** riesco tranquillamente ad aprire firefox! l'X server non parte ma firefox si! come mai?

 

In realtà se non sbaglio tu riesci ad aprire firefox perchè hai già un server X aperto, sulla macchina da cui fai partire la connessione ssh. Quindi in pratica puoi fare andare le applicazioni in tunneling, ma non puoi fare startx.

----------

## RenfildDust

 *gutter wrote:*   

>  *RenfildDust wrote:*   Se non faccio un UP rimarrà nel dimenticatoio.... 
> 
> Non si uppa se non sono passate almeno 24 ore.

 

Scusa, ma era in terza pagina, pensavo bastasse...

----------

## Flonaldo

 *Simbul wrote:*   

>  *Flonaldo wrote:*   si ma se faccio un ssh -X login@********** riesco tranquillamente ad aprire firefox! l'X server non parte ma firefox si! come mai? 
> 
> In realtà se non sbaglio tu riesci ad aprire firefox perchè hai già un server X aperto, sulla macchina da cui fai partire la connessione ssh. Quindi in pratica puoi fare andare le applicazioni in tunneling, ma non puoi fare startx.

 

si infatti, lo so! Però non mi spiegavo come mai se andavo a lanciare invere startx mi sca**ava tutto; compreso il mio X server!

----------

## mouser

Aggiunta, per completezza, la sezione Troubleshooting

Ciriciao

mouser  :Wink: 

----------

## lsegalla

Guida fantastica (arrivo da un altro thread dove mi è stata segnalata e mi sto appassionando).

Tuttavia ho dei problemi ancora prima di iniziare a smanopolare con SSH, infatti seguendo la guida passo-passo (e spazzolandomi tutti i comandi e notazioni) trovo dei problemi nella notazione seguente:

```
$ DISPLAY=localhost:0 xterm & 
```

Nella fattispecie sul mio notebook ottengo:

```
luca@user8-gentoo ~ $ echo $DISPLAY

:0.0

```

Quindi con CTRL+ALT+F2 faccio una login col mio utente luca (l'unico che c'è)

```

luca@user8-gentoo ~ $ DISPLAY=localhost:0.0 xterm &

xterm Xt error: Can't open display: localhost:0.0

[1] 9707

[1]+  Exit 1                  DISPLAY=localhost:0.0 xterm

```

-- EDIT --

Si direbbe che la colpa è mia poichè da quanto apprendo in rete non c'è una variabile DISPLAY nell'ambiente, evidentemente.

Comprendo meglio solo ora cosa sono le variabili d'ambiente, quindi ci lavoro un po' su... se riesco magari do' il mio niubbo contributo...

-- EDIT --

Rettifico nuovamente poichè apprendo nuove informazioni, non so se sto facendo passi avanti o meno. Fatto sta che ho trovato delle informazioni nel web:

 *Quote:*   

> 
> 
> Possible cause #2: the X server isn't listening
> 
> A DISPLAY setting is used which causes the X client application to attempt to use TCP/IP sockets rather than Unix sockets. This attempt fails because in recent releases of SUSE Linux the X server does not listen to TCP/IP sockets by default, for security reasons.
> ...

 

Se è anche in gentoo come scrivono questi probabilmente il comando che sto provando a dare funziona con connessioni remote ma non se Xserver e Xclient sono nella stessa macchina. Sto dicendo cavolate?

-- EDIT --

Altro giro, altra corsa... ora scopro che il mio Xserver non è in ascolto per quanto concerne le connessioni TCP, mica da poco il particolare

```
luca@user8-gentoo ~ $ ps -ef | grep listen

102      12662 12611  0 10:49 ?        00:00:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket

root     15150 15149  4 14:02 tty7     00:01:47 /usr/bin/X -nolisten tcp

luca     15694 15507  0 14:46 pts/0    00:00:00 grep --colour=auto listen

```

Last edited by lsegalla on Wed Dec 30, 2009 2:38 pm; edited 1 time in total

----------

## lsegalla

Ci sono riuscito e ho risolto il mio problema (faro' un po' di pulizia nel mio post precedente onde evitare di trarre in inganno qualcuno che come me ha qualche difficoltà a capire). Ero convinto di dare il mio contributo, poi in realtà la sezione troublshooting già parlava di questo (solo che essendo digiuno di nozioni mi è sfuggito il particolare importante dell'opzione --no-listen tcp)

 *Quote:*   

> Con le impostazioni di default, pero', X viene lanciato con l'opzione --no-listen tcp.
> 
> Per rimuovere questa opzione basta editare lo script /usr/bin/startx e, nella variabile contenete i parametri (dovrebberi essere "--no-listen tcp -br"), basta rimuovere la prima opzione. 

 

Tuttavia ci sono delle imprecisioni e quindi daro' il mio contributo da poco alla sezione troubleshooting

PROBLEMA - xterm Xt error: Can't open display: localhost:0.0  (e simili legati al display)

Non appena lancio un luca@user8-gentoo ~ $ DISPLAY=192.168.1.202:0.0 oppure luca@user8-gentoo ~ $ DISPLAY=localhost:0.0 ottengo il messaggio d'errore che segue: xterm Xt error: Can't open display: localhost:0.0 

Detto cio' è possibile usare il comando ps -ef | grep listen per vedere se il server X è in ascolto per connessioni TCP (il mio come vedete qui sotto non lo era)

```

luca@user8-gentoo ~ $ ps -ef | grep listen

102      12662 12611  0 10:49 ?        00:00:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket

root     15150 15149  4 14:02 tty7     00:01:47 /usr/bin/X -nolisten tcp

luca     15694 15507  0 14:46 pts/0    00:00:00 grep --colour=auto listen 
```

Detto cio', come era indicato nella guida bisognerebbe editare un file, che pero' non è /usr/bin/startx (tuttavia io son partito da questo file spazzolandomi via via tutti i files collegati o che comunque contenevano parametri per questo, in rete non ho trovato niente purtroppo).

SOLUZIONE

E' sufficiente editare /etc/X11/xinit/xserverrc

```
nano -w /etc/X11/xinit/xserverrc
```

Dentro c'è una riga sola che di solito dovrebbe essere piu' o meno come segue

```
exec /usr/bin/X -nolisten tcp
```

E' sufficiente cancellare il -nolisten tcp e quindi riavviare il server X e quindi il comando di cui sopra funzionerà

accetto insulti dopo questa pignoleria da niubbo  :Very Happy: 

-- EDIT --

Su sabayon comunque ho notato che il file da modificare è comunque /usr/bin/startx, con un bel po' di opzioni in piu' rispetto alle mie

----------

## cloc3

 *lsegalla wrote:*   

> 
> 
> E' sufficiente cancellare il -nolisten tcp e quindi riavviare il server X e quindi il comando di cui sopra funzionerà
> 
> accetto insulti dopo questa pignoleria da niubbo 
> ...

 

non è affatto una banalità.

tutti gli script di avvio del servizio X sono impostati manualmente con l'opzione -nolisten tcp di default.

quanto dici si generalizza, per esempio, anche a chi usa kdm o gdm (e bisogna manipolare i corrispondenti file configurazione).

----------

## lsegalla

Bene, son contento allora    :Smile: 

Poi ho fatto qualche altro test e ho visto che non sempre riesco a passare la variabile $DISPLAY al pc remoto (sul quale gira il server X), anche se la procedura che fo è sempre la stessa, pero' comunque con ssh -X ... il problema non si pone e si riesce a far di tutto.

Poi ho provato un po' di altri casi:

se il computer remoto su cui gira il server X ha appunto il server X in esecuzione allora io posso eseguire semplici programmi lì e visualizzarli sul mio schermo (client) sul quale appariranno con le impostazioni grafiche del mio WM (fare quindi attenzione a quello che c'è scritto nella barra del titolo), oppure posso far girare tutto il WM da me (kde in questo caso)... per fare questo è stato utile killare kdm sul server remoto insieme a tutti i processi X e quindi solo allora lanciare il server X che non sia agganciato a un WM, così posso lanciare il mio bel startkde ed eseguirlo con le impostazioni grafiche del server... ma sul mio client (in due parole ho fatto funzionare sabayon da me, sotto linux)... praticamente funziona come un terminal server di windows (anche perchè il progetto di terminal server for linux mi sembra di non vederlo da nessuna parte fra l'altro). Tenere presente che pero' per fare questo ho dovuto crearmi un utente in locale da me (associato a nessun WM, ma che faccia partire il server X anche da me, da lì dentro si puo' fare il login remoto)

Insomma... giusto per saperle tutte ste cose, potremmo farci il nostro bel terminal server senza nessun problema     :Very Happy: 

----------

## cloc3

 *lsegalla wrote:*   

> 
> 
> Poi ho fatto qualche altro test e ho visto che non sempre riesco a passare la variabile $DISPLAY al pc remoto
> 
> 

 

bisogna trafficare un po' con le opzioni di /etc/ssh lato server e lato client. anche qui, le impostazioni di default tendono a bloccare gli scambi e bisogna cambiarle esplicitamente.

 *lsegalla wrote:*   

> 
> 
> ... praticamente funziona come un terminal server di windows (anche perchè il progetto di terminal server for linux mi sembra di non vederlo da nessuna parte fra l'altro).

 

niente paura.

windows ha tutto da imparare da linux, in questo campo.

a dire il vero le fondamenta per il progetto linux terminal server, nascono nel 1983/4 e prendono forma nel 1986, con il progetto xfree.

da allora, infatti, il servizio grafico è implementato come un protocollo che scambia dati sull'interfaccia di rete.

segui qui gli sviluppi relativi gentoo.

esiste anche una alternativa quasi equivalente ad ltsp, che si chiama XDMCP e permette di eseguire in remoto tutte le applicazioni del proprio schermo, visualizzandole con il servizio grafico locale. XDMCP si attiva tramite una opportuna opzione, nel file di configurazione del display manager. per startx non ricordo bene, ma forse il metodo è già descritto da qualche parte nell'howto.

----------

## mouser

Prima di tutto chiedo scusa ai moderatori per l'OT,

ma non son proprio riuscito a trattenere l'emozione vedendo delle risposte ad un mio thread di quasi 5 anni fa....

Sono commosso   :Very Happy: 

Ciriciao

----------

## Kernel78

 *mouser wrote:*   

> Prima di tutto chiedo scusa ai moderatori per l'OT,
> 
> ma non son proprio riuscito a trattenere l'emozione vedendo delle risposte ad un mio thread di quasi 5 anni fa....
> 
> Sono commosso  
> ...

 

ok, facciamo così: io ti perdono l'ot e tu cerchi di aggiornare la guida  :Wink: 

----------

