If you're running a dedicated server, one of the most powerful decisions you can make is virtualizing your infrastructure with Proxmox VE (Virtual Environment). Instead of running a single operating system on expensive bare metal hardware, Proxmox lets you spin up multiple isolated virtual machines (VMs) and containers, all from a single physical server.
This approach is why thousands of system administrators, hosting providers, and DevOps engineers choose Proxmox on dedicated servers as their go-to hypervisor solution. It's open-source, enterprise-grade, and built on top of proven Linux KVM (Kernel-based Virtual Machine) technology.
In this step-by-step guide, you'll learn how to:
Install and configure Proxmox VE on a bare-metal dedicated server
Create and manage virtual machines from scratch
Optimize VM performance for production workloads
Apply best practices for storage, networking, and security on a dedicated server environment
Whether you're hosting websites, running private cloud infrastructure, or managing client workloads on leased dedicated hardware, this tutorial covers everything you need.
Proxmox Virtual Environment is a Type-1 (bare-metal) hypervisor — meaning it runs directly on your dedicated server hardware without needing an underlying operating system. It combines two powerful virtualization technologies:
KVM (Kernel-based Virtual Machine): for full hardware virtualization of any OS (Linux, Windows, BSD, etc.)
LXC (Linux Containers): for lightweight, OS-level virtualization
Because Proxmox sits directly on your bare metal server, it has full, unshared access to the CPU, RAM, NVMe/SSD storage, and network interfaces, delivering near-native performance for every virtual machine you create.
Key advantages of Proxmox on a dedicated server:
No licensing fees (unlike VMware ESXi or Microsoft Hyper-V)
Web-based management dashboard accessible from any browser
Live migration of VMs between nodes (in cluster mode)
Built-in backup and snapshot tools
Support for software-defined networking and storage
Before creating your first virtual machine, make sure the following requirements are met on your dedicated server:
Hardware Requirements:
A 64-bit dedicated server with Intel VT-x or AMD-V virtualization extensions enabled in BIOS
Minimum 8 GB RAM (16 GB+ strongly recommended for running multiple VMs)
At least 100 GB of local storage (NVMe or SSD recommended for VM disk I/O)
A dedicated network interface (1 Gbps or higher)
Software Requirements:
Proxmox VE 8.x installed (latest stable release)
SSH access to your dedicated server
ISO images of the operating systems you want to virtualize
Knowledge Requirements:
Basic Linux command-line familiarity
Understanding of IP networking (subnets, bridges, gateways)
COLO BIRD Tip: If you're renting a dedicated server from a data center or colocation provider, confirm that IPMI/iDRAC remote console access is available. This allows you to install Proxmox remotely and recover from boot issues without physical access to the hardware.
1.1 Download the Proxmox ISO
Visit the official Proxmox download page and grab the latest Proxmox VE ISO Installer (8.x as of 2025).
1.2 Write the ISO to a Bootable USB
On Linux or macOS, use dd to write the ISO:
dd if=proxmox-ve_8.x-x.iso of=/dev/sdX bs=1M status=progress
Replace /dev/sdX with your USB drive's device path. On Windows, use Rufus or Balena Etcher.
1.3 Boot Your Dedicated Server from the USB
Access your server's BIOS or IPMI remote console and set the boot order to boot from USB first. Insert the USB, then restart the dedicated server.
1.4 Walk Through the Proxmox Installer
The graphical installer will guide you through:
License Agreement: Accept the EULA
Target Disk: Select your primary SSD/NVMe as the installation disk. For production dedicated servers, consider using ZFS RAID-1 if you have two drives
Location & Timezone: Set your region and timezone
Administrator Password: Set a strong root password and provide an email address for alerts
Network Configuration: This is critical on a dedicated server:
Click Install and wait for the process to complete (~5 minutes)
1.5 First Login to the Proxmox Web Interface
After installation, your dedicated server will reboot. Open a browser and navigate to:
https://YOUR_SERVER_IP:8006
Log in with:
Username: root
Password: (the password you set during installation)
Realm: Linux PAM
Security Note: Always access the Proxmox web UI over a VPN or SSH tunnel in production environments. Never expose port 8006 directly to the public internet.
Proper storage configuration is one of the most important steps for running performant VMs on a bare metal dedicated server.
2.1 Understanding Proxmox Storage Types
Proxmox supports multiple storage backends:
| Storage Type | Best For | Performance |
|---|---|---|
| LVM-Thin | VM disk images, snapshots | High |
| ZFS | Data integrity, compression, snapshots | High |
| Directory (ext4) | ISO files, backups | Medium |
| Ceph | Distributed cluster storage | Scalable |
| NFS/CIFS | Shared network storage | Medium |
For a single bare metal dedicated server, LVM-Thin or ZFS are the best choices for VM disks.
2.2 Add an LVM-Thin Pool (Recommended for Most Dedicated Servers)
If Proxmox installer created a default LVM volume group (usually named pve), you can add a thin pool:
lvcreate -L 500G -n vm-data pve
lvconvert --type thin-pool pve/vm-data
Then, in the Proxmox web UI:
Go to Datacenter → Storage → Add → LVM-Thin
Set the ID (e.g., vm-storage), select the VG (pve) and thin pool (vm-data)
Click Add
2.3 Upload ISO Images
Before creating VMs, upload your OS ISO files:
In the Proxmox UI, click your node name (e.g., pve01) → local storage
Click ISO Images → Upload
Upload your desired ISO (Ubuntu Server, Debian, Windows Server, CentOS, etc.)
This is the core of the tutorial, creating a fully functional VM on your dedicated server.
3.1 Launch the VM Creation Wizard
In the Proxmox web dashboard:
Click Create VM (top-right button)
3.2 General Settings
Node: Select your dedicated server node
VM ID: Auto-assigned (e.g., 100), leave as-is
Name: Give your VM a descriptive name (e.g., ubuntu-web-01)
3.3 OS Settings
Use CD/DVD disc image file (ISO): Select the ISO you uploaded
Guest OS Type: Choose the appropriate type:
3.4 System Settings
Machine: Keep Default (i440fx) for most Linux guests; use q35 for Windows or UEFI-required OSes
BIOS: Use SeaBIOS (default) or OVMF (UEFI) for modern OSes
SCSI Controller: Select VirtIO SCSI single for best disk performance
Qemu Agent: Check Enable QEMU Guest Agent, install it inside the VM later for enhanced integration
3.5 Disk Configuration
Bus/Device: SCSI with VirtIO SCSI controller
Storage: Select your LVM-Thin or ZFS pool
Disk Size: Allocate an appropriate size (e.g., 50 GB for a basic Linux server, 100 GB+ for Windows)
Cache: Set to Write Back for better performance on dedicated server NVMe storage
Discard: Enable (allows TRIM support, reclaims unused blocks on thin-provisioned storage)
3.6 CPU Configuration
Sockets: 1 (matches most dedicated server physical CPU topology)
Cores: Allocate based on your VM's workload and total available cores. A good rule: never allocate more vCPUs than physical threads available
Type: Set to host for best performance, this passes through your dedicated server's actual CPU model and instruction sets
3.7 Memory Configuration
Memory (MiB): Allocate RAM based on the VM's role:
Ballooning: Enable memory ballooning so Proxmox can dynamically reclaim unused RAM from idle VMs
3.8 Network Configuration
Bridge: Select vmbr0 (the default Linux bridge connected to your dedicated server's physical NIC)
Model: VirtIO (paravirtualized), always use this for maximum network throughput
MAC Address: Auto-generated (fine for most use cases)
Firewall: Enable Proxmox's built-in firewall if you want VM-level packet filtering
3.9 Confirm and Create
Review the summary tab and click Finish. Your VM is now created (but not yet started).
4.1 Start the VM and Open Console
Select your new VM in the left panel
Click Start
Click Console to open the VNC/NoVNC viewer
The VM will boot from the attached ISO. Proceed through your OS installer as you normally would on physical hardware.
4.2 Install the QEMU Guest Agent
Once your OS is installed, install the QEMU Guest Agent inside the VM. This allows Proxmox to communicate with the VM for features like proper shutdown, IP address reporting, and file system freeze during backups.
On Debian/Ubuntu:
apt update && apt install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent
On CentOS/AlmaLinux/Rocky Linux:
dnf install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent
On Windows: Install the VirtIO drivers ISO (download from Proxmox's official repository) which includes the QEMU Guest Agent installer.
4.3 Remove the ISO After Installation
Select the VM → Hardware tab
Click on the CD/DVD Drive
Click Edit and set it to Do not use any media
Networking is often the trickiest part of running Proxmox on a dedicated server in a data center. Here are the most common configurations.
5.1 Bridged Networking (Default)
By default, Proxmox creates a Linux bridge (vmbr0) attached to your physical NIC. VMs connected to vmbr0 share your dedicated server's network interface.
Check your bridge config at /etc/network/interfaces:
auto vmbr0
iface vmbr0 inet static
address 203.0.113.10/24
gateway 203.0.113.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
5.2 NAT Networking (Private VM Network + Internet Access)
For VMs that don't need their own public IPs, use NAT. Add a second bridge for private networking:
auto vmbr1
iface vmbr1 inet static
address 10.10.10.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s 10.10.10.0/24 -o vmbr0 -j MASQUERADE
Assign VMs to vmbr1 and give them static IPs in the 10.10.10.0/24 range.
5.3 Additional Public IPs
If your dedicated server hosting provider has assigned you additional IPs or a subnet, create a routed network setup. This is provider-specific, consult your data center's IP routing documentation or COLO BIRD's dedicated server networking guides.
6.1 VM Power Management
From the Proxmox dashboard, select any VM and use these controls:
Start: Powers on the VM
Shutdown: Gracefully shuts down the OS (requires QEMU Agent)
Stop: Force-kills the VM (like pulling the power)
Reboot: Graceful restart
Suspend: Saves VM state to RAM (like sleep mode)
Hibernate: Saves VM state to disk
6.2 VM Snapshots
Snapshots capture the entire VM state (disk + memory) at a point in time. They're invaluable before making risky changes.
Create a snapshot:
Select the VM → Snapshots tab
Click Take Snapshot
Enter a name and description. Check Include RAM to capture memory state.
Restore a snapshot:
Select the snapshot from the list
Click Rollback
Best Practice: On production dedicated servers, avoid keeping long-running snapshots; they consume storage space and can slow disk I/O over time. Use Proxmox Backup Server (PBS) for long-term backup retention instead.
6.3 VM Backups
Proxmox has built-in backup functionality:
Go to Datacenter → Backup → Add
Select the VM(s) to back up
Choose a storage target (local, NFS, PBS)
Set the schedule (daily, weekly)
Choose backup mode:
6.4 Clone and Template VMs
Once you have a perfectly configured VM, turn it into a template for rapid deployment:
Right-click the VM → Convert to Template
To deploy a new VM from it: right-click the template → Clone
6.5 Live Migration (Proxmox Cluster)
If you have multiple dedicated servers running Proxmox in a cluster, you can live-migrate VMs between nodes with zero downtime:
Right-click the VM → Migrate
Select the target node
Click Migrate
Shared storage (Ceph, NFS) is required for live migration with memory.
7.1 CPU Pinning
On a dedicated server, you can pin VM vCPUs to specific physical CPU cores to reduce latency and prevent CPU resource contention:
qm set 100 --cpuunits 1024
taskset -pc 0,1,2,3 $(pgrep -f "kvm.*100")
For persistent pinning, edit the VM config at /etc/pve/qemu-server/100.conf:
cpu: host,flags=+pcid
numa: 1
7.2 Enable Huge Pages
Huge pages reduce TLB pressure for memory-intensive VMs. On the Proxmox host:
echo 'vm.nr_hugepages=1024' >> /etc/sysctl.conf
sysctl -p
7.3 I/O Thread Optimization
Enable IOThreads to separate disk I/O from the VM's vCPU threads:
In the VM Hardware settings:
Edit the SCSI disk → Enable IO Thread
Or via CLI:
qm set 100 --scsi0 vm-storage:vm-100-disk-0,iothread=1
7.4 VirtIO Balloon Driver Tuning
On dedicated servers with sufficient RAM, consider disabling memory ballooning for latency-sensitive VMs (databases, real-time workloads) and allocating fixed memory:
qm set 100 --balloon 0
Running a hypervisor on a bare metal dedicated server means a security breach could compromise every VM simultaneously. Follow these hardening steps:
8.1 Restrict Proxmox Web UI Access
Never leave port 8006 open to the internet. Use one of these approaches:
SSH Tunneling:
ssh -L 8006:localhost:8006 root@YOUR_SERVER_IP
Then access https://localhost:8006 in your browser.
VPN Gateway: Set up WireGuard or OpenVPN as a VM on Proxmox, route all management traffic through it.
Firewall Rule: Whitelist only your office/home IP for port 8006 using iptables or nftables.
8.2 Create Non-Root Admin Users
Avoid using the root account for daily operations:
Go to Datacenter → Users → Add
Create a new user with pam authentication
Assign the Administrator role at the Datacenter level
8.3 Enable Two-Factor Authentication (2FA)
Go to Datacenter → Permissions → Two Factor
Add a TOTP authenticator for your admin accounts
8.4 Keep Proxmox Updated
apt update && apt dist-upgrade -y
Subscribe to the Proxmox security mailing list to stay informed about patches.
8.5 Enable VM-Level Firewall
Proxmox has a built-in firewall for VMs:
Go to VM → Firewall tab
Enable the firewall
Add rules to allow only the ports your application needs
9.1 Built-in Proxmox Monitoring
The Proxmox web UI provides real-time graphs for:
CPU usage (per host and per VM)
Memory consumption
Disk I/O and read/write throughput
Network traffic per VM
Access them by clicking your node or any VM → Summary tab.
9.2 External Monitoring with Prometheus + Grafana
For production dedicated server environments, set up Proxmox metrics export:
Install the prometheus-pve-exporter on your Proxmox host and scrape it with a Prometheus instance running in a separate VM. Build Grafana dashboards for long-term visibility into VM health, resource pressure, and storage trends.
9.3 Configure Email Alerts
Go to Datacenter → Notifications
Configure SMTP settings with your mail server
Enable alerts for: node failures, backup completion/failure, storage overcommit
VM Won't Start, "KVM Virtualization Not Available"
Cause: Hardware virtualization is disabled in BIOS.
Fix: Reboot the dedicated server into BIOS/UEFI settings and enable Intel VT-x or AMD-V. On remote servers, use IPMI/iDRAC to access BIOS remotely.
Verify after enabling:
egrep -c '(vmx|svm)' /proc/cpuinfo
Output should be > 0.
VM Disk Performance Is Slow
Cause: Using IDE or SATA disk bus instead of VirtIO.
Fix: Change the disk controller to VirtIO SCSI and enable IO threads (as covered in Step 7).
VM Loses Network After Host Reboot
Cause: Bridge configuration not persisted.
Fix: Always edit /etc/network/interfaces directly on the Proxmox host. Do not rely solely on the web UI for network changes on dedicated servers.
Snapshots Filling Up Storage
Cause: Old snapshots accumulating on LVM-Thin or ZFS.
Fix: Delete old snapshots via VM → Snapshots tab, or automate cleanup with a scheduled script.
| Feature | Proxmox VE | VMware ESXi | Microsoft Hyper-V |
|---|---|---|---|
| Cost | Free (open-source) | Paid license | Included with Windows Server |
| KVM-based | Yes | No (proprietary) | No (proprietary) |
| Web UI | Yes (built-in) | Yes | Limited |
| Container Support | Yes (LXC) | No (native) | No |
| Community Support | Strong | Strong | Moderate |
| Ideal For | Dedicated servers, homelabs, hosting | Enterprise vSphere | Windows-heavy environments |
For dedicated server use cases, especially when cost-efficiency, Linux workloads, and open-source flexibility matter, Proxmox VE consistently outperforms alternatives.
Proxmox VE transforms a single bare metal dedicated server into a powerful private cloud platform. By following this guide, you've learned to:
Install Proxmox directly on dedicated server hardware
Create and configure optimized virtual machines
Set up storage, networking, backups, and snapshots
Harden the environment for production use
Monitor and troubleshoot your Proxmox infrastructure
The true power of dedicated server virtualization with Proxmox is the control you retain over your hardware, data, and workloads, without the overhead of shared hosting environments or the cost of commercial hypervisors.
At COLO BIRD, we specialize in dedicated servers designed to run demanding workloads like Proxmox-based virtualization environments. Whether you need high-core-count CPUs for dense VM hosting, NVMe-backed storage for low-latency disk I/O, or high-bandwidth uplinks for heavy network traffic, our dedicated server infrastructure is built for exactly this.
Yes. As long as you have full root access to the bare metal hardware (not a VPS), you can install Proxmox VE. Most colocation and dedicated server providers support custom OS installations via IPMI or rescue mode.
It depends on your hardware. A dedicated server with 32 CPU cores, 128 GB RAM, and 2 TB NVMe can comfortably host 20–50 lightweight VMs or 10–15 resource-intensive ones.
Absolutely. Many hosting providers, SaaS companies, and enterprise IT teams rely on Proxmox VE in production. It supports HA (High Availability) clusters, enterprise storage backends, and professional support subscriptions.
A VM runs a full kernel and OS in full hardware isolation, ideal for Windows, FreeBSD, or security-sensitive Linux workloads. LXC containers share the host kernel, making them faster and more resource-efficient for Linux-only workloads.
Yes. Install Windows Server or desktop editions using the KVM VM type with VirtIO drivers for best performance.