Results 1 to 10 of 69

Thread: HOWTO: Set up VNC server with resumable sessions - KUBUNTU VERSION

Threaded View

  1. #1
    Join Date
    Oct 2005
    Beans
    245
    Distro
    Ubuntu 10.04 Lucid Lynx

    HOWTO: Set up VNC server with resumable sessions - KUBUNTU VERSION

    This guide is very similar to the Gnome Ubuntu HOWTO, located here:

    http://ubuntuforums.org/showthread.php?t=122402

    I have borrowed a lot of the notes from that author, only changing things to work for Kubuntu users. Most of the credit for the info goes to the author of that post. If you are having problems, I strongly recommend browsing through that thread first.

    This guide is intended for Kubuntu users, and details how to enable Xdmcp for your KDE session. It was written using Kubuntu 6.06 (i386) as a reference. In the steps, I use kate as the text editor, but you can use whatever editor you prefer. In reality I use vi, but most people don't know vi commands so I stick with kate in these examples.

    Required packages:

    To make sure you have the proper software installed, execute the following:

    Type in a terminal:
    Code:
    sudo apt-get install vnc4server xinetd xvncviewer
    The latest versions are:
    vnc4server: Xvnc Free Edition 4.1.1
    xinetd: xinetd Version 2.3.14 libwrap loadavg
    xvncviewer: VNC viewer version 3.3.7 - built Feb 20 2006 12:04:05

    If you're using previous versions of any of these packages, there's no guarantee this will work. (Actually, there's no guarantee this will work anyway, but if you use versions below what I indicated, then you're just making it harder on yourself )

    WARNING: Make sure you install vnc4server and NOT vncserver. These packages ARE different, and the latter will NOT work correctly.

    Note to AMD64 users: The current version of vnc4server in the repositories has a bug, so you need to download and install the fixed vnc4 packages as shown below:
    Code:
    wget http://qt1.iq.usp.br/download/vnc4server_4.0-7.3_amd64.deb
    wget http://qt1.iq.usp.br/download/xvnc4viewer_4.0-7.3_amd64.deb
    sudo dpkg -i vnc4server_4.0-7.3_amd64.deb
    sudo dpkg -i xvnc4viewer_4.0-7.3_amd64.deb
    THE STEPS:

    1. ENABLE XDMCP IN KDE

    Type in a terminal:
    Code:
    sudo kate /etc/kde3/kdm/kdmrc
    At the very bottom of the file, you'll see this section:

    Code:
    [Xdmcp]
    Enable=false
    Willing=/etc/kde3/kdm/Xwilling
    Change it to look exactly like this:
    Code:
    [Xdmcp]
    Enable=true
    Port=177
    Xaccess=/etc/kde3/kdm/Xaccess
    Willing=/etc/kde3/kdm/Xwilling
    Save the file and quit. Then type this in your terminal:

    Code:
    sudo kate /etc/kde3/kdm/Xaccess
    This is a big file and can be confusing, so make sure you do this exactly as shown. Scroll down and find this line:

    Code:
    #*                                       #any host can get a login window
    Remove the # from the beginning of that line, so it looks like this:

    Code:
    *                                       #any host can get a login window
    Then find this line:
    Code:
    #*               CHOOSER BROADCAST       #any indirect host can get a chooser
    Remove the # from the beginning of that line, so it looks like this:
    Code:
    *               CHOOSER BROADCAST       #any indirect host can get a chooser
    Save the file and quit out of KATE.

    Now we need to restart the KDM process so it will re-read the configuration file. The easiest way to do this is to just reboot the machine. The quickest is to do the following:

    Code:
    ps -ef | grep kdm
    This will print out a list of processes with the letters 'kdm' in the name. Find the one that looks like the following (Specifically the one that ends in /usr/bin/kdm):

    Code:
    root    4530      1     0 0:09:20 ?          00:00:00 /usr/bin/kdm
    See the number right after root? 4530 in my example, you will almost certainly have a different number. That's the process ID or PID. Type the following command to restart kdm (Substituting the PID number you have for the 4530 in my example):

    Code:
    sudo kill -HUP 4530

    2. SET THE VNC PASSWORD

    Type this in a terminal:
    Code:
    sudo vncpasswd /root/.vncpasswd

    3. ADD VNC SERVICE TO XINETD

    Type this in a terminal:
    Code:
    sudo kate /etc/xinetd.d/Xvnc
    Enter this in to the new file:
    Code:
    service Xvnc
    {
            type = UNLISTED
            disable = no
            socket_type = stream
            protocol = tcp
            wait = yes
            user = root
            server = /usr/bin/Xvnc
            server_args = -inetd :1 -query localhost -geometry 1024x768 -depth 16 -once -fp /usr/share/X11/fonts/misc -DisconnectClients=0 -NeverShared passwordFile=/root/.vncpasswd
            port = 5901
    }
    I recommend leaving all of that code alone, but you can safely change the 1024x768 to be a bigger or smaller resolution for your Xvnc window, depending on what you want. You can also change the depth, but understand that increasing the depth bits will cause more bandwidth to be used over your network, which could slow down your VNC experience considerably.


    4. RESTART XINETD

    If the following code does not work, try rebooting:
    Code:
    sudo /etc/init.d/xinetd stop
    sudo killall Xvnc
    sudo /etc/init.d/xinetd start
    Don't worry if you see a message like "Xvnc: no process killed". This just means there was no open, active session of VNC running at the time. This is expected and is normal.


    5. TEST

    If you followed all of the above steps correctly, you should now be able to test your VNC server. Type the following in a terminal:
    Code:
    vncviewer localhost:1
    You should be prompted for the VNC password, and then see the KDM login screen where you can login and start a new X session. If that works, you can now go ahead and try to connect from remote machine using your favorite VNC client (remember to first close the local vncviewer we started above). Remember to use the VNC server machine's domain name or IP address, followed by :1 (e.g. 192.168.0.100:1). If connecting locally as shown above works, but connecting remotely fails, then this means you have a problem with a firewall which is blocking some ports. See the notes below about how to deal with that.

    Note about ports: The VNC server set up as shown uses TCP port 5901. If you are using firewall software (e.g. firestarter) on that machine, you need to allow incoming connections on this port. If you are using a router which assigns your machine a private address (e.g. 192.168.0.100) which is not accessible from the internet, then you need to forward TCP port 5901 from the router to this machine.

    Note about security: This setup allows any user to start an X-session remotely by logging in using his regular password (after starting the VNC connection using the VNC password), so if the user disconnects without logging out, any other user which knows the VNC password can connect afterwards and resume the same session that the first user started. So if you do not want to log out before disconnecting, it's advisable to at least lock your VNC X-session screen. Also note that while a remote user is connected thru VNC, no other connection will be accepted. An idle VNC client will be disconnected after one hour, but this can be changed by using the "-IdleTimeout" option in the server_args line in /etc/xinetd.d/Xvnc. For example, you can add "-IdleTimeout 300" to change it to 5 minutes.


    reference links:
    Gnome VNC howto: http://ubuntuforums.org/showthread.php?t=122402
    Xdmcp in kdm: http://klomdark.servebeer.com:8081/M...px?MsgNum=1967


    Good luck!
    Last edited by paperdiesel; September 29th, 2006 at 07:22 PM.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •