Hoe zet je zelf een Proxmox VE-server op
Je hebt een bare-metal machine en wilt er virtual machines en containers op draaien in plaats van één besturingssysteem. Proxmox VE maakt van die kale hardware een volwaardig virtualisatieplatform: een Debian-gebaseerde host met een web-UI, volledige KVM-virtualisatie, LXC-systeemcontainers, ingebouwde opslag en netwerken, en geen hypervisor-licentie per socket die je moet kopen. Deze gids doorloopt het hele traject van een lege server tot een werkende host. We installeren Proxmox VE 9.2 vanaf de ISO, herstellen de APT-repositories en updaten, begrijpen de standaard bridge-netwerkconfiguratie, bekijken de opslag, bouwen een eerste VM en een eerste LXC-container, en sluiten af met basale hardening. Aan het eind heb je een productieklare single node die je later kunt uitbreiden tot een cluster.
Loading...
Proxmox VE is een van de populairste manieren om je eigen virtualisatieplatform te draaien op hardware die je zelf beheert. Het is open source onder de GNU AGPLv3, gratis te gebruiken in productie zonder beperkte features of een VM-limiet, en het geeft je zowel KVM virtual machines als LXC-containers vanuit één webinterface. Deze tutorial neemt een bare-metal server van een lege schijf naar een werkende host met één VM en één container.
Vereisten
Zorg dat je het volgende hebt voordat je begint:
- Een bare-metal server met een 64-bit CPU waarop hardware-virtualisatie-extensies (Intel VT-x of AMD-V) zijn ingeschakeld in de BIOS/UEFI. (Wil je de handmatige ISO-installatie liever helemaal overslaan? Proxmox VE is beschikbaar als kant-en-klare deployment image bij Serverside, in minder dan een minuut uitgerold op bare metal, met een KVM-console en ISO-mount als je het toch liever zelf installeert.)
- De installer-ISO van Proxmox VE 9.2,
proxmox-ve_9.2-1.iso(ongeveer 1.7 GB), van de officiële downloadpagina - Een manier om die ISO op de server op te starten: een IPMI/KVM-console met virtual-media mount, of fysieke toegang met een USB-stick
- Een publiek IP-adres, subnetmasker en gateway voor de host, plus een DNS-resolver
- Basisvaardigheid met de Linux-commandline en SSH
Wat we gaan bouwen
We zetten een enkele Proxmox VE-node op: één fysieke machine die als standalone hypervisor draait. Daarop draaien we twee workloads, zodat je beide modellen ziet die Proxmox biedt:
- Eén KVM virtual machine (volledige hardware-virtualisatie: eigen kernel, start elk besturingssysteem op)
- Eén LXC-container (een lichtgewicht Linux-systeemcontainer die de kernel van de host deelt)
Alles hier werkt op één machine. Clustering, high availability en Ceph komen later aan bod en vereisen minstens drie nodes; dat valt buiten de scope van een eerste host.
Stap 1: De ISO downloaden en de installer opstarten
Download proxmox-ve_9.2-1.iso van de Proxmox-downloadpagina. Proxmox VE 9.2 verscheen op 2026-05-21 en is gebaseerd op Debian 13 "Trixie". Controleer de checksum tegen de checksum op de downloadpagina voordat je de ISO ergens op wegschrijft.
Heeft je server een IPMI/KVM-console (iDRAC, iLO, IPMI, of een web-KVM), koppel de ISO dan als virtual media en stel de server in om er eenmalig van op te starten. Op de console zou je het Proxmox-bootmenu moeten zien:
Proxmox VE 9.2 (ISO 'proxmox-ve_9.2-1')
Install Proxmox VE (Graphical)
Install Proxmox VE (Terminal UI)
Advanced Options
Kies Install Proxmox VE (Graphical) (of de Terminal UI-variant als de KVM-console grafisch slecht rendert). De installer doorloopt daarna een handvol schermen:
- EULA: accepteer deze.
- Target harddisk: kies de schijf (of schijven) om op te installeren. Klik op Options om het bestandssysteem te kiezen. Bij één schijf is
ext4op LVM de eenvoudige standaard. Heb je twee of meer schijven en wil je redundantie en snapshots, kies dan zfs en een RAID-niveau. De installer biedt RAID0, RAID1 (mirror), RAID10, RAIDZ-1, RAIDZ-2 en RAIDZ-3, waarbij de beschikbare opties afhangen van het aantal geselecteerde schijven. Een mirror met twee schijven (RAID1) is een verstandig, veerkrachtig startpunt. - Location and time zone: stel je land, tijdzone en toetsenbordindeling in.
- Administration password and email: stel een sterk
root-wachtwoord in en een echt e-mailadres voor systeemmeldingen. - Network configuration: stel de management-hostname in (een FQDN zoals
pve1.example.com), het IP-adres van de host in CIDR-vorm, de gateway en een DNS-server. Dit worden bij de eerste opstart jevmbr0-bridge-instellingen.
Nog even over ZFS-geheugen voordat je ervoor kiest: ZFS gebruikt een in-RAM cache genaamd de ARC. Een goede vuistregel is ongeveer 2 GiB basis-RAM plus zo'n 1 GiB ARC per 1 TiB pool-opslag. Sinds Proxmox VE 8.1 begrenzen nieuwe installaties de ARC standaard op 10% van het geïnstalleerde RAM (weggeschreven naar /etc/modprobe.d/zfs.conf), wat je kunt aanpassen in de Advanced Options van de installer. Reken dat RAM bovenop wat je VM's nodig hebben.
Bevestig de samenvatting en laat de installatie lopen. De server herstart naar Proxmox VE zodra dit klaar is. Ontkoppel de virtual media zodat er van schijf wordt opgestart.
Stap 2: Eerste keer opstarten en inloggen
Na de herstart toont de console de URL voor de webinterface:
Welcome to the Proxmox Virtual Environment. Please use your web browser to
configure this server - connect to:
https://192.0.2.10:8006/
pve1 login:
Open https://<your-server-ip>:8006 in een browser. De web-UI wordt geserveerd door de pveproxy-daemon over HTTPS op poort 8006. Bij een verse installatie krijg je een waarschuwing over een selfsigned certificaat. Accepteer deze om verder te gaan. Log in met gebruikersnaam root, het wachtwoord dat je tijdens de installatie hebt ingesteld, en het realm Linux PAM standard authentication (root@pam).
Maak nu verbinding via SSH zodat je de commandline-stappen kunt uitvoeren die hierna volgen:
Bevestig de versie en de draaiende kernel met pveversion:
root@pve1:~# pveversion
pve-manager/9.2-1/2c8d7f3b (running kernel: 6.14.8-2-pve)
De token pve-manager/9.2-1 bevestigt dat je op 9.2 zit; het kernel-token weerspiegelt de kernel waarmee op dat moment is opgestart. In deze gids heet de host pve1 en staat op 192.0.2.10. Vervang dit door je eigen hostname en adressen.
Hergebruik niet exact de IP's, hostnames of ID's die hier getoond worden; gebruik je eigen waarden.
Stap 3: Repositories configureren en updaten
Een verse installatie wijst APT naar de enterprise-repository, waarvoor een betaalde abonnementssleutel nodig is. Zonder die sleutel faalt apt update daartegen. Proxmox VE is gratis te draaien in productie, maar de gratis pakketten komen uit de no-subscription-repository, die je zelf moet inschakelen.
Proxmox VE 9 gebruikt het moderne deb822 .sources-formaat onder /etc/apt/sources.list.d/, niet de oude one-line .list-bestanden. Schakel eerst de enterprise-repo uit door er een regel Enabled: false aan toe te voegen. Open /etc/apt/sources.list.d/pve-enterprise.sources en zorg dat het er zo uitziet:
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: false
Maak vervolgens de no-subscription-repository aan op /etc/apt/sources.list.d/proxmox.sources:
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Suites: trixie is correct omdat Proxmox VE 9 op Debian 13 "Trixie" is gebouwd. Schakel de enterprise- en no-subscription-repository niet tegelijk in. Kies één kanaal.
Een woord van voorzichtigheid, rechtstreeks uit de Proxmox-documentatie, over de no-subscription-repo: "It can be used for testing and non-production use. It's not recommended to use this on production servers, as these packages are not always as heavily tested and validated." Voor een thuislab of staging-host is dit de standaardkeuze; voor een productievloot koopt een abonnement per socket het grondiger gevalideerde enterprise-kanaal plus support.
Ververs en upgrade nu:
root@pve1:~# apt update && apt full-upgrade -y
Hit:1 http://download.proxmox.com/debian/pve trixie InRelease
Hit:2 http://deb.debian.org/debian trixie InRelease
Hit:3 http://deb.debian.org/debian trixie-updates InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
proxmox-kernel-6.14 pve-manager qemu-server ...
...
Is de kernel geüpgraded, herstart dan om ernaartoe op te starten:
root@pve1:~# reboot
Eén verwacht neveneffect: omdat deze host geen abonnementssleutel heeft, toont de web-UI bij elke login een "No valid subscription"-dialoog. Dat is normaal op de no-subscription-repository: het is een melding, geen fout, en er is niets stuk. We komen hier bij Probleemoplossing op terug.
Stap 4: Netwerken (vmbr0 begrijpen)
Proxmox koppelt VM's niet rechtstreeks aan je fysieke NIC. In plaats daarvan maakt de installer een Linux bridge genaamd vmbr0 aan, maakt de fysieke interface daar slave van, en zet het eigen IP van de host op de bridge. Een bridge gedraagt zich als een virtuele switch: de host, elke VM en elke container hangen eraan vast en delen de uplink. Dit is waarom je tijdens de installatie het IP van de host als onderdeel van vmbr0 hebt geconfigureerd.
Bekijk de huidige interfaces:
root@pve1:~# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
enp1s0 UP
vmbr0 UP 192.0.2.10/24
Merk op dat de fysieke interface enp1s0 geen eigen IP heeft (het is een bridge-poort), terwijl vmbr0 het adres draagt. De configuratie staat in /etc/network/interfaces:
root@pve1:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
iface enp1s0 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.0.2.10/24
gateway 192.0.2.1
bridge-ports enp1s0
bridge-stp off
bridge-fd 0
De regel bridge-ports enp1s0 is wat de fysieke NIC slave maakt van de bridge. Voor een eerste single-node host hoef je hier zelden iets aan te veranderen. De standaardbridge voert VM- en containerverkeer al rechtstreeks naar je netwerk.
Bewerk je dit bestand toch (bijvoorbeeld om een tweede bridge of een VLAN-aware bridge toe te voegen), pas de wijziging dan door zonder herstart. Proxmox levert ifupdown2 mee, wat je ifreload geeft:
root@pve1:~# ifreload -a
Stap 5: Basisprincipes van opslag
Proxmox abstraheert schijven tot benoemde storages, die elk bepaalde soorten content mogen bevatten. Een standaardinstallatie geeft je er twee, en het helpt om te weten waar elk voor dient. Voer pvesm status uit:
root@pve1:~# pvesm status
Name Type Status Total Used Available %
local dir active 100.00G 35.00G 65.00G 35.00%
local-lvm lvmthin active 500.00G 200.00G 300.00G 40.00%
De twee standaardstorages splitsen op basis van doel:
localis een directory-backed store op het bestandssysteem van de host. Hierin staan ISO-images, containertemplates en backups (en snippets): in essentie bestanden. Hier upload je install-ISO's en download je containertemplates.local-lvmis een LVM-thin store. Hierin staan VM-disk-images en containerrootvolumes: blockstorage. Hier bevinden zich de daadwerkelijke virtuele schijven.
De vuistregel is dus: ISO's en templates gaan op local; VM-schijven en container-rootfs gaan op local-lvm. Heb je op ZFS geïnstalleerd in plaats van LVM, dan heet de tweede store doorgaans local-zfs (een zfspool-store) in plaats van local-lvm, en die speelt dezelfde rol: de blockstore voor VM- en containerschijven.
Stap 6: Je eerste VM aanmaken
Nu de beloning. We bouwen een KVM virtual machine vanaf de command line, zodat je precies ziet wat elke flag doet. Upload of download eerst een install-ISO voor je guest OS naar de local-storage, via de web-UI (local → ISO Images → Upload) of door het bestand in /var/lib/vz/template/iso/ op de host te plaatsen. Voor dit voorbeeld gaan we ervan uit dat debian-13.5.0-amd64-netinst.iso aanwezig is op local.
Maak de VM aan met qm create. Dit definieert VM-ID 100, twee cores, 4 GiB RAM, een moderne virtio-scsi-controller met een schijf van 32 GiB op local-lvm, en een virtio-NIC gebridged op vmbr0:
root@pve1:~# qm create 100 --name web01 --cores 2 --memory 4096 \
--scsihw virtio-scsi-single --scsi0 local-lvm:32 \
--net0 virtio,bridge=vmbr0 --ostype l26
Koppel de install-ISO als virtuele cd-rom en stel de VM in om ervan op te starten:
root@pve1:~# qm set 100 --ide2 local:iso/debian-13.5.0-amd64-netinst.iso,media=cdrom \
--boot order='ide2;scsi0'
update VM 100: -boot order=ide2;scsi0 -ide2 local:iso/debian-13.5.0-amd64-netinst.iso,media=cdrom
Start hem:
root@pve1:~# qm start 100
qm start toont niets bij succes. Bevestig dat de VM draait met qm list:
root@pve1:~# qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 web01 running 4096 32.00 12345
Open de Console van de VM in de web-UI (noVNC) om de installatie van het guest OS af te ronden, zoals je op elke fysieke machine zou doen. Omdat een KVM-VM zijn eigen kernel opstart, kun je hier elk besturingssysteem installeren: een andere Linux, Windows, BSD, wat dan ook.
Stap 7: Je eerste LXC-container aanmaken
Een container is de lichtere optie. In plaats van een eigen kernel op te starten, deelt een LXC-container de kernel van de host en draait erbovenop een geïsoleerde Linux-userspace. Hij start op in een seconde of twee, gebruikt een fractie van het RAM, en past veel dichter gepakt op dezelfde machine, met als afweging dat het Linux moet zijn en minder geïsoleerd is dan een volledige VM. Voor een dozijn kleine Linux-services laten containers je veel meer per host draaien dan VM's zouden doen.
Begin met het verversen van de templatecatalogus en bekijk wat beschikbaar is:
root@pve1:~# pveam update
update successful
root@pve1:~# pveam available --section system
system debian-12-standard_12.7-1_amd64.tar.zst
system debian-13-standard_13.1-2_amd64.tar.zst
system ubuntu-24.04-standard_24.04-2_amd64.tar.zst
...
Download een template naar de local-storage. Point-revisions van templates veranderen na verloop van tijd, dus controleer de lijst hierboven voor de actuele bestandsnaam. Hier gebruiken we de Debian 13 standard-template (bijv. debian-13-standard_13.1-2_amd64.tar.zst):
root@pve1:~# pveam download local debian-13-standard_13.1-2_amd64.tar.zst
downloading ...
download finished: local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst
Maak de container aan met pct create. Dit is container-ID 200, gebaseerd op die template, met een hostname, twee cores, 2 GiB RAM, een rootvolume van 8 GiB op local-lvm, en een DHCP-NIC gebridged op vmbr0:
root@pve1:~# pct create 200 local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst \
--hostname ct01 --cores 2 --memory 2048 \
--rootfs local-lvm:8 --net0 name=eth0,bridge=vmbr0,ip=dhcp
Start hem en bevestig:
root@pve1:~# pct start 200
root@pve1:~# pct list
VMID Status Lock Name
200 running ct01
Stap direct in een rootshell binnen de draaiende container om deze te configureren:
root@pve1:~# pct enter 200
root@ct01:~#
Typ exit om terug te keren naar de host. Merk op hoeveel lichter dit was dan de VM in Stap 6: een kleinere memory-footprint, een directe start, en geen OS-installatie om doorheen te zitten. Die dichtheid is de reden om naar LXC te grijpen wanneer de workload Linux is en je geen aparte kernel nodig hebt.
Stap 8: Basale hardening
Een hypervisor-managementvlak op een publiek IP is een waardevol doelwit. Drie aanpassingen brengen je op een single node al een heel eind.
1. Alleen SSH-key-authenticatie. Kopieer je public key naar de host en schakel daarna password-login uit. Bewerk /etc/ssh/sshd_config:
root@pve1:~# sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
root@pve1:~# systemctl restart ssh
Bevestig dat je nog steeds kunt inloggen met je key in een tweede terminal voordat je je huidige sessie sluit, zodat je jezelf niet buitensluit. Laat root-login via key ingeschakeld (Proxmox voert sommige taken via SSH als root uit), maar met wachtwoorden uit is het account niet langer te brute-forcen.
2. Schakel de Proxmox-firewall in. Proxmox heeft een ingebouwde firewall (pve-firewall, gebaseerd op nftables/iptables), configureerbaar op datacenter-, node- en VM/CT-niveau. Deze staat standaard uit. Schakel hem in op datacenterniveau en op de node. In de web-UI: Datacenter → Firewall → Options → Firewall: Yes, daarna pve1 → Firewall → Options → Firewall: Yes. Eenmaal ingeschakeld blokkeert de hostfirewall standaard inkomend verkeer, behalve de web-GUI (8006) en SSH (22) vanaf het lokale netwerk, dus zorg dat je managementregels op orde zijn voordat je hem op afstand inschakelt.
3. Beperk de web-UI (poort 8006) tot admin-IP's. De gedocumenteerde aanpak is een IPSet genaamd management met daarin je toegestane admin-IP-adressen; de ingebouwde managementregels houden zich daar vervolgens aan. Maak in Datacenter → Firewall → IPSet een IPSet aan genaamd management en voeg je kantoor- of VPN-IP's toe. Alternatief: bind de web-UI aan één adres door LISTEN_IP in /etc/default/pveproxy in te stellen en pveproxy te herstarten:
root@pve1:~# systemctl restart pveproxy
Staat je host achter een netwerkrand die al verkeer filtert (bijvoorbeeld de always-on firewall en DDoS-mitigatie voor een dedicated server van Serverside), dan is dat defence in depth bovenop deze host-level controls, geen vervanging ervoor.
Verificatie
Loop deze checklist door om te bevestigen dat de host gezond is en beide workloads draaien:
root@pve1:~# pveversion
pve-manager/9.2-1/2c8d7f3b (running kernel: 6.14.8-2-pve)
root@pve1:~# pvesm status
Name Type Status Total Used Available %
local dir active 100.00G 35.00G 65.00G 35.00%
local-lvm lvmthin active 500.00G 200.00G 300.00G 40.00%
root@pve1:~# qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 web01 running 4096 32.00 12345
root@pve1:~# pct list
VMID Status Lock Name
200 running ct01
Browse vervolgens naar https://192.0.2.10:8006, log in, en bevestig dat je web01 en ct01 ziet in de server-view met groene (running) status. Open een shell in de container of een console op de VM en ping naar buiten om te bevestigen dat het netwerken via vmbr0 werkt. Als alle vier de commando's en de web-UI het met elkaar eens zijn, heb je een werkende Proxmox VE-host.
Probleemoplossing
- "No valid subscription"-dialoog bij het inloggen. Verwacht op de no-subscription-repository. Het is een melding, geen storing; er is niets uitgeschakeld. Verdwijnt zodra je een abonnementssleutel per socket koopt en installeert.
apt updatefaalt met een 401 tegenenterprise.proxmox.com. Je hebt de enterprise-repository niet uitgeschakeld. VoegEnabled: falsetoe aan/etc/apt/sources.list.d/pve-enterprise.sources(Stap 3), zorg datproxmox.sourcesmetpve-no-subscriptionbestaat, en voer daarnaapt updateopnieuw uit.- Een VM of container heeft geen netwerk. Controleer of de NIC gebridged is naar de juiste bridge (
--net0 ...,bridge=vmbr0) en ofvmbr0daadwerkelijk je actieve fysieke NIC slave maakt (bridge-portsin/etc/network/interfaces). Staat de Proxmox-firewall aan, bevestig dan dat deze het verkeer van de guest niet blokkeert op datacenter-, node- of VM/CT-niveau. pveam availableofpveam downloadvindt niets. Voer eerstpveam updateuit om de templatecatalogus te verversen, en toon de lijst opnieuw. Point-revisions van templates veranderen ook. Kopieer de exacte bestandsnaam uitpveam available --section systemin plaats van een oude te typen.- Kan
https://<ip>:8006niet bereiken. Meestal een firewallprobleem: óf je admin-IP staat niet in demanagement-IPSet, ófLISTEN_IPin/etc/default/pveproxyis gebonden aan een adres van waaruit je niet verbindt. Kom binnen via de IPMI/KVM-console, verruim de regel, en herstartpveproxy.
Conclusie
Je hebt nu een werkende single-node Proxmox VE 9.2-host: geïnstalleerd vanaf de ISO, gericht op de no-subscription-repository en volledig geüpdatet, met de bridge-netwerkconfiguratie en opslag begrepen, één KVM-VM en één LXC-container draaiend, en basale hardening op zijn plek. Van hieraf kun je groeien: meer VM's en containers toevoegen, Proxmox Backup Server opzetten voor gededupliceerde backups, of twee nodes toevoegen om een cluster te vormen met quorum en high availability.
Wil je de handmatige ISO-installatie liever helemaal overslaan? Proxmox VE is beschikbaar als kant-en-klare deployment image op Serverside, in een paar klikken uitgerold op EPYC bare metal in minder dan een minuut, met always-on DDoS-bescherming voor het managementvlak en een KVM-console voor als je toch ooit je eigen ISO wilt opstarten.
En twijfel je nog of Proxmox VE überhaupt de juiste hypervisor voor je is (versus VMware ESXi, XCP-ng of Hyper-V), begin dan met onze bare-metal-hypervisorgids, die de afwegingen doorloopt voordat je een machine aan een van hen toewijst.

Geschreven door
Co-founder & CTO, Serverside.com
Jesse is the co-founder and CTO of Serverside.com, where he leads the engineering behind the company's bare-metal cloud: from the ASN 55285 backbone to the core automation that drives day-to-day operation. He writes about dedicated servers, operating systems, and running production workloads on bare metal.
Verder lezen
Alle artikelen bekijkenVond je dit artikel interessant?
Ontvang nieuwe handleidingen en technische artikelen in je inbox. Geen spam, altijd uitschrijfbaar.



