Domanda

Ho Xming X Window Server installato su un laptop con Windows XP per connettermi ad alcuni server di sviluppo UNIX.

Funziona bene quando mi collego direttamente alla rete aziendale in ufficio.Tuttavia, non funziona quando mi connetto alla rete in remoto tramite una VPN.

Quando avvio Xming quando sono connesso in remoto, nessuno dei miei terminali Windows viene visualizzato.

Penso che potrebbe avere qualcosa a che fare con la variabile d'ambiente DISPLAY non impostata correttamente sull'indirizzo IP del laptop quando è connesso.

Ho notato che quando eseguo un ipconfig mentre sono connesso in remoto, il mio laptop ha due indirizzi IP, quello assegnatogli dalla rete aziendale e l'indirizzo IP locale che ho impostato sulla mia "rete locale" dal mio modem/router.

Ci sono alcune modifiche alla configurazione che devo apportare in Xming per supportarne l'utilizzo tramite VPN?

È stato utile?

Soluzione

È probabile che si tratti dell'autenticazione X, del collegamento del server X a un'interfaccia o della variabile DISPLAY.Non uso Xming personalmente, ma ci sono alcuni fenomeni generali da verificare.Un test che puoi eseguire per verificare manualmente che la variabile DISPLAY sia corretta è:

  1. Avvia la tua VPN.Esegui ipconfig per essere sicuro di avere i due indirizzi IP che hai menzionato (il tuo IP locale e il tuo IP VPN).
  2. Avvia Xming.Esegui "netstat -n" per vedere come si collega all'interfaccia.Dovresti vedere qualcosa che dice localIP:6000 o VPNIP:6000.Potrebbe non essere 6000 ma è probabile che sarà qualcosa del genere.Se non c'è VPNIP:6000 potrebbe essere vincolante solo al tuo IP locale o anche 127.0.0.1.Probabilmente non funzionerà tramite VPN.Controlla se sono presenti alcune impostazioni di Xming per collegarlo ad altre o tutte le interfacce.
  3. Se vedi VPNIP:6000 o qualcosa di simile, prendi nota di ciò che dice e della shell remota nel tuo host UNIX (si spera qualcosa come ssh, se non qualunque cosa devi ottenere un terminale di testo).
  4. Sul terminale UNIX digitare 'echo $DISPLAY'.Se non viene visualizzato nulla, prova "export DISPLAY=VPNIP:0.0" dove VPNIP è il tuo indirizzo IP VPN e 0.0 è la porta che hai visto nel passaggio 3 meno 6000 con .0 alla fine (ad es.6000 = 0,0, 6010 = 10,0).
  5. Sull'host UNIX esegui qualcosa come 'xclock' o 'xterm' per vedere se funziona.Il messaggio di errore dovrebbe essere informativo.Ti dirà che non è riuscito a connettersi all'host (un problema di connettività) o che l'autenticazione non è riuscita (dovrai coordinare Xauth sul tuo host e macchina locale o Xhosts sulla tua macchina locale).

Aprire Xhosts (con + per tutti gli host o qualcosa di simile) non è poi così male se hai una rete protetta localmente e stai utilizzando una VPN.Speriamo che questo ti consenta di iniziare a rintracciare il problema.Un'altra opzione spesso utile poiché funziona tramite una VPN o una semplice connettività ssh è il tunneling ssh o l'inoltro X11 su ssh.Questo simula la connettività al server X sul tuo box locale reindirizzando una porta sul tuo host UNIX alla porta locale sul tuo box server X.Il tuo display sarà in genere qualcosa come localhost:10.0 per la porta 6010 locale.

X può essere complicato da configurare, ma di solito funziona benissimo una volta capito come funziona.

Altri suggerimenti

Grazie per l'aiuto @Stephen e @Greg Castle, usandolo sono riuscito a risolvere il mio problema.

Per fornire una guida di base per gli altri (da zero):

Utilizzo di Xwindows su un PC Windows per connettersi a un server UNIX tramite una VPN

Cosa ti serve per iniziare:

Cosa fare:

  1. Installa entrambi i prodotti precedenti sul tuo PC Windows

  2. Dal menu Start di Windows selezionare:Programmi -> Xming -> Xming

  3. Esegui il programma Putty.exe nella posizione in cui lo hai scaricato

  4. Nella schermata di configurazione di PuTTY, procedi come segue:

    • Imposta l'indirizzo IP come indirizzo IP del tuo server UNIX

    • Selezionare il pulsante di opzione Protocollo SSH

    • Fare clic su SSH:Categoria Tunnel nel riquadro sinistro della schermata di configurazione

    • Fare clic sulla casella di controllo Abilita inoltro X11

    • Fare clic sul pulsante Apri

    • Accedi come al solito al tuo server UNIX

    • Controlla che la directory contenente le utilità di X Windows sia nel tuo percorso, ad es./usr/X/bin su Solaris

    • Esegui i comandi X Windows nella finestra Putty e genereranno nuove finestre sul desktop

