Um Horizon Agent for Linux zu installieren, müssen Sie bestimmte Anforderungen für das Linux-Betriebssystem, die virtuelle Linux-Maschine, VMware Horizon-Systemkomponenten und vSphere-Plattform erfüllen.

Unterstützte Linux-Versionen für Horizon Agent

In der folgenden Tabelle sind die Linux-Betriebssysteme aufgeführt, die für Horizon Agent unterstützt werden.

Tabelle 1. Unterstützte Linux-Betriebssysteme für Horizon Agent
Linux-Verteilung Architektur
Ubuntu 20.04 und 18.04 x64
Red Hat Enterprise Linux (RHEL) Workstation 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3 und 8.4 x64
Red Hat Enterprise Linux (RHEL) Server 7.8, 7.9, 8.2, 8.3 und 8.4 x64
CentOS 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3 und 8.4 x64
SUSE Linux Enterprise Desktop (SLED) 12 SP3, 15 SP1 und 15 SP2 x64
SUSE Linux Enterprise Server (SLES) 12 SP3, 12 SP5, 15 SP1 und 15 SP2 x64
Hinweis: Horizon Agent verfügt bei einigen Linux-Verteilungen über Abhängigkeitspakete. Weitere Informationen finden Sie unter Installieren von Abhängigkeitspaketen für Horizon Agent.

Einige Funktionen werden auf einer begrenzten Teilmenge von Linux-Betriebssystemen unterstützt. Weitere Informationen finden Sie im Abschnitt dieses Dokuments, in dem die spezifische Funktion behandelt wird.

Erforderliche Plattform- und Softwareversionen

Um Horizon Agent for Linux installieren und anwenden zu können, muss Ihre Bereitstellung bestimmte Anforderungen für die vSphere-Plattform, Horizon Connection Server und die Horizon Client-Software erfüllen.

Tabelle 2. Erforderliche Plattform- und VMware Horizon-Softwareversionen
Plattform und Software Unterstützte Versionen
vSphere-Plattformversion
  • vSphere 6.0 U2 oder eine höhere Version
  • vSphere 6.5 U1 oder eine höhere Version
  • vSphere 6.7 oder eine höhere Version
Horizon-Umgebung
  • Horizon-Verbindungsserver 2106
Horizon Client-Software
  • Horizon Client für Android 2106
  • Horizon Client für Windows 2106
  • Horizon Client für Linux 2106
  • Horizon Client für Mac 2106
  • Horizon Client für iOS 2106
  • HTML Access 2106 auf Chrome und Firefox
  • Zero-Clients, die das VMware Blast-Protokoll unterstützen
    Hinweis: Teradici PCoIP Zero-Clients werden nicht unterstützt.

Von virtuellen Linux-Maschinen verwendete TCP/UDP-Ports

Horizon 8 Agent und Horizon Clients verwenden TCP- bzw. UDP-Ports für den Netzwerkzugriff untereinander und zwischen den verschiedenen Horizon 8 Server-Komponenten.

Tabelle 3. Von virtuellen Linux-Maschinen verwendete TCP/UDP-Ports
Quelle Port Ziel Port Protokoll Beschreibung
Horizon Client * Linux Agent 22443 TCP/UDP Blast, wenn Blast Security Gateway verwendet wird
Horizon 8-Verbindungsserver oder Unified Access Gateway-Appliance * Linux Agent 22443 TCP/UDP Blast, wenn Blast Security Gateway verwendet wird
Horizon 8-Agent * Horizon 8-Verbindungsserver 4001, 4002 TCP JMS-SSL-Datenverkehr
Hinweis: Weitere Informationen zu von Clients verwendeten TCP- und UDP-Ports finden Sie im Dokument Horizon-Sicherheit und im Leitfaden Netzwerkports in VMware Horizon.

Damit Benutzer sich mit ihren Linux-Desktops verbinden können, müssen die Desktops eingehende TCP-Verbindungen von Horizon Client-Geräten, von Unified Access Gateway und von Horizon Connection Server akzeptieren.

Bei Ubuntu-Verteilungen wird standardmäßig die iptables-Firewall mit einer Eingaberichtlinie von ACCEPT konfiguriert.

Bei RHEL- und CentOS-Verteilungen konfiguriert, wenn möglich, das Horizon Agent-Installationsskript die iptables-Firewall mit einer Eingaberichtlinie von ACCEPT.

