# [FAQ] Esportare DISPLAY

## quantumwire

Ciao a tutti.

La domanda e' il seguente:

come e' possibile eseguire dei programmi per xfree residenti sul pc A sotto xfree installato sul pc B con A e B in rete?

Thanks.

----------

## fedeliallalinea

 *quantumwire wrote:*   

> come e' possibile eseguire dei programmi per xfree residenti sul pc A sotto xfree installato sul pc B con A e B in rete?

 

Sul pc B (dove vuoi che vengano visualizzati) dai il comando

```
$ xhost ip_di_A
```

con questo dici che A ha il permesso di utilizzare X di B.

Sul pc A che sarai collegato in remoto dai il seguente comando:

```
$ export DISPLAY=ip_di_B:0  // se bash

$ setenv DISPLAY ip_di_B:0  // se altro
```

----------

## fedeliallalinea

Metti anche il tag [FAQ] al titolo e farai contento Shev  :Very Happy:  .

----------

## comio

se usi ssh puoi fare il tunneling di X11. Due le variabili in gioco: deve essere abiliato il server ssh a farlo ed il comando ssh deve richiederlo (opzione -X). Una volta fatto tunnel ti sembrera' di stare su una postazione locale... ma un po' lenta  :Smile: 

Ciao

----------

## quantumwire

 *fedeliallalinea wrote:*   

> Metti anche il tag [FAQ] al titolo e farai contento Shev  .

 

Fatto.

 *comico wrote:*   

> 
> 
> se usi ssh puoi fare il tunneling di X11. Due le variabili in gioco: deve essere abiliato il server ssh a farlo ed il comando ssh deve richiederlo (opzione -X). Una volta fatto tunnel ti sembrera' di stare su una postazione locale... ma un po' lenta 

 

Uso ssh regolarmente per connettermi al pc remoto.

Notate che il pc remoto e' il mio quindi posso fare modifiche al sistema... sul pc client sono utente normale e non posso divenare root. Ora ci provo... garzie!

----------

## quantumwire

Ho provato la soluzione di "fedeliallalinea" e funziona a meraviglia  :Very Happy:  !

Per quanto riguarda la tua soluzione "comico"... poui indicarmi il flag da abilitare nel file sshd per il tunneling di X?

----------

## comio

in /etc/ssh/sshd_config:

AllowTcpForwarding yes

GatewayPorts yes

X11Forwarding yes

X11DisplayOffset 10

X11UseLocalhost yes

per connettersi usare ssh -X ... oppure modificare il file di configurazione  ssh_config:

ForwardAgent yes

ForwardX11 yes

In questo modo il traffico X e' tunnelato (per il piacere dei firewall) e crittato. Ciao!

----------

## quantumwire

 *comio wrote:*   

> in /etc/ssh/sshd_config:
> 
> AllowTcpForwarding yes
> 
> GatewayPorts yes
> ...

 

Ho fatto come hai detto!

pro: rispetto alla soluzione fornita da fedeleallalinea e' piu' veloce   :Very Happy:  !

contro: non riesco ad aprire tutti i programmi   :Shocked:  !

Posto qui sotto l'output di un semplice visualizzatore di molecole ovvero "rasmol":

 *Quote:*   

> 
> 
> [stekkino:~/Projects/1mPORE] > rasmol
> 
> RasMol Molecular Renderer
> ...

 

... mentre per esempio mozilla si apre tranquillamente.

----------

## quantumwire

 *fedeliallalinea wrote:*   

