Problembehebung: Fehlende Netzwerkkarte in Windows 10 VM unter Proxmox
Wer bereits einmal eine virtuelle Maschine (VM) mit dem Betriebssystem Windows 10 (deutsche Version) unter Proxmox VE erstellt hat, ist möglicherweise auf das bekannte Problem gestoßen, dass keine Netzwerkkarte erkannt wird.
Ein funktionierender und unkomplizierter Lösungsansatz bestand darin, der betroffenen Windows 10 VM einen USB-Ethernet-Adapter hinzuzufügen. Nach dem Hinzufügen des Adapters wurde die Netzwerkkarte innerhalb des Betriebssystems sofort erkannt, und die Netzwerkanbindung funktionierte ohne weitere Konfiguration. Es ist davon auszugehen, dass dieser Workaround auch mit anderen kompatiblen Netzwerkkarten funktioniert.
Zum Zeitpunkt der Erstellung dieser VM war der Maschinentyp auf „pc-q35-6.0“ eingestellt. Diese Einstellung stammt noch aus vorherigen Tests und wurde in diesem Fall nicht verändert.
Geplant ist, zukünftig weitere Tests mit alternativen Maschinentypen und Netzwerkkarten durchzuführen. Ergebnisse und Empfehlungen werden entsprechend in diesem Beitrag ergänzt.
Beispiel: USB-Ethernet-Adapter in Proxmox-VM integrieren (Windows 10)
Voraussetzung:
Der USB-Ethernet-Adapter ist am Proxmox-Host angeschlossen und wird erkannt.
usbutils ist installiert, um USB-Geräte aufzulisten:
apt update && apt install usbutils
Schritt 1: USB-Gerät identifizieren
lsusb
Beispielausgabe:
Bus 001 Device 004: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Die ID 0bda:8153 benötigen wir für den nächsten Schritt.
Schritt 2: USB-Gerät in die VM einbinden
Option A: Über die Web-GUI
Proxmox Web-GUI öffnen.
VM auswählen → Hardware → Add → USB Device.
Das passende Gerät aus der Liste auswählen (z. B. der Realtek-Adapter).
Bestätigen und die VM neu starten.
Option B: Direkt in der VM-Konfigurationsdatei (/etc/pve/qemu-server/<VMID>.conf)
Beispiel-Konfigurationszeile:
usb0: host=0bda:8153
Danach VM neustarten, damit das Gerät übernommen wird.
Schritt 3: In Windows 10 überprüfen
Nach dem Neustart der VM:
Öffne den Geräte-Manager (devmgmt.msc).
Unter Netzwerkadapter sollte der USB-Ethernet-Adapter erscheinen.
Falls notwendig, installiere passende Treiber (oft automatisch durch Windows Update erkannt).
Zusätzlicher Hinweis: Maschinentyp und Kompatibilität
Wie bereits erwähnt, war bei dir der Maschinentyp:
machine: pc-q35-6.0
Dieser Typ ist meist gut kompatibel mit modernen Windows-Gästen. Dennoch lohnt es sich, bei Problemen auch andere Typen wie pc-i440fx-* zu testen, insbesondere wenn ältere Betriebssysteme verwendet werden.
Wenn die Linux Container Turnkeylinux Templates nicht mehr auf Proxmox verfügbar sind
Wenn die Turnkeylinux Container Templates nicht mehr auf Proxmox verfügbar sind, einfach in der Proxmox-Konsole den folgenden Befehl ausführen:
pveam update
Nun sollten die Linux Container Turnkeylinux Templates wieder wie gewohnt verfügbar sein.
NGINX Proxy Manager – Reverse Proxy Installation auf Proxmox LXC Container mit Docker installieren
Der NGINX Reverse-Proxy ist sinnvoll, wenn man z.B. entsprechende CMS (content management system)- Dienste wie WordPress, Joomla und Drupal von extern erreichbar machen möchte oder mehrere Server unter dem gleichen Port wie den Port 433 für das HTTPS (Hypertext Transfer Protocol Secure) von außen erreichbar machen möchte. Eine schnelle zu realisierende Variante ist der Nginx Proxy Manager (kurz npm). Dieser kann ganz einfach über Docker installiert.
Nun wieder mit Strg+O abspeichern und mit Strg+x den Editor verlassen.
Als nächstes werden die beiden Docker-Container einmal Datenbank -Container (mariadb) und der NGINX Proxy Manager -Container automatisch zusammen gebaut.
Dazu einfach im selben Verzeichnis: „/home/docker/npm/“ den folgenden Befehle ausführen:
docker-compose up -d
Das war alles, mit der IPv4- Adresse des LXC Container und den Port: 81 (http://ContainerIPv4:81) erreicht man nun das Webinterface vom NGINX Proxy Manager.
Der voreingestellte Benutzer-Login ist admin@example.com und das Passwort changeme. Beides muss nun geändert werden.
Sollte die folgende Fehlermeldung kommen:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.
sudo chmod 666 /var/run/docker.sock
Viel Spaß 😉
GPU & PCIe-Passthrough unter Proxmox: So gibst du deiner VM Superkräfte
Wer unter Proxmox eine leistungsstarke VM betreiben will – etwa für Gaming, Video-Encoding, KI-Workloads oder einfach nur um Windows flüssig mit echter Hardware laufen zu lassen – kommt an PCIe-Passthrough nicht vorbei. Damit kannst du deiner VM eine physische GPU oder andere PCIe-Geräte direkt zuweisen – mit voller Power, als wären sie fest eingebaut.
In diesem Blogbeitrag zeige ich dir Schritt für Schritt, wie du das einrichtest.
Was du brauchst
Bevor es losgeht, check diese Voraussetzungen:
Proxmox VE installiert (empfohlen: aktuelle Version)
CPU & Mainboard unterstützen IOMMU (VT-d bei Intel / AMD-Vi bei AMD)
Die gewünschte Hardware ist nicht vom Host belegt (z. B. keine Boot-GPU)
Schritt 1: IOMMU aktivieren
Zuerst müssen wir IOMMU im Kernel aktivieren, damit der Host PCIe-Geräte sauber an VMs weitergeben kann.
nano /etc/default/grub
Zeile anpassen:
Für Intel:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
Für AMD:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
Dann speichern, und GRUB neu schreiben:
update-grub
Schritt 2: VFIO-Module laden
Ergänze diese Module in /etc/modules:
nano /etc/modules
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
Optional kannst du einen Neustart vorziehen – oder gleich weitermachen und später rebooten.
Jetzt ist der richtige Zeitpunkt für einen Reboot:
reboot
Schritt 6: VM konfigurieren
Bearbeite die Konfiguration deiner VM:
nano /etc/pve/qemu-server/100.conf
Und füge das hinzu:
hostpci0: 01:00.0,pcie=1
Wenn du z. B. auch das Audio-Device durchreichen willst:
hostpci0: 01:00.0;01:00.1,pcie=1
Wichtig: pcie=1 ist notwendig, wenn die VM als UEFI (OVMF) läuft.
Kontrolle: Hat’s geklappt?
Prüfen, ob VFIO das Gerät übernommen hat:
lspci -nnk -d 10de:1b80
Erwartet:
Kernel driver in use: vfio-pci
Auch dmesg gibt Aufschluss:
dmesg | grep -i vfio
USB-Geräte durchreichen
Willst du z. B. ein USB-Dongle oder Headset durchreichen?
Mit lsusb findest du die ID:
lsusb
Dann in die VM-Config:
usb0: host=1234:abcd
Fazit
Mit PCIe-Passthrough holst du das Maximum aus deiner Hardware raus. Egal ob du eine Windows-Gaming-VM, einen macOS-Hackintosh oder einen CUDA-Worker betreiben willst – Proxmox macht’s möglich.
Wenn du Fragen zu IOMMU-Gruppen, UEFI-Support oder BIOS-Einstellungen hast: Schreib’s in die Kommentare oder kontaktiere mich direkt.
Docker Portainer auf Proxmox Virtual Environment 7.2-3 installieren
Die Installation von Docker unter Proxmox ist eigentlich ganz simpel. Es gibt jedoch das ein oder andere zu berücksichtigen. Hier zeige ich, wie ich auf einen Ubuntu 20.04 LTS LXC Container, Docker und Portainer einrichte.
Die Hardware-Grundlage ist ein alter Aopen DE35-HD MiniPC mit Proxmox Virtual Environment 7.2-3 (PvE)
Als erstes wird ein Ubuntu LTS 20.04 Container auf PvE erstellt. Dazu geht man auf: local (pve) und Container Templates.
Anschließend auf Templates geklickt.
Danach in der Suche: “ ubuntu“ eingeben und ubuntu-20.04-standard auswählen und herunterladen.
Nun wird ein neuer Container (Erstelle CT) erstellt (oben rechts ).
In der Eingabemaske wird nun ein Hostname z.b. Docker sowie ein Kennwort vergeben und mit dem Button: „Vorwärts“ bestätigt.
Unter: „Templates“ wird nun das heruntergeladene ubuntu-20.04 ausgewählt und mit dem Button: „Vorwärts“ bestätigt.
Jetzt wird die Größe des Speichers für den LXC Container festgelegt und mit dem Button: „Vorwärts“ bestätigt.
Nun wird die Anzahl der CPU-Kerne für den LXC Container festgelegt und mit dem Button: „Vorwärts“ bestätigt.
Für den Arbeitsspeicher spendiere ich dem LXC Container ein 1 GB und mit dem Button: „Vorwärts“ bestätigt.
Anschließend werden die Netzwerkeinstellungen konfiguriert. Hier vergebe ich eine statische IPv4-Adresse. Als Gateway-Adresse wird in der Regel die IPv4-Adresse des Routers einstellt. IPv6 lasse ich auf automatische Zuweisung des DHCP-Servers stehen und mit: „Vorwärts“ bestätigt.
Als nächstes wird der DNS-Server konfiguriert. Bei den Einstellungen belasse ich die Standardeinstellung und bestätige wieder mit: „Vorwärts“.
Jetzt folgt eine kurze Zusammenfassung der zuvor konfigurierten Einstellungen, die mit dem Button: „Abschließen“ fertiggestellt werden. Nun wird der LXC Container erstellt, wenn alles Fehlerfrei verläuft kommt in der Ausgabe: „Task OK“
Wichtig, das Optionskästchen: „Nach Erstellen starten“ nicht aktivieren!
Damit Docker Portainer auch funktioniert müssen unter Optionen die Features nachträglich bearbeitet werden und „keyctl“ aktiviert werden.
Dazu unter Rechenzentrum den LXC Container: „Docker“ auswählen und die Optionen anklicken.
Nun: „Features“ anwählen und auf: „Bearbeiten“ klicken.
Nun wird das Kontrollkästchen: „keyctl“ aktiviert und mit dem Button: „OK“ werden die Einstellungen übernommen.
Jetzt, können wir unseren zukünftigen Docker LXC Container starten.
Anschließend verbinden wir uns mit der Konsole mit dem Benutzer: root und dem Kennwort welches wir zum Beginn bei der Erstellung des LXC Container vergeben haben.
Nun geben wir den Befehl ein:
apt update && apt upgrade -y
Um Docker installieren zu können müssen wir mit dem Befehl:
adduser docker
und Enter noch einen normalen Benutzer hinzufügen. Es folgt wieder eine Passwort-Vergabe sowie andere Angaben die nicht zwangsläufig angegeben werden müssen. Am Ende wird die Eingabe noch mit y bestätigt.
Jetzt müssen wir den neuen Benutzer noch Rechte erteilen, das machen wir mit dem Befehl:
nano /etc/sudoers
(Das geht nur mit dem Benutzer: root)
Unter # User privilege specification unter root wird folgende Zeile eingefügt:
docker ALL=(ALL:ALL) ALL
Anschließend wird die Konfiguration mit der Tastenkombination: Strg + o gedrückt und mit Enter gespeichert. Danach verlassen wir den Editor nano mit der Tastenkombination: Strg + x
Jetzt können wir uns als Benutzer: docker anmelden. Dazu geben wir den Befehl:
logout
ein und melden uns als Benutzer: docker an
Als nächstes installieren wir Docker und weitere erforderliche Tools mit dem Befehl:
sudo apt install docker.io curl net-tools
(Passwort ist das von dem Benutzer: root )
Nun wird das Installationsskript für Docker mit Curl und Enter geladen.
Damit wir als Benutzer: “docker” Docker ausführen können und dies ohne: sudo funktioniert, müssen wir dem Benutzer: dockernoch Rechte geben. Danach melden wir uns ab und wieder als docker an, damit die Rechte zur Geltung kommen.
sudo usermod -a -G docker docker
Jetzt installieren wir Portainer mit folgendem Befehl:
Portainer ist nun installiert. Um uns per Browser mit Portainer zu verbinden, müssen wir ein konfigurierte IPv4-Adresse + den Port eintragen: https://IPv4-Adresse:9000 anschließend führen wir die Einrichtung aus.
Nach dem Login als Administrator: docker kommen wir zum Quick Setup Wizard der Portainer-Weboberfläche. Neben der lokalen Docker-Umgebung lassen sich entfernte Umgebungen hinzufügen. In meinem Fall wähle ich: Get Started aus.
Nun erscheint die Home-Site der Portainer-Weboberfläche. Dort werden uns die derzeit von Portainer verwalteten Docker-Umgebungen angezeigt.