Stellen Sie sicher, dass iptables auf einem RHEL- oder CentOS-Gastbetriebssystem über eine Eingaberichtlinie von ACCEPT für neue Verbindungen vom Blast-Port 22443 verfügt.

Wenn BSG (Blast Secure Gateway) aktiviert ist, werden die Clientverbindungen von einem Horizon Client-Gerät über BSG oder Horizon Connection Server zum Linux-Desktop hergestellt. Ist der BSG nicht aktiviert, werden die Verbindungen zum Linux-Desktop direkt vom Horizon Client-Gerät hergestellt.

Überprüfen des von virtuellen Linux-Maschinen verwendeten Linux-Kontos

Die nachfolgende Tabelle enthält den von virtuellen Linux-Maschinen verwendeten Kontonamen und den Kontotyp.

Tabelle 4. Kontoname und Kontotyp
Kontoname Kontotyp Verwendet von
Stammordner Integriertes Linux-Betriebssystem Java Standalone Agent, mksvchanserver, Shell-Skripts
vmwblast Erstellt durch das Linux Agent-Installationsprogramm VMwareBlastServer
<Aktuell angemeldeter Benutzer> Integriertes Linux-Betriebssystem oder AD-Benutzer oder LDAP-Benutzer Python-Skript

Desktop-Umgebung

Horizon Agent for Linux unterstützt mehrere Desktop-Umgebungen auf unterschiedlichen Linux-Verteilungen. In der folgenden Tabelle sind die standardmäßigen Desktop-Umgebungen für die einzelnen Linux-Verteilungen und die zusätzlichen Desktop-Umgebungen aufgelistet, die von Horizon Agent for Linux unterstützt werden.
Tabelle 5. Unterstützte Desktop-Umgebungen
Linux-Verteilung Standard-Desktop-Umgebung Von Horizon Agent for Linux unterstützte Desktop-Umgebungen
Ubuntu 20.04/18.04 Gnome Gnome Ubuntu, K Desktop Environment (KDE), MATE
RHEL/CentOS 7.x Gnome Gnome, KDE
RHEL/CentOS 8.x Gnome Gnome
SLED/SLES Gnome Gnome
Hinweis: Gnome Display Manager (GDM) ist der einzige auf Linux-Desktops unterstützte Display Manager. Weitere Informationen finden Sie im Knowledgebase-Artikel 87459.

Die einmalige Anmeldung (Single Sign-on, SSO) für KDE und die MATE-Desktop-Umgebung funktionieren nur, wenn Ihr Linux-Desktop den GDM3-Greeter (Anmeldebildschirm) verwendet. Sie müssen KDE und MATE unter Verwendung der unter Befehle zum Installieren von Desktop-Umgebungen aufgeführten Befehle installieren.

Wenn Sie RHEL/CentOS 7.x- und Ubuntu-Verteilungen verwenden, kann eine gesperrte KDE-Sitzung nicht durch SSO entsperrt werden. Sie müssen Ihr Kennwort manuell eingeben, um die gesperrte Sitzung zu entsperren.

Um die Standard-Desktop-Umgebung zu ändern, die auf einem der unterstützten Linux-Verteilungen verwendet wird, müssen Sie die folgenden für Ihren Linux-Desktop geeigneten Schritte und Befehle ausführen.

  1. Installieren Sie das unterstützte Betriebssystem der Linux-Verteilung mit der Einstellung für die Standard-Desktop-Umgebung.
  2. Führen Sie die entsprechenden in der folgenden Tabelle für Ihre spezifische Linux-Verteilung beschriebenen Befehle aus.
    Tabelle 6. Befehle zum Installieren von Desktop-Umgebungen
    Linux-Verteilung Neue Standard-Desktop-Umgebung Befehle zum Ändern der Standard-Desktop-Umgebung
    RHEL/CentOS 7.x KDE
    # yum groupinstall "KDE Plasma Workspaces"
    Ubuntu 20.04/18.04 KDE
    # apt install plasma-desktop
    Ubuntu 20.04/18.04 MATE 1.225
    # apt install ubuntu-mate-desktop
  3. Um die neue Standard-Desktop-Umgebung zu verwenden, starten Sie den Desktop neu.
