View Full Version : telnet da linux su unix
Salve a tutti, arrivo subito al punto:
Connettendomi da linux ad unix via telnet in locale non riesco a visualizzare i programmi presenti su unix in linux. Precisamente da linux riesco ad avviarli ma vengono visualizzati su
unix. Come posso fare?
Grazie anticipatamente
Ehm, se ho capito bene tu vuoi:
1) da una macchina linux SU CUI STA GIRANDO il server XWindows, vuoi fare telnet su una macchina Unix
2) mentre sei nella sessione di telnet, vuoi lanciare programmi sulla macchina Unix, programmi che pero' usano XWindows, e vuoi che le finestre di questi programmi appaiano dul display della TUA macchina Linux e non sul display della macchina Unix.
E' cosi'?
Se si' devi:
1) dalla macchina linux digitare il comando
xhost +
questo fa si' che in pratica disabiliti il controllo degli accessi delle connessioni X-Windows (in realta' puoi anche abilitare solo una specifica macchina, fai "man xhost" per qualche informazione in piu')
2) fai il telnet sulla macchina Unix (o comunque sulla macchina con server X-Windows a cui ti vuoi connettere)
3) se il comando che devi lanciare supporta (come da standard XWindows) l'opzione "-display" allora usa quest'opzione per specificare il nome della tua macchina Linux.
Ad esempio, se la tua macchina linux si chiama "tux" ed ha indirizzo di rete 192.168.0.1, per aprire un semplice xterm puoi scrivere:
xterm -display tux:0.0
oppure usare il numero di IP
xterm -display 192.168.0.1:0.0
(il :0.0 per ora preferisco non spiegartelo, prendilo per buono)
4) se invece vuoi che TUTTI i comandi che lancerai dalla shell aprano il display sul tuo linux, allora ti conviene impostare la variabile d'ambiente DISPLAY con il nome del tuo PC (o il suo indirizzo IP).
Quindi, se usi bash:
export DISPLAY=tux:0.0
o
export DISPLAY=192.168.0.1:0.0
se usi csh:
setenv DISPLAY tux:0.0
oppure
setenv DISPLAY 192.168.0.1:0.0
Credo comunque che ti convenga cercare in rete qualcosa sui "rudimenti" di XWindows.
Ciao,
Mr Hyde
Ciao, grazie per il suggerimento ma provando con chost + e poi xterm... mi da l'errrore "can't open display tux:0.0
se faccio con setenv mi da lo stesso errore...
se provo con export mi da command not found, forse perchè la versione unix non supporta questo programma, ma su unix non posso cambiare nulla perchè non son amministratore di sistema, però su linux posso fare qualsiasi cosa...se puoi dammi qualche altro suggerimento...Grazie!
Ciao, grazie per il suggerimento ma provando con chost + e poi xterm... mi da l'errrore "can't open display tux:0.0
se faccio con setenv mi da lo stesso errore...
se provo con export mi da command not found, forse perchè la versione unix non supporta questo programma, ma su unix non posso cambiare nulla perchè non son amministratore di sistema, però su linux posso fare qualsiasi cosa...se puoi dammi qualche altro suggerimento...Grazie!
OK. Allora, per evitare problemi con la risoluzione dei nomi prova ad usare SOLO i numeri di IP.
Quindi:
1) entra in telnet sulla macchina Unix.
Fai un ping all'indirizzo IP della tua macchina Linux e controlla se riesci a raggiungere la tua macchina. Questo perche', a seconda di come e' configurta la rete, la macchina Unix potrebbe vedere la tua macchina Linux con un indirizzo IP DIVERSO da quello che hai visto tu.
2) ed ora controlla che shell stai usando: dalla sezione telnet dai il comando
finger nome_utente_che_stai_usando
dovresti ottenere un output tipo il seguente:
Login name: nome_utente_che_stai_usando (messages off)
Directory: /disk2/local_user/landi Shell: /usr/bin/csh
On since May 24 10:41:50 on ttyr5 from cicciobello.dominio.it
No unread mail
No Plan.
Da "Shell" puoi capire quale shell usi (nell'esempio io sto usando csh, ovvero la CShell).
Quindi, se hai csh (o derivate da csh) devi usare
setenv NOMEVARIABILE valore_da_dare_alla_variabile
se hai invece bash (o derivate da bash)
export NOMEVARIABILE=valore_da_dare_alla_variabile
(nota che csh NON usa il simbolo "=", a differenza di bash)
Nota ancora che dall'output di finger puoi capire come e' chiamata la tua macchina linux dal sistema Unix (nell'esempio cicciobello.dominio.it)
Se l'indirizzo che compare nel finger e' diverso da quello che conosci tu, usa quello che compare nel finger (potrebbe anche essere un numero di IP)
Quindi, nell'esempio:
setenv DISPLAY cicciobello.dominio.it:0.0
se hai invece bash (o derivate da bash)
export DISPLAY=cicciobello.dominio.it:0.0
Nota che il nome della variabile e' DISPLAY e che deve essere tutto maiuscolo
Da questo momento in poi, qualunque comando darai DA QUESTA SEZIONE DI TELNET, cerchera' di usare quel display come output.
4) IN LINUX apri un xterm (o comunque una shell all'interno dell'ambiente XWindows) e digita
xhost +
5) a questo punto torna alla tua sezione di telnet e digita "xterm".
Se e' tutto OK dovresti vedere SUL LINUX apparirti una finestra.
Se non va controlla di non avere un firewall attivo su Linux che "sbarra" le connessioni sulla porta 6000
E comunque chiedi al sistemista della macchina Unix se dal suo lato non ci sia un firewall o altro che filtra il traffico di rete.
Spero tu abbia migliore fortuna.
Ciao,
Mr Hyde
Anche così mi compare l'errore can't open display macchinalinux:0.0.
Quando faccio finger "ip macchina linux" non mi da un messaggio simile a quello scritto da te bensì:
Login name: "ipmacchina linux" In real life: ???
Quando faccio da unix ping "macchina linux" escono scritte continue del tipo:
64 bytes from "ip macchina linux": icmp_seq=1 ttl=128 time=1 ms
64 bytes from "ip macchina linux": icmp_seq=2 ttl=128 time=2 ms
64 bytes from "ip macchina linux": icmp_seq=3 ttl=128 time=1 ms
Come posso fare in alternativa?
Ti ringrazio anticipatamente
Anche così mi compare l'errore can't open display macchinalinux:0.0.
Quando faccio finger "ip macchina linux" non mi da un messaggio simile a quello scritto da te bensì:
Login name: "ipmacchina linux" In real life: ???
Quando faccio da unix ping "macchina linux" escono scritte continue del tipo:
64 bytes from "ip macchina linux": icmp_seq=1 ttl=128 time=1 ms
64 bytes from "ip macchina linux": icmp_seq=2 ttl=128 time=2 ms
64 bytes from "ip macchina linux": icmp_seq=3 ttl=128 time=1 ms
Come posso fare in alternativa?
Ti ringrazio anticipatamente
Allora, il finger NON va fatto con il nome (o l'IP) della macchina linux, ma con il nome dell'utente che stai usando SULLA MACCHINA UNIX.
Quindi se il tuo utente sulla macchina Unix si chiama "museum"
tu devi provare "finger museum".
Comunque il comportamento del comando ping e' corretto: ping e' un comando generalmente usato per provare le connessioni di rete; spedisce alcuni byte di prova verso l'indirizzo specificato e attende da quest'ultimo una risposta, quindi misura il tempo impiegato dai dati per essere tramessi e ricevuti.
Da quello che ho visto dal tuo output significa che la macchina Unix riesce a trovare, sulla rete, la macchina con quell'indirizzo IP, quindi puoi usare come nome del display
ip_macchina_linux:0.0
Altra cosa: ovviamente sulla macchina Linux sta girando un server X e ovviamente hai dato, dalla macchina linux il tanto citato "xhost +", vero?
Ciao,
Mr Hyde
Ho provato con finger ed ora mi da info simil alle tue.
Si ho digitato xhost + ma mi da l'errore mensionato prima.
Come posso fare?
Ho provato con finger ed ora mi da info simil alle tue.
Si ho digitato xhost + ma mi da l'errore mensionato prima.
Come posso fare?
Mi vengono in mente solo 2 cose:
1) "xhost +" devi darlo come utente root del tuo Linux
2) controlla che sul tuo linux iptables (firewall del kernel di linux) non stia bloccando traffico.
Per vedere cosa sta facendo iptables devi digitare, sempre da root:
iptables -L
Se iptables NON STA FILTRANDO IN ALCUN MODO il traffico dovresti vedere per le 3 catene la policy ACCEPT (e dovresti vedere solo le 3 catene "standard"): in questo caso, se continua a non funzionare, allora chiedi assistenza al system admin che gestisce la macchina Unix a cui ti colleghi xche' il problema potrebbe anche dipendere dalla configurazione della macchina Unix
Ciao,
Mr Hyde
ilsensine
25-05-2006, 07:22
1) "xhost +" devi darlo come utente root del tuo Linux
No, va dato dentro una console sotto X dall'utente che si è loggato, non da root. In più, la console non deve venire chiusa altrimenti l'effetto di xhost si vaporizza.
2) controlla che sul tuo linux iptables (firewall del kernel di linux) non stia bloccando traffico.
Potrebbe anche essere (la mia kanotix fa così) che X sia configurato per ascoltare solo su unix domain socket, non su rete IP.
Ad avere un bel sshd a disposizione sulla macchina unix...
No, va dato dentro una console sotto X dall'utente che si è loggato, non da root. In più, la console non deve venire chiusa altrimenti l'effetto di xhost si vaporizza.
O cavolo... Questa proprio non la ricordavo... Ho fatto un erroronzo totale e globale... Basta, e' troppo tempo che uso Linux e io sono troppo vecchio... Ora vado in pensione e mi installo solo Windows... versione "3.1 for workgroups"! :-)
A parte le battute (niente Linux sul mio PC? Lo posso sopportare al lavoro - e notate che programmo sotto Unix, un controsenso -) meno male che mi hai corretto!
Ciao,
Mr Hyde
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.