Удалённый доступ через VNC

From wiki.habital.lv
Jump to navigation Jump to search

Для удалённого доступа на компьютер с использованием графической консоли можно воспользоваться пакетами VNC-программ (см. Virtual Network Computing) Возможно, что проще всего настроить доступ к VNC-серверу посредством inetd. Для этого надо добавить в файл "/etc/inetd.conf" следующую строчку:

vnc5900 stream  tcp     nowait  nobody  /usr/bin/Xvnc   Xvnc -inetd -query localhost -once securitytypes=none

Чтобы системе был известен сервис с названием "vnc5900", надо добавить его в файл "/etc/services":

vnc5900         5900/tcp

Далее. Надо добавить запуск xdm и сделать несколько изменений в настройках файлов "Xaccess" и "xdm-config":

  • в файле "Xaccess" зарешить всем хостам доступ к "login window":
*                                       #any host can get a login window
  • в файле "xdm-config":
!DisplayManager.requestPort:    0

Кроме того, для менеджера "kdm" в файле "kdmrc" сделать следующие изменения:

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=true
# The UDP port on which KDM should listen for XDMCP requests. Do not change.
# Default is 177
Port=177

Добвить, если этого ещё нет, запуск xdm в "init.d". Для дистрибутивов "Slackware", "Slamd64" файла "rc.xdm" нет.

  • Файл rc.xdm:
#!/bin/sh
# xdm start/stop script for RedHat based systems
#
# chkconfig: 234 60 60
# description: xdm permits remote users to logon to this X display
# processname: /usr/X11R6/bin/xdm
# config: /etc/X11/xdm/xdm-config

# source function library
. /etc/rc.d/init.d/functions

[ -x /usr/bin/xdm ] || exit 0
 
prog=/usr/bin/xdm

RETVAL=0

start () {
       echo -n $"Starting $prog: "
       # start daemon
       daemon $prog
       RETVAL=$?
       echo
       [ $RETVAL = 0 ] && touch /var/lock/subsys/xdm
       return $RETVAL
}

stop () {
       echo -n $"Stopping $prog: "
       killproc $prog
       RETVAL=$?
       echo
       [ $RETVAL = 0 ] && rm -f /var/lock/subsys/xdm
       return $RETVAL
}

restart () {
       stop
       start
       RETVAL=$?
       return $RETVAL
}

# See how we were called.
case "$1" in
        start)
       start
       ;;
        stop)
       stop
       ;;
        status)
       status $prog
       RETVAL=$?
       ;;
        restart)
       restart
       ;;
        condrestart)
       # only restart if it is already running
       [ -f /var/lock/subsys/xdm ] && restart || :
       ;;
        reload)
       echo -n $"Reloading $prog: "
       killproc $prog -HUP
       RETVAL=$?
       echo
       ;;
        *)
            echo $"Usage: $0 (start|stop|restart|condrestart|reload|status)"
            RETVAL=1
esac

exit $RETVAL

Примечание: Удалённый доступ на компьютер с помощью VNC является небезопасным. Для защищённого доступа можно использовать например ssh-туннель.