Wenn Sie die SSO-Funktion auf einem Linux-Desktop aktivieren, auf der mehrere Desktop-Umgebungen installiert sind, beachten Sie die nachfolgend aufgeführten Hinweise zur Auswahl der Desktop-Umgebung.
  • Verwenden Sie für Ubuntu 20.04/18.04 und RHEL/CentOS 7.x die Informationen in der folgenden Tabelle, um die Option SSODesktopType in der Datei /etc/vmware/viewagent-custom.conf festzulegen und die Desktopumgebung anzugeben, für die die SSO-Funktion verwendet werden soll.
    Tabelle 7. Option SSODesktopType
    Desktop-Typ Einstellung der Option SSODesktopType
    MATE SSODesktopType=UseMATE
    GnomeUbuntu SSODesktopType=UseGnomeUbuntu
    GnomeFlashback SSODesktopType=UseGnomeFlashback
    KDE SSODesktopType=UseKdePlasma
    GnomeClassic SSODesktopType=UseGnomeClassic
  • Um mit RHEL/CentOS 8.x für die SSO-Anmeldesitzung Gnome Classic zu verwenden, entfernen Sie alle Desktop-Startdateien mit Ausnahme der Gnome Classic-Startdatei aus dem Verzeichnis /usr/share/xsession. Verwenden Sie den folgenden Satz an Befehlen als Beispiel.
    # cd /usr/share/xsessions
    # mkdir backup
    # mv *.desktop backup
    # mv backup/gnome-classic.desktop ./
    Nach der ersten Einrichtung muss sich der Endbenutzer abmelden oder den Linux-Desktop neu starten, damit Gnome Classic in der nächsten SSO-Sitzung als Standard-Desktop verwendet wird.

Wenn Sie SSO auf einem Linux-Desktop deaktivieren, auf dem mehrere Desktop-Umgebungen installiert sind, müssen Sie keine der zuvor beschriebenen Schritte ausführen. Die Endbenutzer müssen ihre gewünschte Desktop-Umgebung auswählen, wenn sie sich mit diesem Linux-Desktop anmelden.

Netzwerkanforderungen

VMware Blast Extreme unterstützt sowohl das User Datagram Protocol (UDP) als auch das Transmission Control Protocol (TCP). Die Netzwerkbedingungen wirken sich auf die Leistungsfähigkeit von UDP und TCP aus. Wählen Sie für eine bestmögliche Benutzererfahrung UDP oder TCP basierend auf der Netzwerkverbindung aus.
  • Wählen Sie TCP aus, wenn die Netzwerkverbindung gut ist, wie z. B. in einer Umgebung mit lokalem Netzwerk (LAN).
  • Wählen Sie UDP aus, wenn die Netzwerkverbindung schlecht ist, wie z. B. in einer WAN (Wide Area Network)-Umgebung, in der es zu Paketverlusten und einer zeitlichen Verzögerung kommt.
Ermitteln Sie mit einem Netzwerkanalysetool wie Wireshark, ob VMware Blast Extreme TCP oder UDP verwendet wird. Die im Folgenden aufgeführten Schritte mit Wireshark zeigen eine beispielhafte Verwendung.
  1. Laden Sie Wireshark herunter und installieren Sie es auf Ihrer Linux-VM.
    Für RHEL/CentOS:
    sudo yum install wireshark
    Für Ubuntu:
    sudo apt install tshark
  2. Stellen Sie mithilfe von VMware Horizon Client eine Verbindung mit dem Linux-Desktop her.
  3. Öffnen Sie ein Terminal-Fenster und führen Sie den im Folgenden aufgeführten Befehl aus. Dieser zeigt das TCP- oder UDP-Paket an, das von VMware Blast Extreme verwendet wird.
    sudo tshark -i any | grep 22443
Die Funktionen USB-Umleitung und Clientlaufwerksumleitung hängen von der Netzwerkverbindung ab. Wenn die Netzwerkverbindung schlecht ist, d. h. nur eine begrenzte Bandbreite mit Zeitverzögerung und Paketverlusten zur Verfügung steht, beeinträchtigt dies die Benutzererfahrung. In diesem Fall kann der Endbenutzer möglicherweise Folgendes feststellen:
  • Das Kopieren der Remote-Dateien kann lange dauern. Ist dies der Fall, übertragen Sie stattdessen kleinere Dateien.
  • Das USB-Gerät wird nicht auf dem Linux-Remote-Desktop angezeigt.
  • Die USB-Daten werden nicht vollständig übertragen. Wenn Sie beispielsweise eine große Datei kopieren, erhalten Sie möglicherweise eine Datei, die kleiner als die Originaldatei ist.