Ho fatto funzionare Xming e PuTTY con Cisco VPN sostituendo la configurazione PuTTY in Connection > SSH > X11 > X display location, localhost:0.0, con VPNIP:0.0. VPNIP può essere visto in VPN statistics client address information facendo clic con il tasto sinistro del mouse su VPN client icona di blocco e scegli Statistics....

Non ho giocato con la variabile d'ambiente DISPLAY sull'host remoto.Ma, come altri, ho modificato sshd_config sull'host remoto, aggiungendo queste righe:

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
AddressFamily inet

Non ho avuto altro che problemi con Xming.Quando sono riuscito a farlo funzionare è stato estremamente lento (questo avviene tramite una VPN).IMO X non è progettato per funzionare su connessioni lente, è troppo loquace.E per connessione lenta intendo qualcosa di meno di una connessione LAN.

La mia soluzione era usare x11vnc.Ti consente di accedere alla sessione X11 esistente tramite VNC.Entro nella mia casella tramite VPN e lancio:

$ x11vnc -display :0

In questo modo posso accedere a tutto ciò che ho aperto durante la giornata.Poi quando non lo faccio esco semplicemente (Ctrl-C) nel terminale per chiudere x11vnc.

Ho riscontrato lo stesso problema con Xming e Putty su un computer Windows 10 e ho trovato la soluzione Qui.Ho superato il problema semplicemente aggiungendo Tunnel alla sessione in PuTTY.Ma prima devi controllare;

  • sshd_config sotto /etc/ssh (in rhel7).
  • Abilita l'inoltro X11 nel riquadro di navigazione a sinistra Connections > SSH > X11
  • iptables in /etc/sysconfig/ (in rhel7).Se le porte sono bloccate e disponi dell'autorizzazione, apri le porte per 6000.Ho aggiunto la riga seguente prima della prima riga di rifiuto per aprire le porte da 6000 a 6003.Potrebbe essere più specifico nel tuo caso.

    -A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 5901:5903,6000:6003 -j ACCEPT

Poi;

  • Vai a Connections > SSH > Tunnels in PuTTY e aggiungi un tunnel con Source Port=6000, Destination=127.0.0.1:6000 e controlla Remote pulsante di opzione.Quindi fare clic su Add pulsante.
  • Dopo aver stabilito la connessione SSH, imposta manualmente la variabile DISPLAY con il comando seguente:
    export DISPLAY=127.0.0.1:0.0

Maggiori informazioni;
Se imposti DISPLAY variabile come 127.0.0.1:1.0, comunicherà su 6001 porte.In questo caso è necessario aggiungere un altro tunnel per la porta numero 6001.

Non ho riscontrato il problema esatto, ma penso che tu debba guardare xhost e assicurarti che il telecomando VPN sia autorizzato a inviare dati al server x.

Questo collegamento potrebbe aiutare:http://www.straightrunning.com/XmingNotes/trouble.php

Potresti avere più fortuna nel farlo Inoltro X11 tramite SSH invece di armeggiare direttamente con la variabile DISPLAY.L'inoltro X11 con SSH è sicuro e utilizza la connessione SSH esistente per il tunnel, quindi lavorare tramite una VPN non dovrebbe essere un problema.

Fortunatamente questo è abbastanza semplice con Xming.Se apri la connessione da Xming (ad es.l'opzione plink) Credo che imposti l'inoltro X11 per impostazione predefinita.Se ti connetti utilizzando un altro client SSH (ad es.PuTTY), devi semplicemente abilitare l'inoltro X11 (ad es.'ssh -X utente@host').In PuTTY l'opzione è in Connessione -> SSH -> X11 -> fai clic su "Abilita inoltro X11".

Assicurati che Xming sia in esecuzione in background sul tuo laptop ed esegui il test X standard, "xclock".Se ricevi un messaggio come "X connessione a LocalHost: 19.0 rotto (uccisione esplicita o arresto del server)". Quindi XMing non è probabilmente in esecuzione.

Inoltre, assicurati di non impostare esplicitamente la variabile DISPLAY in nessuno script di avvio;SSH imposterà un alias (qualcosa come localhost:10 o nell'esempio sopra localhost:19) per il tunnel X11 e imposterà automaticamente DISPLAY su quel valore.Sovrascrivere DISPLAY significherà ovviamente che non punterai più al tunnel X11 corretto.Il rovescio della medaglia è che altri terminali che non dispongono del set di inoltro SSH X11 possono utilizzare lo stesso valore DISPLAY e sfruttare il tunnel.

Tendo a preferire l'opzione PuTTY, ma molti dei miei colleghi usano plink da Xming.

putty + XMing - Ho dovuto impostare manualmente la variabile d'ambiente DISPLAY per far funzionare le cose (oltre a selezionare "Abilita inoltro X11" in putty - Connection/SSH/X11)

esporta VISUALIZZAZIONE=0:10.0

(era impostato su "localhost:10.0", che non funzionava)

È necessario aggiungere i nomi DNS e l'indirizzo IP della macchina Linux al file C:\Programmi\xming\X0.hosts.Il file dovrebbe contenere:

LinuxBox.mydomain.com
LinuxBox
192.168.1.25

Questa è la risposta esatta: https://www.slackwiki.com/X_Windows:_Remote_X_to_Windows_with_Xming

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top