frame

Sveiki apsilankę!

Jei forume lankaisi pirmą kartą, kviečiame registruotis ir prisijungti prie diskusijų.

Prisijungti Registruotis

GNOME arba LXDE darbastalio aplinkos su VNC serveriu diegimas Ubuntu 12.04 aplinkoje

IV_VygandasSIV_VygandasS Serverių ekspertas (-ė)
edited gruodžio 13 Į Kitos aplikacijos
Šioje pamokoje aprašysime kaip Ubuntu operacinėje sistemoje įdiegti GNOME arba LXDE darbastalio aplinką su VNC serveriu ir atlikti VNC serverio konfigūravimą.

VNC - nuotolinį darbastalio dalinimąsi įgalinanti sistema, naudojanti RFB protokolą.

Ši pamoka yra ištestuota ant Ubuntu 12.04 versijos.

1. GNOME arba LXDE aplinkos įdiegimas

1.1. Pradžiai atsinaujiname repozitorijas:
vi /etc/apt/sources.list

Ubuntu 12.04 versijos atveju pakeičiame sources.list failo turinį į:
deb http://ubuntu-archive.mirror.serveriai.lt/ precise main restricted universe
deb http://ubuntu-archive.mirror.serveriai.lt/ precise-updates main restricted universe
deb http://ubuntu-archive.mirror.serveriai.lt/ precise-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu precise partner

1.2. Atnaujiname apt įrankį ir visos sistemos paketus:
apt-get update
apt-get upgrade

1.3. Įdiegiame GNOME arba LXDE ir reikalingus šriftų paketus:
  • Jeigu GNOME
apt-get install gnome-core xfonts-100dpi xfonts-100dpi-transcoded xfonts-75dpi xfonts-75dpi-transcoded xfonts-base
  • Jeigu LXDE
apt-get install lxde xfonts-100dpi xfonts-100dpi-transcoded xfonts-75dpi xfonts-75dpi-transcoded xfonts-base

1.4. Jeigu vykdant 1.3. punkte nurodytą komandą yra gaunamas "E: Sub-process /usr/bin/dpkg returned an error code (1)"

Ištriname /var/lib/dpkg/info/ katalogo turinį:
rm /var/lib/dpkg/info/*

Ir vykdome 1.3. punkte nurodytą komandą dar kartą.

1.5. Pašaliname NetworkManager:
apt-get remove network-manager

2. vnc4server įdiegimas ir konfigūravimas

2.1. Įdiegiame vnc4server bei pagal pasirinkimą pageidaujamą teksto redagavimo įrankį, šiuo atveju tai būtų nano:
apt-get install vnc4server nano

2.2. Sukuriame vartotoją, kurio vardu veiks mūsų darbastalis:
adduser vncuser

2.3. Sukūrus vartotoją, sukuriame VNC serverio konfigūracinį failą, kuriame bus nurodoma kokie vartotojai galės prisijungti bei kokia ekrano raiška bus naudojama. Ekrano raišką galime pasirinkti pagal mūsų poreikius. Kelios dažniau naudojamos galimo ekrano raiškos: 1024x768 1680x1050 1920x1080.
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
nano /etc/vncserver/vncservers.conf

Į vncservers.conf failą įterpiame šį kodą:
VNCSERVERS="1:vncuser"
VNCSERVERARGS[1]="-geometry 1024x768"

2.4. Kadangi mes norėsime, kad VNC serveris startuotų perkrovus mūsų serverį, sukuriame jam tarnybą. Tam iš pradžių sukuriame /etc/init.d/vncserver failą:
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
nano /etc/init.d/vncserver

Įterpiame į /etc/init.d/vncserver failą žemiau nurodytą skripto kodą:
#!/bin/bash
### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: vnc server
# Description:
#
### END INIT INFO

unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"

start() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Starting $prog: "
 ulimit -S -c 0 >/dev/null 2>&1
 RETVAL=0
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 DISP="${display%%:*}"
 export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
 su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
 fi
 done
}

stop() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Shutting down VNCServer: "
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 export USER="${display##*:}"
 su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
 fi
 done
 echo -e "\n"
 echo "VNCServer Stopped"
}

case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

2.5. Įrašome VNC serverio tarnybą:
update-rc.d vncserver defaults 99

2.6. Priskiriame prisijungimui prie VNC serverio skirtam vartotojui slaptažodį:
su vncuser
vncpasswd

2.7. Norint sukurti konfigūracinį failą, paleidžiame ir sustabdome VNC serverį:
vncserver :1; vncserver -kill :1

2.8. Norint kad GNOME arba LXDE būtų užkrautas prisijungus prie serverio, redaguojame sugeneruotą konfigūracinį failą:
nano ~/.vnc/xstartup

Pakeičiame failo turinį į šį:
  • Jeigu GNOME
#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
gnome-session --session=gnome-classic &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# x-window-manager &
  • Jeigu LXDE
#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
lxsession -s LXDE &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# x-window-manager &

2.9. Bei grįžtame į root vartotojo eilutę:
exit

2.10. Paleidžiame VNC tarnybą:
service vncserver start

3. Prisijungimas prie VNC serverio

Prisijungimui prie mūsų VNC serverio mums bus reikalingas VNC klientas. Išvengiant papildomos programinės įrangos diegimo į mūsų kompiuterį šiuo atveju naudosime Google Chrome papildinį VNC Viewer.

Bendru atveju galima naudoti bet kurį VNC klientą, atsižvelgiant į mūsų poreikius. Pvz.:

TightVNC klientas Windows operacinei sistemai;
TigerVNC klientas Windows operacinei sistemai.

Jungiantis prie mūsų serverio atsižvelgiant į diegimo metu taikytą konfigūraciją mums reikės nurodyti prievadą į kurį bus jungiamasi, kuris šiuo atveju yra 5901.
Taigi jungiantis prie serverio reikės nurodyti šią informaciją: <serverio_IP_adresas>:5901

4. Naujo vartotojo pridėjimas VNC serveriui

4.1. Pridedame naują vartotoją:
adduser vncuser2

4.2. Redaguojame /etc/vncserver/vncservers.conf konfigūracinį failą:
nano /etc/vncserver/vncservers.conf

Pakeičiame VNCSERVERS eilutę į šią:
VNCSERVERS="1:vncuser 2:vncuser2"

Ir pridedame šią eilutę:
VNCSERVERARGS[2]="-geometry 1024x768"

4.3. Atlikus konfigūracinio failo redagavimą, naujam vartotojui priskiriame VNC susijungimui skirtą slaptažodį:
su vncuser2
vncpasswd

4.4. Paleidžiame ir sustabdome VNC serverį skirtą antram darbastaliui:
vncserver :2; vncserver -kill :2

4.5. Redaguojame xstartup konfigūracinį failą:
nano ~/.vnc/xstartup

Pakeičiame xstartup failo turinį į šį:
  • Jeigu GNOME
#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
gnome-session --session=gnome-classic &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# x-window-manager &
  • Jeigu LXDE
#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
lxsession -s LXDE &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# x-window-manager &

4.6. Grįžtame į root vartotojo komandinę eilutę:
exit

4.7. Perkrauname VNC serverį:
service vncserver restart

Naujai sukurtas vartotojas prie mūsų serverio galės prisijungti nurodant 5902 prievadą.
Taigi jungiantis mums bus reikalinga nurodyti šią informaciją: <serverio_IP_adresas>:5902
Pažymėtos temos:
Norėdami palikti komentarą, turite prisijungti arba registruokis.