VHCI-Treiber für die USB-Umleitung

Die USB-Weiterleitungsfunktion verfügt über eine Abhängigkeit vom Kerneltreiber des USB Virtual Host Controller Interface (VHCI). Um USB 3.0 und die USB-Umleitungsfunktion zu unterstützen, müssen Sie die folgenden Schritte ausführen:

  1. Laden Sie den USB-VHCI-Quellcode von https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/ herunter.
  2. Verwenden Sie zum Kompilieren des Quellcodes des VHCI-Treibers und zum Installieren der resultierenden Binärdatei auf Ihrem Linux-System die in der folgenden Tabelle aufgelisteten Befehle.
    Wenn Sie beispielsweise die Installationsdatei VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx.tar.gz unter dem Verzeichnis /install_tmp/ entpacken, lautet full-path_to_patch-file /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx/resources/vhci/patch/vhci.patch, und der zu verwendende patch-Befehl lautet
    # patch -p1 < /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxxi/resources/vhci/patch/vhci.patch
Hinweis: Der VHCI-Treiber muss vor der Installation von Horizon 8 for Linux installiert werden.
Tabelle 8. Kompilieren und Installieren des USB-VHCI-Treibers
Linux-Verteilung Schritte zum Kompilieren und Installieren der VHCI-USB-Treiber
Ubuntu 20.04/18.04
  1. Installieren Sie die Abhängigkeitspakete.
    # apt-get install make
    # apt-get install gcc
    # apt-get install libelf-dev
  2. Kompilieren und installieren Sie die VHCI-Treiber.
    # tar -xzvf vhci-hcd-1.15.tar.gz
    # cd vhci-hcd-1.15
    # patch -p1 < full-path_to_patch-file
    # make clean && make && make install

RHEL/CentOS 7.x

RHEL/CentOS 8.x

  1. Installieren Sie die Abhängigkeitspakete.
    # yum install gcc-c++
    # yum install kernel-devel-$(uname -r)
    # yum install kernel-headers-$(uname -r)
    # yum install patch
    # yum install elfutils-libelf-devel
  2. Kompilieren und installieren Sie die VHCI-Treiber.
    # tar -xzvf vhci-hcd-1.15.tar.gz
    # cd vhci-hcd-1.15
    # patch -p1 < full-path_to_patch-file
    # make clean && make && make install
  3. (RHEL/CentOS 8.x) Um sicherzustellen, dass die VHCI-Treiber mit der USB-Umleitung ordnungsgemäß funktionieren, konfigurieren Sie die Signatureinstellungen für den USB-Treiber.
    1. Erstellen Sie ein SSL-Schlüsselpaar für den USB-Treiber.
      openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
    2. Erstellen Sie eine Signatur für den USB-Treiber.
      sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko
      sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
    3. Registrieren Sie den Schlüssel für den sicheren UEFI-Startvorgang.
      sudo mokutil --import MOK.der
      Hinweis: Dieser Befehl gibt eine Anforderung zum Festlegen eines Kennworts für den Machine Owner Key (MOK) für den sicheren UEFI-Start aus.
    4. Um einen sicheren UEFI-Start in der vSphere-Konsole einzurichten, starten Sie das System neu. Weitere Informationen finden Sie unter https://sourceware.org/systemtap/wiki/SecureBoot.

SLED/SLES 12.x

