JUSTUS2/Visualization: Difference between revisions
K Siegmund (talk | contribs) No edit summary |
|||
(166 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
= TigerVNC = |
|||
{|{{Softwarebox}} |
|||
|- |
|||
! colspan="2" style="text-align:center" | TigerVNC |
|||
|- |
|||
| module load |
|||
| vis/tigervnc |
|||
|- |
|||
| License |
|||
| GPL |
|||
|- |
|||
| Links |
|||
| [http://www.tigervnc.org TigerVNC Homepage] |
|||
| |
|||
|- |
|||
| Graphical Interface |
|||
| No |
|||
|} |
|||
'''TigerVNC''' is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows |
|||
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can |
|||
be used if a graphical software feels slow and has bad responsiveness. |
|||
= Description = |
|||
Virtual Network Computing (VNC) is a protocol to use a virtual desktop on a server on your local computer. It allows you to launch and use graphical applications on remote machines. |
|||
First, you need to start the VNC server on the bwUniCluster. Therefore you must log into the bwUniCluster with your username and password as usual. |
|||
You should not start the server on a login node but request an interactive job using for example the following command. |
|||
$ msub -v HOME,TERM,USER,DISPLAY -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00 |
|||
TigerVNC is a high-performance implementation of VNC and is installed on JUSTUS2 as the [[Software Module]] vis/tigervnc |
|||
On your assigned compute node start the VNC server with |
|||
= Overview = |
|||
You will need to do the following steps to use VNC on the cluster: |
|||
* start a vnc server on the cluster - This will create a virtual desktop on that node |
|||
* make an ssh tunnel to allow outside access for yourself to the server |
|||
* use a vnc client on your home desktop to connect to the virtual desktop |
|||
* kill the vnc server after you finshed |
|||
= VNC Server = |
|||
First, you have to start the VNC Server on the cluster. The startup procedure depends on the cluster and hardware you are using. |
|||
The commands below will also work on the login nodes, but if you want to do graphically intensive tasks such as visualizing systems of molecules you should use the visualization nodes with high-performance graphics cards. Note: To actually use the graphics cards on the vis nodes, you will have to put the command "vglrun" before the graphical command you want to run accelerated on the graphic cards. |
|||
To start a VNC Server on a visualization node you must log into one of these nodes via SSH using your username and password: |
|||
$ ssh <UserID>@justus2-vis.uni-ulm.de |
|||
Subsequently, use the following commands to start the VNC Server: |
|||
$ module load vis/tigervnc |
$ module load vis/tigervnc |
||
$ run_vncserver |
$ run_vncserver |
||
If you start a VNC server for the first time you will be asked to set a password which will be required for clients trying to access your VNC desktop. '''Use a strong password because otherwise an attacker could take control of your VNC session.''' |
|||
The script prints detailed instructions on how to establish the connection to the VNC server from your local computer. They depend on whether you |
|||
use Windows or Linux and if you work with TightVNC Java Viewer which is a tool that can simplify the process a little bit but needs at least Java version 1.6 to run. Therefore the next steps are |
|||
divided into 3 cases. Each command should be issued on the local computer. |
|||
If you start a VNC Server for the first time you will be asked to set a password which will be required for clients trying to access your VNC desktop. '''Use a strong password because otherwise an attacker could take control of your VNC session.''' |
|||
* '''Login with TightVNC Java Viewer''' <br />Needed Software: [http://www.tightvnc.com/download.php TightVNC Java Viewer], Java<br /> Open TightVNC Java Viewer (the executable is called tightvnc-jviewer.jar), check "Use SSH tunneling" and fill in the parameters provided by the ''run_vncserver'' script. Now you can click on the "Connect" button and enter your passwords. |
|||
The VNC server will open a virtual display with a display number. It will e.g. be called ":01" |
|||
= Create a Tunnel = |
|||
* VNC port: The connection port is on 59XX. A display :01 will have port 5901, a display :02 will have port 5902 etc. |
|||
The script <code>run_vncserver </code> gives you instructions on how to create the tunnel. It will fill in the correct user name and port for your case. |
|||
* '''Linux/Unix Commandline''' |
|||
<code>ssh -fCL port:localhost:port user@justus2-login03.rz.uni-ulm.de</code> |
|||
-f: sends the ssh into the background # note that you will have to kill the ssh session if you use this option |
|||
-C: compress all data |
|||
-L local_port:host:hostport: "local" port forwarding. The port on the remote machine can be accessed on the machine from where you run ssh |
|||
If you have to go via more than one linux machine, you can chain several of these ssh tunnels. |
|||
* '''Putty on Windows ''' |
|||
<code> Connection -> SSH -> Tunnels</code> |
|||
Source Port: 59XX |
|||
Destination: justus2-login03.rz.uni-ulm.de:59XX |
|||
* ''' TightVNC (Java Client) ''' |
|||
This client (and only the Java version of the client!) allows to configure ssh tunneling as part of opening the VNC connection. See description in the following client section |
|||
= VNC Client = |
|||
The startup script of the VNC Server should have printed out detailed instructions about how to establish a connection to the VNC Server from your local computer. These instructions depend on the operating system (e.g., Linux/macOS, MS Windows) you are using and if you work with TurboVNC Java Viewer which is a tool that can simplify the handling but needs the Java Development Kit (JDK) to run. Therefore, the next steps are divided into three cases. The commands should be executed on the local computer. |
|||
* '''Login using TurboVNC Java Viewer''' <br />Needed software: [http://turbovnc.org/ TurboVNC], JDK<br /> Open the TurboVNC Java Viewer and navigate to Options... -> Security -> Gateway to fill in the parameters provided by the ''run_vncserver'' script. You can save these settings in the "Global" tab if you want to. Subsequently, click "OK" and connect to the cluster by supplying the VNC Server as given to you by ''run_vncserver''. Before the connection is established, you should be prompted for your SSH and VNC password, respectively. |
|||
{| style="width: 100%; border-spacing: 20px;" |
|||
| [[File:turbovnc.jpg|left|500px]] |
|||
|} |
|||
* '''TigerVNCLinux Debian-based''' <code>sudo apt install tigervnc-viewer</code> fill in information supplied by ''run_vncserver'', e.g. <code>xtigervncviewer :3</code> |
|||
* '''Login using TightVNC Java Viewer''' <br />Needed software: [http://www.tightvnc.com/download.php TightVNC] <br />Start the TightVNC Viewer: On Linux, open a terminal and execute the following command: <code>$ java -jar tightvnc-jviewer.jar</code>. On Windows, just double-click ''tightvnc-jviewer.jar'' in the Windows Explorer. <br />Fill in the parameters given to you by the ''run_vncserver'' script (see example below), add your username at SSH User, and press connect to establish a VNC session. |
|||
{| style="width: 100%; border-spacing: 20px;" |
|||
| [[File:TightVNC.png|left|500px]] |
|||
|} |
|||
* '''Login without TurboVNC Java Viewer for Linux users''' <br />Needed software: A VNC Client such as TurboVNC <br />A SSH tunnel must be created with the command given to you by the ''run_vncserver'' script, e.g.: <code>$ ssh -fCL 5903:localhost:5903 <UserID>@justus2-vis01.rz.uni-ulm.de</code> <br />Start your VNC Client and connect to localhost:n, where n is the display number, using the command given to you by the ''run_vncserver'' script. E.g.: <code>$ vncviewer localhost:3</code> |
|||
* '''Login without TurboVNC Java Viewer for Windows users'''<br />Needed software: [https://tigervnc.org/ TigerVNC], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty] <br />Start Putty and navigate to Connection -> SSH -> Tunnels to fill in the parameters provided by the ''run_vncserver'' script. Subsequently, clicked "Add" and navigate to Session to connect with the cluster using your username and password. Once the connection is established, start the TigerVNC Client and connect to localhost:n, where n is the display number provided by ''run_vncserver''. |
|||
<br> |
|||
= OpenGL applications within VNC sessions = |
|||
Executing an OpenGL program during a 3D accelerated VNC session will issue an error. In order to fix this, open a terminal window and run your application through the VirtualGL wrapper using the vglrun command like in the following example for the benchmark application glxgears: |
|||
<pre> |
|||
$ vglrun glxgears -info |
|||
</pre> |
|||
* '''Login without TightVNC Java Viewer for Linux users'''<br />Needed Software: A VNC viewer such as tigervnc, gvncviewer or tightvnc<br />A tunnel must be created with the ssh command given by the ''run_vncserver'' script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by ''run_vncserver'', using a command such like this<br /><pre>$ vncviewer localhost:1</pre> |
|||
= Shutdown your VNC session = |
|||
* '''Login without TightVNC Java Viewer for Windows users'''<br />Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]<br />You need to start Putty and go to Connection -> SSH -> Tunnels. Choose "IPv4" and fill in the parameters provided by ''run_vncserver''. After you clicked "Add" you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start the tigervnc client and connect to localhost:n where n is the display number printed by ''run_vncserver''. |
|||
To exit your VNC session it is not sufficient to only close the VNC viewer, since this will not terminate the VNC Server. The VNC Server will keep running and you will run into problems when you try to start a new VNC session later on. Please use the "log out" function of the desktop environment inside the VNC session, this will terminate the VNC server properly. Alternatively, you can terminate the VNC Server on the compute cluster using |
|||
== Shutdown == |
|||
<pre> |
|||
If you want to exit your VNC session don't just close the window because then the VNC server won't terminate and you will run into problems |
|||
$ vncserver -kill :n |
|||
when you try to start a new VNC session later. If you log out of Gnome properly the VNC server will terminate automatically. |
|||
</pre> |
|||
[[Category:visualization]][[Category:bwUniCluster]] |
|||
with n specifying the display number. |
Latest revision as of 10:39, 21 May 2024
Description
Virtual Network Computing (VNC) is a protocol to use a virtual desktop on a server on your local computer. It allows you to launch and use graphical applications on remote machines.
TigerVNC is a high-performance implementation of VNC and is installed on JUSTUS2 as the Software Module vis/tigervnc
Overview
You will need to do the following steps to use VNC on the cluster:
- start a vnc server on the cluster - This will create a virtual desktop on that node
- make an ssh tunnel to allow outside access for yourself to the server
- use a vnc client on your home desktop to connect to the virtual desktop
- kill the vnc server after you finshed
VNC Server
First, you have to start the VNC Server on the cluster. The startup procedure depends on the cluster and hardware you are using.
The commands below will also work on the login nodes, but if you want to do graphically intensive tasks such as visualizing systems of molecules you should use the visualization nodes with high-performance graphics cards. Note: To actually use the graphics cards on the vis nodes, you will have to put the command "vglrun" before the graphical command you want to run accelerated on the graphic cards.
To start a VNC Server on a visualization node you must log into one of these nodes via SSH using your username and password:
$ ssh <UserID>@justus2-vis.uni-ulm.de
Subsequently, use the following commands to start the VNC Server:
$ module load vis/tigervnc $ run_vncserver
If you start a VNC Server for the first time you will be asked to set a password which will be required for clients trying to access your VNC desktop. Use a strong password because otherwise an attacker could take control of your VNC session.
The VNC server will open a virtual display with a display number. It will e.g. be called ":01"
Create a Tunnel
- VNC port: The connection port is on 59XX. A display :01 will have port 5901, a display :02 will have port 5902 etc.
The script run_vncserver
gives you instructions on how to create the tunnel. It will fill in the correct user name and port for your case.
- Linux/Unix Commandline
ssh -fCL port:localhost:port user@justus2-login03.rz.uni-ulm.de
-f: sends the ssh into the background # note that you will have to kill the ssh session if you use this option
-C: compress all data
-L local_port:host:hostport: "local" port forwarding. The port on the remote machine can be accessed on the machine from where you run ssh
If you have to go via more than one linux machine, you can chain several of these ssh tunnels.
- Putty on Windows
Connection -> SSH -> Tunnels
Source Port: 59XX
Destination: justus2-login03.rz.uni-ulm.de:59XX
- TightVNC (Java Client)
This client (and only the Java version of the client!) allows to configure ssh tunneling as part of opening the VNC connection. See description in the following client section
VNC Client
The startup script of the VNC Server should have printed out detailed instructions about how to establish a connection to the VNC Server from your local computer. These instructions depend on the operating system (e.g., Linux/macOS, MS Windows) you are using and if you work with TurboVNC Java Viewer which is a tool that can simplify the handling but needs the Java Development Kit (JDK) to run. Therefore, the next steps are divided into three cases. The commands should be executed on the local computer.
- Login using TurboVNC Java Viewer
Needed software: TurboVNC, JDK
Open the TurboVNC Java Viewer and navigate to Options... -> Security -> Gateway to fill in the parameters provided by the run_vncserver script. You can save these settings in the "Global" tab if you want to. Subsequently, click "OK" and connect to the cluster by supplying the VNC Server as given to you by run_vncserver. Before the connection is established, you should be prompted for your SSH and VNC password, respectively.
- TigerVNCLinux Debian-based
sudo apt install tigervnc-viewer
fill in information supplied by run_vncserver, e.g.xtigervncviewer :3
- Login using TightVNC Java Viewer
Needed software: TightVNC
Start the TightVNC Viewer: On Linux, open a terminal and execute the following command:$ java -jar tightvnc-jviewer.jar
. On Windows, just double-click tightvnc-jviewer.jar in the Windows Explorer.
Fill in the parameters given to you by the run_vncserver script (see example below), add your username at SSH User, and press connect to establish a VNC session.
- Login without TurboVNC Java Viewer for Linux users
Needed software: A VNC Client such as TurboVNC
A SSH tunnel must be created with the command given to you by the run_vncserver script, e.g.:$ ssh -fCL 5903:localhost:5903 <UserID>@justus2-vis01.rz.uni-ulm.de
Start your VNC Client and connect to localhost:n, where n is the display number, using the command given to you by the run_vncserver script. E.g.:$ vncviewer localhost:3
- Login without TurboVNC Java Viewer for Windows users
Needed software: TigerVNC, Putty
Start Putty and navigate to Connection -> SSH -> Tunnels to fill in the parameters provided by the run_vncserver script. Subsequently, clicked "Add" and navigate to Session to connect with the cluster using your username and password. Once the connection is established, start the TigerVNC Client and connect to localhost:n, where n is the display number provided by run_vncserver.
OpenGL applications within VNC sessions
Executing an OpenGL program during a 3D accelerated VNC session will issue an error. In order to fix this, open a terminal window and run your application through the VirtualGL wrapper using the vglrun command like in the following example for the benchmark application glxgears:
$ vglrun glxgears -info
Shutdown your VNC session
To exit your VNC session it is not sufficient to only close the VNC viewer, since this will not terminate the VNC Server. The VNC Server will keep running and you will run into problems when you try to start a new VNC session later on. Please use the "log out" function of the desktop environment inside the VNC session, this will terminate the VNC server properly. Alternatively, you can terminate the VNC Server on the compute cluster using
$ vncserver -kill :n
with n specifying the display number.