> 
> 
> Sul pc B (dove vuoi che vengano visualizzati) dai il comando
> 
> ```
> ...

 

Domande:

1 - esiste la possibilita' di esportare la variabile DISPLAY ad un range di client?

2 - un buon posto dove mettere "export DISPLAY=..." sul server ed "xhost ..." sul client in modo tale da non dovere sempre impostarli manualmente.

----------

## comio

 *quantumwire wrote:*   

> 
> 
> Posto qui sotto l'output di un semplice visualizzatore di molecole ovvero "rasmol":
> 
>  *Quote:*   
> ...

 

anche con il modo di fedeliallalinea? Sembra quasi che il comando X non sia compreso dal seerver X locale. 

Allora, cercando con google, ho scopertoo che l'errore capita quando l'applicazione è compilata per usare la memoria condvisa per velocizzare il renderingg. Questo non è consentito via ssh. Quello che dovresti fare e disabilitare l'uso della shared memory del tuo programma per poter funzionare. 

questo è il link con un problema simile:

http://www.ira.cnr.it/centrocal/hotnews/aips_ssh.html

Ciao e ricordati di vedere i post sull'associazione gechi  :Smile: 

----------

## fedeliallalinea

 *quantumwire wrote:*   

> 1 - esiste la possibilita' di esportare la variabile DISPLAY ad un range di client?

 

Questo non lo so.

 *quantumwire wrote:*   

> 2 - un buon posto dove mettere "export DISPLAY=..." sul server ed "xhost ..." sul client in modo tale da non dovere sempre impostarli manualmente.

 

Per xhost puoi metterlo nel file autostart del tuo wm. Fai lo stesso con export se puoi se non resta solo fare uno scriptino che lancio ogni volta.

----------

## quantumwire

 *comio wrote:*   

> 
> 
> anche con il modo di fedeliallalinea?
> 
> 

 

No.

 *comio wrote:*   

> 
> 
> Allora, cercando con google, ho scopertoo che l'errore capita quando l'applicazione è compilata per usare la memoria condvisa per velocizzare il renderingg. Questo non è consentito via ssh. Quello che dovresti fare e disabilitare l'uso della shared memory del tuo programma per poter funzionare. 
> 
> 

 

Ora ci provo.

 *comio wrote:*   

> 
> 
> Ciao e ricordati di vedere i post sull'associazione gechi :
> 
> 

 

Scuserai la mia ignoranza se ti chiedo di cosa stai parlando?

----------

## quantumwire

Grazie fedeleallalinea.

----------

## fedeliallalinea

 *quantumwire wrote:*   

> Scuserai la mia ignoranza se ti chiedo di cosa stai parlando?

 

Guarda 

https://forums.gentoo.org/viewtopic.php?t=115251

https://forums.gentoo.org/viewtopic.php?t=115348

e sopratutto

www.gechi.it

----------

## fedeliallalinea

 *quantumwire wrote:*   

> Grazie fedeleallalinea.

 

E di cosa?  :Very Happy: 

----------

## xlyz

 *comio wrote:*   

> se usi ssh puoi fare il tunneling di X11. Due le variabili in gioco: deve essere abiliato il server ssh a farlo ed il comando ssh deve richiederlo (opzione -X). Una volta fatto tunnel ti sembrera' di stare su una postazione locale... ma un po' lenta 

 

domandona: per un uso desktop quale configurazione e' più "veloce": un diskless puro, o una sessione come quella descritta (ssh + X11 in tunnel)? 

se ho capito bene il primo scarica il programma che fa girare in locale, il secondo gira sull'altro e trasmette solo i comandi per disegnare le videate. ma da un punto di vista pratico quale risulta più usabile su una lan? qualcuno ha mai fatto dei test su tempi di latenza e esecuzione e sul carico su cpu/altri componenti?

----------

## randomaze

 *xlyz wrote:*   

> domandona: per un uso desktop quale configurazione e' più "veloce": un diskless puro, o una sessione come quella descritta (ssh + X11 in tunnel)? 
> 
> 

 

Stai parlando di cose diverse.

Intanto se vuoi fare un diskless presumo che tu ti trovi in una LAN interna, nel qual caso, volendo usare X in remoto puoi rinunciare all'ssh velocizzando quindi l'insieme.

Poi se vuoi fare una sessione come quella descritta hai bisogno di due macchine non diskless (a meno che tu non voglia fare un diskless che, una volta fatto il boot usa le applicazioni X sull'altra macchina mischiando il voler fare diskless con il tunnel ssh+X).

In sostanza... spiega meglio la tua idea  :Wink: 

il che non vuol dire che l'hai spiegata male ma solo che io non la ho capita

----------

## xlyz

 *randomaze wrote:*   

> Stai parlando di cose diverse.

 

assolutamente

 *Quote:*   

> Intanto se vuoi fare un diskless presumo che tu ti trovi in una LAN interna, nel qual caso, volendo usare X in remoto puoi rinunciare all'ssh velocizzando quindi l'insieme.

 

buono a sapersi. 

ma la macchina server sarebbe di confine (router, etc.) e l'uso di ssh mi faceva sentire più tranquillo   :Wink: 

 *Quote:*   

> Poi se vuoi fare una sessione come quella descritta hai bisogno di due macchine non diskless (a meno che tu non voglia fare un diskless che, una volta fatto il boot usa le applicazioni X sull'altra macchina mischiando il voler fare diskless con il tunnel ssh+X).

 

macchina centrale che fa anche da file server / router

2-3 macchine periferiche 

le macchinette periferiche potrebbero essere diskless (meno menate) purche' rimangano "usabili" (della serie se ogni volta che faccio qualcosa devo aspettare, non se ne parla)

ipotesi 1 - le macchinette periferiche hanno il disco fisso, ci metto su il minimo indispensabile (x, un wm leggero) e sul serverone ci lascio tutto il resto (tanto se ho capito bene i processi dei programmi girano sul serverone)

ipotesi 2 - le macchinette periferiche non hanno disco fisso, e tutto viene tirato giù dal serverone

l'ipotesi 2 immagino che sia come usare knoppix: tempi biblici ogni volta che devi lanciare un programma (beh, magari un po' meglio, visto che per latenza e banda una lan dovrebbe essere meglio di un cd, giusto?), ma una volta caricato in ram si va che e' un piacere

sull'ipotesi 1 non ho idea. e stavo cercando qualche riscontro

 *Quote:*   

> In sostanza... spiega meglio la tua idea 

 

fatto 

e adesso?   :Razz: 

----------

## randomaze

 *xlyz wrote:*   

> 
> 
> fatto 
> 
> e adesso?  

 

Io al limite metterei una macchina piccola e diskless (o con boot da CD/floppy/USB) a fare da router/firewall  e nulla di più, proprio perché "di confine".

Il serverone lo terrei dentro la rete, così lo puoi usare anche come workstation eventualmente coadiuvato dalle altre macchine (e sta a te la scelta... dipende da cosa vuoi che ci giri  :Wink: 

----------

## xlyz

 *randomaze wrote:*   

> Io al limite metterei una macchina piccola e diskless (o con boot da CD/floppy/USB) a fare da router/firewall  e nulla di più, proprio perché "di confine".
> 
> Il serverone lo terrei dentro la rete, così lo puoi usare anche come workstation eventualmente coadiuvato dalle altre macchine (e sta a te la scelta... dipende da cosa vuoi che ci giri 

 

gia', cosi' solo per aprire un brower mi tocca tenere accese tre macchine: router, serverone e client. 

naaaah, troppi case  in giro. 1 pc / serverone always on, e gli altri sotto

stasera ho fatto delle prove con il tunnelling X11, girando a 10kb sulla rete fastweb, con ooffice, gimp, e c.

niente male

assolutamente usabile

un giorno se ho un po' di tempo configuro anche un boot diskless e faccio un po' di prove (a meno che qualcuno che le ha gia' fatte non si faccia vivo prima   :Cool:  )

----------

## silverfix

che differenza c'è nell'esportare DISPLAY oppure usare quel programma che non mi ricordo come si chiama .. mi sembra vpn  :Smile: 

----------

## comio

 *silverfix wrote:*   

> che differenza c'è nell'esportare DISPLAY oppure usare quel programma che non mi ricordo come si chiama .. mi sembra vpn 

 

Allora... mi sa che hai un po' di confusione in testa.

VPN, virtual private network, sono delle reti "virtuali" instaurate su una rete "fisica". Ipotesi tu lavori per una azienda, ma ti piace lavorare a casa. Hai la necessità di accedere al DB aziendale e quant'altro.

Ovviamente nessuno stenderà un cavo da casa tua all'azienda, però tutti e due siete connessi ad internet. Allora se io creo un canale cifrato più o meno complesso fra i due (un tunnel) posso far vedere la rete dell'azienda all'utente remoto, come se quest'ultimo fosse in azienda e senza che qualcuno abbia modo di spiare il traffico. In primo modo di fare vpn è quello di usare ssh (ppp over ssh per esempio) cioè creare una scheda di rete virtuale che simula una connessione diretta con l'azienda (in realtà i pacchetti viaggiano per mezzo mondo criptati). C'è anche GRE, IPSec e tanto altro.

esportare il DISPLAY significa solo che l'applicazione invece di inviare i comandi al server X locale manda le richieste ad un altro server X (magari remoto). Questo è possibile perché X nasce come server TCP quindi la cosa risulta facile. Ovviamente è insicura una cosa del genere (tutto va in chiaro...), la soluzione è quella di mandare su un tunnel/vpn in modo criptato. In questo modo si ha anche la possibilità di passare firewall senza intoppi (l'applicazione remota tenterebbe di aprire una connessione verso di noi, mentre noi abbiamo una connessione verso il server remoto... normalmente queste cose danno fastidio ai firewall, vedi per esempio l'FTP).

Ok?

Ciao

----------

## MyZelF

Ottima lezione su VPN, comio...  :Wink: 

Comunque credo che silverfix intendesse VNC, o sbaglio?

----------

## silverfix

assolutamente ho le idee chiarissime.. mi dispiace tu abbia perso del tempo per illustrarmi le funzionalità di VPN.. ma semplicemente mi confondevo con VNC e così ho messo in gioco vpn così potevate capire cosa intendevo.. cmq quali sono le differenze ?

----------

## comio

allora... X è una struttura client server

Sul computer locale (client) hai il Server che interpreta le chiamate, mentre sul computer Remoto hai l'applicazione che gira. Se chiudi la connessione la tua applicazione muore perché non vede più il server X (nota il ruolo scambiato di server e client)

ServerX sul client

ClienteX sul Server applicativo

Vnc si limita a catturare in qualche modo ciò che è a video (prodotto da X) ed ad inviarlo ad un viewer, senza nessun concetto di comandi e quant'altro. Se chiudi il vncviewer, non chiudi il server X (che questa volta è sul server remoto) quindi l'applicazione non muore.

Ovviamente vnc è molto più pesante nell'uso di rete (spedisce delle bitmap dello schermo), mentre il protocollo X ha delle primitive "vettoriali" che alleggeriscono di molto il carico.

Meglio di X credo ci sia solo il servizio terminal di NT.

Ciao!

Ps.: chiedo perdono  per il vpn... proprio vnc non mi è passato dalla teste  :Smile: 

----------

## silverfix

ciao,

sei stato molto esplicativo ma ti spiego meglio..

sto mettendo su un server k6-2 350mhz 340mb ram e hd 10gb (in un case fatto su misura da me in plexiglass like a little valigett  :Very Happy: ) naturalmente con gentoo.. bhè per i processi testuali che voglio lasciare in background uso il comodissimo screen... ma se volessi visualizzare amule sul client per poi lasciarlo "vivere" sul server? 

esistono server standalone di amule tipo giftd ?

----------

## randomaze

 *silverfix wrote:*   

> esistono server standalone di amule tipo giftd ?

 

mldonkey

----------

