Use Citrix Receiver for Linux as an ICA-to-X proxy

You can use a workstation running Citrix Receiver as a server and redirect the output to another X11-capable device. You might want to do this to deliver Microsoft Windows applications to X terminals or to UNIX workstations for which Citrix Receiver is not available.


Citrix Receiver software is available for many X devices, and installing the software on these devices is the preferred solution in these cases. Running Citrix Receiver in this way, as an ICA-to-X proxy, is also referred to as server-side ICA.

When you run Citrix Receiver, you can think of it as an ICA-to-X11 converter that directs the X11 output to your local Linux desktop. However, you can redirect the output to another X11 display. You can run multiple copies of Citrix Receiver simultaneously on one system with each sending its output to a different device.

This graphic shows a system with Citrix Receiver for Linux set up as an ICA-to-X proxy:

ICA-to-X proxy

To set up this type of system, you need a Linux server to act as the ICA-to-X11 proxy:

  • If you have X terminals already, you can run Citrix Receiver on the Linux server that usually supplies the X applications to the X terminals.
  • If you want to deploy UNIX workstations for which Citrix Receiver is not available, you need an extra server to act as the proxy. This can be a PC running Linux.

Supported features

Applications are supplied to the final device using X11, using the capabilities of the ICA protocol. By default, you can use drive mapping only to access the drives on the proxy. This is not a problem if you are using X terminals (which usually do not have local drives). If you are delivering applications to other UNIX workstations, you can either:

  • NFS mount the local UNIX workstation on the workstation acting as the proxy, then point a client drive map at the NFS mount point on the proxy.
  • Use an NFS-to-SMB proxy such as SAMBA, or an NFS client on the server such as Microsoft Services for UNIX.

Some features are not passed to the final device:

  • USB redirection
  • Smart card redirection
  • COM port redirection
  • Audio is not delivered to the X11 device, even if the server acting as a proxy supports audio.
  • Client printers are not passed through to the X11 device. You access the UNIX printer from the server manually using LPD printing, or use a network printer.
  • Redirection of multimedia input is not expected to work because it requires a webcam on the machine running Citrix Receiver, which is the server acting as a proxy. However, redirection of multimedia output works with GStreamer installed on the server acting as a proxy (untested).

To start Citrix Receiver with server-side ICA from an X terminal or a UNIX workstation

  1. Use ssh or telnet to connect to the device acting as the proxy.

  2. In a shell on the proxy device, set the DISPLAY environment variable to the local device. For example, in a C shell, type:

    setenv DISPLAY <local:0>

    Note: If you use the command ssh -X to connect to the device acting as the proxy, you do not need to set the DISPLAY environment variable.

  3. At a command prompt on the local device, type xhost <proxy server name>

  4. If Receiver is not installed in the default installation directory, ensure that the environment variable ICAROOT is set to point to the actual installation directory.

  5. Locate the directory where Citrix Receiver is installed. At a command prompt, type selfservice &

Use Citrix Receiver for Linux as an ICA-to-X proxy