SLED/SLES 15.x

  1. Suchen Sie die Version des aktuellen Kernelpakets.
    # rpm -qa | grep kernel-default-$(echo $(uname -r) | cut -d '-' -f 1,2)

    Die Ausgabe besteht aus dem Namen des aktuell installierten Kernelpakets. Wenn der Name des Pakets z. B. kernel-default-3.0.101-63.1 lautet, ist die aktuelle Version des Kernelpakets 3.0.101-63.1.

  2. Installieren Sie die Pakete kernel-devel, kernel-default-devel, kernel-macros und patch.
    # zypper install --oldpackage kernel-devel-<kernel-package-version> \
    kernel-default-devel-<kernel-package-version> kernel-macros-<kernel-package-version> patch
    Beispiel:
    # zypper install --oldpackage kernel-devel-4.4.21-90.1 kernel-default-devel-4.4.21-90.1 kernel-macros-4.4.21-90.1 patch
  3. Kompilieren und installieren Sie die VHCI-Treiber.
    # tar -xzvf vhci-hcd-1.15.tar.gz
    # cd vhci-hcd-1.15
    # patch -p1 < full-path_to_patch-file
    # mkdir -p linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core
    # cp /lib/modules/$(uname -r)/source/include/linux/usb/hcd.h linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core
    # make clean && make && make install
  4. (SLED/SLES 15.x) Um sicherzustellen, dass die VHCI-Treiber mit der USB-Umleitung ordnungsgemäß funktionieren, konfigurieren Sie die Signatureinstellungen für den USB-Treiber.
    1. Erstellen Sie ein SSL-Schlüsselpaar für den USB-Treiber.
      openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
    2. Suchen Sie den Pfad zur Signaturdatei für den USB-Treiber.
      find / -name sign-file

      Dieser Befehl gibt die Pfade zu allen Signaturdateien zurück, die sich auf dem System befinden. Der Pfad der Signaturdatei für den USB-Treiber ähnelt dem folgenden Beispiel.

      /usr/src/linux-5.3.18-24.9-obj/x86_64/default/scripts/
    3. Erstellen Sie eine Signatur für den USB-Treiber. In den folgenden Befehlen ist <sign-file-path> der Pfad zu der Signaturdatei, die Sie zuvor in Schritt 4b gefunden haben.
      # sudo /<sign-file-path>/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko
      # sudo /<sign-file-path>/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
    4. Registrieren Sie den Schlüssel für den sicheren UEFI-Startvorgang.
      # sudo mokutil --import MOK.der
      Hinweis: Dieser Befehl gibt eine Anforderung zum Festlegen eines Kennworts für den Machine Owner Key (MOK) für den sicheren UEFI-Start aus.
    5. Um einen sicheren UEFI-Start in der vSphere-Konsole einzurichten, starten Sie das System neu. Weitere Informationen finden Sie unter https://sourceware.org/systemtap/wiki/SecureBoot.

Beachten Sie außerdem die folgenden Richtlinien:

  • Wenn sich Ihre Linux-Kernelversion zu einer neuen Version ändert, müssen Sie den VHCI-Treiber erneut kompilieren und installieren. Horizon for Linux muss aber nicht erneut installiert werden.
  • Sie können auch DKMS (Dynamic Kernel Module Support) zum VHCI-Treiber hinzufügen. Gehen Sie dazu wie im folgenden Beispiel für ein Ubuntu-System vor.
    1. Installieren Sie die Kernel-Header.
      # apt install linux-headers-`uname -r`
    2. Installieren Sie dkms mit dem folgenden Befehl.
      # apt install dkms
    3. Extrahieren und patchen Sie die VHCI-TAR-Datei.
      # tar xzvf vhci-hcd-1.15.tar.gz
      # cd vhci-hcd-1.15
      # patch -p1 <full-path_to_patch-file>
      # cd ..
    4. Kopieren Sie die extrahierten VHCI-Quelldateien in das Verzeichnis /usr/src.
      # cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
    5. Erstellen Sie eine Datei mit dem Namen dkms.conf und speichern Sie diese im Verzeichnis /usr/src/usb-vhci-hcd-1.15.
      # touch /usr/src/usb-vhci-hcd-1.15/dkms.conf
    6. Fügen Sie die folgenden Inhalte zur Datei dkms.conf hinzu.
      PACKAGE_NAME="usb-vhci-hcd"
      PACKAGE_VERSION=1.15
      MAKE_CMD_TMPL="make KVERSION=$kernelver"
      
      CLEAN="$MAKE_CMD_TMPL clean"
      
      BUILT_MODULE_NAME[0]="usb-vhci-iocifc"
      DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/host"
      MAKE[0]="$MAKE_CMD_TMPL"
      
      BUILT_MODULE_NAME[1]="usb-vhci-hcd"
      DEST_MODULE_LOCATION[1]="/kernel/drivers/usb/host"
      MAKE[1]="$MAKE_CMD_TMPL"
      
      AUTOINSTALL="YES"
    7. Fügen Sie diesen VHCI-Treiber zur Datei dkms hinzu.
      # dkms add usb-vhci-hcd/1.15
    8. Erstellen Sie den VHCI-Treiber.
      # dkms build usb-vhci-hcd/1.15
    9. Installieren Sie den VHCI-Treiber.
      # dkms install usb-vhci-hcd/1.15