View Full Version : [HELP]VNC su ubuntu 7.10
Ciao a tutti.
Ho creato un pc stile server e vorrei utilizzarlo senza l'ingombro di schermo&co , utilizzandolo da remoto con windows xp.
Ho letto cosi alcune guide su VNC e sono riuscito a configurare il tutto, installando sul server Ubuntu 7.10 e a utilizzare il server da remoto.
Il problema è il seguente: VNC parte su comando da console dopo che mi sono già loggato, ma io vorrei che si avviasse prima in maniera che mi riesca a collegare già alla schermata di login di ubuntu.
E' possibile fare una cosa del genere? Cosi devo usare piu tastiera , mouse e schermo :xwink:
Grazie mille in anticipo.
Gimli[2BV!2B]
02-01-2008, 15:17
Conosco un paio di modi per fare quel che desideri:
per fare una cosa per bene potresti creare uno script da mettere in /etc/init.d, dotato di sezione start stop e start, in modo tale da rendere vncserver un demone gestito dal sistema;
(altrimenti puoi aggiungere solo una stringa di avvio in uno script generico.) opzione scartata...
Entrambe le soluzioni prevedono la conoscenza dei fondamenti dello scripting in bash.
Ecco in dettaglio cosa potresti fare.
Nome da dare al file /etc/init.d/vncd
#!/bin/sh
# Start/stop/restart vnc server.
CONFIG=/etc/default/vncdaemon
WRAPPER_OPTIONS=""
. $CONFIG
# Set configuration values, from CONFIG
if [ -n "$VNC_USER" ] && [ -n "$VNC_GROUP" ]; then
WRAPPER_OPTIONS="$WRAPPER_OPTIONS --chuid $VNC_USER"
fi
if [ -n "$VNC_GROUP" ]; then
WRAPPER_OPTIONS="$WRAPPER_OPTIONS --group $VNC_GROUP"
fi
# Start vnc:
vnc_start() {
if [ -x `which vnc` ]; then
echo -n "Starting vnc server: `which vncserver`"
start-stop-daemon --start $WRAPPER_OPTIONS --quiet \
--exec `which vncserver` -- $VNC_DISPLAY $VNC_OPTIONS
echo "."
fi
}
# Stop vlc daemon:
vnc_stop() {
su - $VNC_USER -c "`which vncserver` -kill $VNC_DISPLAY"
}
case "$1" in
'start')
vnc_start
;;
'stop')
vnc_stop
;;
'restart')
$0 stop
sleep 2
$0 start
;;
*)
echo "usage $0 start|stop|restart"
esac
A questo file è necessario abbinare un file di testo di nome /etc/default/vncdaemon, in cui devono essere definite le seguenti variabili:
VNC_USER: utente a cui associare l'esecuzione di vncdaemon
VNC_GROUP: gruppo a cui appartiene l'utente a cui associare vncdaemon (spesso va bene il nome dell'utente, poichè viene creato un gruppo con lo stesso nome)
VNC_DISPLAY: il display a cui associare vncserver, :1 va bene.
ed eventualmente una variabile con i parametri aggiuntivi da passare a vncdaemon:
VNC_OPTIONS
Esempio:VNC_USER=gimli
VNC_GROUP=gimli
VNC_DISPLAY=:1
Naturalmente dovrai impostare le password con vncpasswd, altrimenti lo script si ferma chiedendo la password da tastiera (tipo nistpaal)...
Questo script l'ho buttato giù in cinque minuti, non garantisco un funzionamento perfetto.
Una volta salvati i files devi aggiungere la flag eseguibile ad /etc/init.d/vncd (chmod +x /etc/init.d/vncd), quindi puoi provare ad avviarlo con /etc/init.d/vncd start.
Una volta ottenuto uno script che soddisfa le tue esigenze aggiungilo in esecuzione all'avvio con update-rc.d vncd start 99 2 3 4 5 . stop 1 0 1 6 .
L'opzione bootmisc.sh è da scartare poichè questo script viene eseguito troppo presto.
;20357479']Sto modificando un paio di cose... tra poco riposto la soluzione...
Ci pensi tu a spiegare come modificare il login manager ?
EDIT:
azz Gimli, ma che fai colazione a bash inzuppato nel latte ?
Non può modificare il gdm.conf per accettare connessioni tcp e mettere in inetd l'avvio del vnc quando uno ne fa richiesta ?
Gimli[2BV!2B]
02-01-2008, 16:04
Delle modifiche del gdm.conf non sapevo, puoi postare anche questa opzione?
Probabilmente ora che ci penso questo script andrebbe avviato più tardi del momento in cui partirebbe con le opzioni di default, dopo il gdm/kdm appunto.
Ora guardo quest'ultimo dettaglio... Sistemato.
Avevo trovato tempo fa una guidina in internet al riguardo.
Adesa a la cat fora. ;)
Ecco qua:
Scopo
Configurare un server vnc autonomo per controllo remoto, e configurare
il servizio in modo che sia avviato da inetd.
A. Materiale Necessario
sul host che farà da server vnc sono necessari vncserver e (demone ssh
che dovresti già avere)
apt-get install vnc4server
(apt-get install sshd)
B. Configurazione
La configurazione coinvolge login manager (gdm in questo caso) e inetd
1. è necessario modificare /etc/gdm/gdm.conf in modo che accetti
connesioni via tcp, i.e.
nella sezione [xdmcp]
acommentare la linea Enable=true
(*NOTA) questo permette di connettersi al login via la porta :177 indi è
meglio che suddetta porta sia firewallata (la sessione vnc sarà
inoltrata via tunnel ssh sul host, per cui la connessione vnc<-->gdm
avviene localmente)
2. configura il buon vecchio internet super demone (inetd) in modo da
avviare un server vnc ogni qualvolta che un cliente vnc si connette alla
porta 5950, più clienti avranno diverse sessioni vnc
(*NOTA) vnc per associare porta a #display utilizza la regola porta=5900
+#display e.g. #display 50 --> porta 5950
si aggiunge in coda al file /etc/inetd.cof facendolo seguire da una riga
vuota (ciò che segue a dispetto di evolution è tutto su una riga)
5950 stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd -geometry
800x600 -depth 16 -query localhost -once -securitytypes=none
(*NOTE) le opzioni più significative
-nowait alloca per ogni cliente una nuova sessione, i.e. nessun altro
utente può vedere la tua sessione vnc, per contro quando mi disconnetto
da vnc viene anche terminata la mia sessione di lavoro non è possibile
disconnettersi e riconnettersi alla stessa sessione di lavoro
-query localhost effettua la richiesta di login al gdm locale
-securitytypes=none elimina l'autenticazione di vnc (l'autenticazione
viene comunque effettuata a livello di ssh prima e di login poi - la cui
password viaggia, grazie ad ssh, criptata)
Per utilizzare il servervnc in modalità persistente, i.e.
disconnettendosi e riconnettendosi alla stessa sessione di lavoro (la
porta su cui è attivo il servizio sarà legata ad una sola sessione) è
necessario utilizzare l'opzione wait ed abilitare l'autenticazione vnc,
per evitare hijiaking della sessione, si aggiunge in coda al
file /etc/inetd.cof facendolo seguire da una riga vuota (al solito ciò
che segue a dispetto di evolution è tutto su una riga)
5951 stream tcp wait mfabbri /usr/bin/Xvnc Xvnc -inetd -query
localhost -once passwordFile=/home/mfabbri/.vnc/passwd
dove mfabbri è l'utente per cui vogliamo avere la sessione persistente
(in questa configurazione sarà necessario avere una riga per ogni utente
di cui si vuole abilitare la sessione persistente)
Una volta apportate le modifiche a inetd.conf per fare ricaricare ad
inetd suddetto file è necessario inviare il segnale di hang up SIGHUP
i.e.
sudo killall -SIGHUP inetd
Per generare il passwordFile /home/mfabbri/.vnc/passwd è necessario
eseguire il comando vncpasswd (in questo caso come utente mfabbri)
C. Esecuzione
Sul computer da cui si vuole controllare il server remoto $PIPPOSERVER
eseguire
vncviewer -via $PIPPOSERVER :50
per la sessione persistente invece
vncviewer -via $PIPPOSERVER :51
se il visualizzatore vnc non supporta l'opzione via si può ovviare
eseguendo su una console
ssh -L 5950:mfabbri a localhost:5950 $PIPPOSERVER
e su un altra console
vncviewer :50
Gimli[2BV!2B]
02-01-2008, 16:56
Ok, ho testato il mio script e funziona, grazie dell'opzione gdm+inetd!
Ora vediamo cosa sceglie il Nick...
;20359268']
Ora vediamo cosa sceglie il Nick...
Windows Home Server (http://www.hwupgrade.it/news/software/problemi-per-chi-utilizza-microsoft-windows-home-server_23727.html)
:rotfl:
Avevo trovato tempo fa una guidina in internet al riguardo.
Adesa a la cat fora. ;)
Ecco qua:
Scopo
Configurare un server vnc autonomo per controllo remoto, e configurare
il servizio in modo che sia avviato da inetd.
A. Materiale Necessario
sul host che farà da server vnc sono necessari vncserver e (demone ssh
che dovresti già avere)
apt-get install vnc4server
(apt-get install sshd)
B. Configurazione
La configurazione coinvolge login manager (gdm in questo caso) e inetd
1. è necessario modificare /etc/gdm/gdm.conf in modo che accetti
connesioni via tcp, i.e.
nella sezione [xdmcp]
acommentare la linea Enable=true
(*NOTA) questo permette di connettersi al login via la porta :177 indi è
meglio che suddetta porta sia firewallata (la sessione vnc sarà
inoltrata via tunnel ssh sul host, per cui la connessione vnc<-->gdm
avviene localmente)
2. configura il buon vecchio internet super demone (inetd) in modo da
avviare un server vnc ogni qualvolta che un cliente vnc si connette alla
porta 5950, più clienti avranno diverse sessioni vnc
(*NOTA) vnc per associare porta a #display utilizza la regola porta=5900
+#display e.g. #display 50 --> porta 5950
si aggiunge in coda al file /etc/inetd.cof facendolo seguire da una riga
vuota (ciò che segue a dispetto di evolution è tutto su una riga)
5950 stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd -geometry
800x600 -depth 16 -query localhost -once -securitytypes=none
(*NOTE) le opzioni più significative
-nowait alloca per ogni cliente una nuova sessione, i.e. nessun altro
utente può vedere la tua sessione vnc, per contro quando mi disconnetto
da vnc viene anche terminata la mia sessione di lavoro non è possibile
disconnettersi e riconnettersi alla stessa sessione di lavoro
-query localhost effettua la richiesta di login al gdm locale
-securitytypes=none elimina l'autenticazione di vnc (l'autenticazione
viene comunque effettuata a livello di ssh prima e di login poi - la cui
password viaggia, grazie ad ssh, criptata)
Per utilizzare il servervnc in modalità persistente, i.e.
disconnettendosi e riconnettendosi alla stessa sessione di lavoro (la
porta su cui è attivo il servizio sarà legata ad una sola sessione) è
necessario utilizzare l'opzione wait ed abilitare l'autenticazione vnc,
per evitare hijiaking della sessione, si aggiunge in coda al
file /etc/inetd.cof facendolo seguire da una riga vuota (al solito ciò
che segue a dispetto di evolution è tutto su una riga)
5951 stream tcp wait mfabbri /usr/bin/Xvnc Xvnc -inetd -query
localhost -once passwordFile=/home/mfabbri/.vnc/passwd
dove mfabbri è l'utente per cui vogliamo avere la sessione persistente
(in questa configurazione sarà necessario avere una riga per ogni utente
di cui si vuole abilitare la sessione persistente)
Una volta apportate le modifiche a inetd.conf per fare ricaricare ad
inetd suddetto file è necessario inviare il segnale di hang up SIGHUP
i.e.
sudo killall -SIGHUP inetd
Per generare il passwordFile /home/mfabbri/.vnc/passwd è necessario
eseguire il comando vncpasswd (in questo caso come utente mfabbri)
C. Esecuzione
Sul computer da cui si vuole controllare il server remoto $PIPPOSERVER
eseguire
vncviewer -via $PIPPOSERVER :50
per la sessione persistente invece
vncviewer -via $PIPPOSERVER :51
se il visualizzatore vnc non supporta l'opzione via si può ovviare
eseguendo su una console
ssh -L 5950:mfabbri a localhost:5950 $PIPPOSERVER
e su un altra console
vncviewer :50
ciao...mi interesserebbe collegarmi con Thight vnc ad un server ubuntu ho seguito le tue indicazioni ma ho difficolta'.
in pratica voglio utilizzare come da domanda originale l'autenticazione direttamente con l'apertura di vnc e non dopo aver fatto il login...forse sbagliao qualcosa..mi puoi aiutare?
grazie mille
io ho usato il programma di controllo remoto preinstallato sul "server" ubuntu e ultra vnc sul client xp e tutto funziona egregiamente, unica accortezza come fatto gia notare e settare il login automatico su ubuntu.
io ho usato il programma di controllo remoto preinstallato sul "server" ubuntu e ultra vnc sul client xp e tutto funziona egregiamente, unica accortezza come fatto gia notare e settare il login automatico su ubuntu.
cioe' tu hai solo settano til login automatico? pero' mi piacerebbe fare sempr eil login per motivi di sicurezza.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.