Overview
This guide covers setting up a dedicated Monero (XMR) mining VM on Proxmox using XMRig miner software. Mining Monero uses CPU resources and can serve as a productive space heater during winter months.
Hardware Requirements
Recommended Specs
- CPU: AMD Ryzen or Intel with AES-NI support (16+ cores recommended)
- RAM: 64 GB (allows 4+ GB for mining VM)
- Storage: Minimal – 8 GB is sufficient for mining VM
- Cooling: Adequate cooling required for sustained 100% CPU load
- Network: Standard ethernet connection
Performance Expectations
- Ryzen 9 7945HX (16C/32T): ~16-20 KH/s
- Power consumption: ~120-150W for CPU mining
- Daily earnings: ~$0.50-$1.00 (varies with XMR price)
- Heat output: Functions as 1000-1500W space heater

Part 1: Create Proxmox VM
Step 1: Create New VM
- In Proxmox web interface, click Create VM
- Configure each tab as follows:
General Tab
- VM ID: Auto or custom
- Name:
monero-miner(or your choice)
OS Tab
- ISO: Ubuntu Server 22.04 or 24.04 LTS
- Install Ubuntu using standard process
System Tab
- Machine: Default (i440fx)
- BIOS: Default (SeaBIOS)
- SCSI Controller: VirtIO SCSI single
Disks Tab
- Storage: local-zfs (or your storage)
- Disk size: 8 GB minimum
- Cache: Default (No cache)
- IO thread: ✓ Enabled
- Discard: Optional
- SSD emulation: Leave unchecked
CPU Tab
- Sockets: 1
- Cores: 26-28 (leave 0-2 cores for Proxmox host)
- Type:
host(passes through actual CPU features) - CPU limit: unlimited (or 90-95% for thermal management)
- CPU units: 100 (default)
- Enable NUMA: Unchecked (for single-socket systems)
CPU Flags:
- For AMD CPUs:
ibpbandvirt-ssbdshould show “On” - Remove Intel-specific flags if using AMD
- If you get errors about unsupported features, use
hostCPU type
Memory Tab
- Memory: 4096 MB (4 GB minimum)
- Can allocate more if available
Network Tab
- Bridge: vmbr0 (default)
- Model: VirtIO (paravirtualized)
Step 2: Install Ubuntu
- Start the VM and open Console
- Follow Ubuntu installation wizard
- Create user account
- Install OpenSSH server when prompted (or install later)
- Complete installation and reboot
Part 2: Configure Ubuntu VM
Step 1: Enable SSH Access
If SSH wasn’t installed during setup:
sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable ssh
sudo systemctl start ssh
Verify SSH is running:
sudo systemctl status ssh
Find your VM’s IP address:
ip a
Step 2: Set Static IP (Optional but Recommended)
- Check your current network interface name:
ip a
- Edit netplan configuration:
sudo nano /etc/netplan/00-installer-config.yaml
- Configure static IP (adjust to your network):
network:
version: 2
ethernets:
ens18: # Replace with your interface name
addresses:
- 192.168.1.100/24 # Your desired static IP/subnet
routes:
- to: default
via: 192.168.1.1 # Your gateway/router IP
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
- Apply configuration:
sudo netplan apply
- Verify:
ip a
Step 3: SSH into VM
From your workstation:
ssh username@192.168.1.100
Part 3: Install XMRig Mining Software
Step 1: Install Dependencies
sudo apt update && sudo apt upgrade -y
sudo apt install git build-essential cmake libuv1-dev libssl-dev libhwloc-dev -y
Step 2: Download and Compile XMRig
cd ~
git clone https://github.com/xmrig/xmrig.git
cd xmrig
mkdir build && cd build
cmake ..
make -j$(nproc)
Compilation takes 5-10 minutes depending on CPU.
Step 3: Verify Installation
./xmrig --version
Expected output:
XMRig 6.24.0
built on Oct 9 2025 with GCC 13.3.0
features: 64-bit AES
Part 4: Get Monero Wallet
Create Wallet
You need a Monero wallet address to receive mining payments. Options:
Mobile (Easiest):
- Cake Wallet (iOS/Android) – Recommended for beginners
- Supports multiple cryptocurrencies including Monero
Desktop:
- Feather Wallet (Linux/Windows/Mac) – Lightweight, privacy-focused
- Monero GUI – Official wallet, full features
Web (Quick Start):
- MyMonero.com – Web-based wallet
Wallet Address Types
- Primary address: Starts with
4(standard) - Subaddress: Starts with
8(better privacy, works for mining) - Integrated address: Starts with
4but longer
All types work for mining. Subaddresses (8...) are recommended for privacy.
Part 5: Choose Mining Pool
Recommended Pools
MoneroOcean (Recommended for beginners)
- Auto-switches to most profitable algorithm
- URL:
gulf.moneroocean.stream:10128 - Port 10128 for RandomX (Ryzen/modern CPUs)
- Minimum payout: 0.003 XMR
- Dashboard: https://moneroocean.stream
SupportXMR
- Large, reliable pool
- URL:
pool.supportxmr.com:3333 - Minimum payout: 0.1 XMR
- Dashboard: https://supportxmr.com
P2Pool (Advanced – Decentralized)
- Requires running your own Monero node
- Most decentralized option
- More complex setup
Part 6: Start Mining
Quick Start Command
cd ~/xmrig/build
./xmrig -o gulf.moneroocean.stream:10128 -u YOUR_WALLET_ADDRESS -p worker-name
Replace:
YOUR_WALLET_ADDRESS– Your Monero wallet address (starts with4or8)worker-name– Any name for this mining rig (e.g.,porch-miner)
What You Should See
[timestamp] net use pool gulf.moneroocean.stream:10128
[timestamp] net new job from gulf.moneroocean.stream:10128
[timestamp] randomx init dataset algo rx/0 (26 threads)
[timestamp] randomx allocated 2336 MB (2080+256) huge pages 100%
[timestamp] cpu READY threads 26/26 (26) huge pages 100%
Key Indicators
- ✅ Huge pages 100% – Maximum performance (critical!)
- ✅ New jobs arriving – Connected and working
- ✅ Algorithm rx/0 – RandomX for CPU mining
- ✅ Threads active – All cores working
Monitor Hashrate
Press h while miner is running to see hashrate summary:
speed 10s/60s/15m 16500 16400 16450 H/s max 16800 H/s
This shows hashes per second over different time periods.
Part 7: Create Systemd Service (Auto-Start)
To run miner automatically on boot:
Step 1: Create Config File
cd ~/xmrig/build
nano config.json
Paste this configuration (adjust wallet address and worker name):
{
"autosave": true,
"cpu": {
"enabled": true,
"huge-pages": true,
"hw-aes": null,
"priority": null,
"asm": true,
"max-threads-hint": 100
},
"opencl": false,
"cuda": false,
"pools": [
{
"algo": "rx/0",
"coin": null,
"url": "gulf.moneroocean.stream:10128",
"user": "YOUR_WALLET_ADDRESS",
"pass": "worker-name",
"keepalive": true,
"enabled": true,
"tls": false
}
]
}
Step 2: Create Systemd Service
sudo nano /etc/systemd/system/xmrig.service
Paste this content (adjust username):
[Unit]
Description=XMRig Monero Miner
After=network.target
[Service]
Type=simple
User=YOUR_USERNAME
WorkingDirectory=/home/YOUR_USERNAME/xmrig/build
ExecStart=/home/YOUR_USERNAME/xmrig/build/xmrig --config=/home/YOUR_USERNAME/xmrig/build/config.json
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Step 3: Enable and Start Service
sudo systemctl daemon-reload
sudo systemctl enable xmrig.service
sudo systemctl start xmrig.service
Step 4: Check Status
sudo systemctl status xmrig.service
View logs:
sudo journalctl -u xmrig.service -f
Part 8: Monitoring and Optimization
Check Mining Dashboard
Visit your pool’s website:
- MoneroOcean: https://moneroocean.stream
- Enter your wallet address to see stats
- Shows hashrate, shares submitted, estimated earnings
Optimize Huge Pages (If Not 100%)
Check huge pages status:
grep HugePages /proc/meminfo
If huge pages allocation is less than 100%, configure manually:
sudo sysctl -w vm.nr_hugepages=1168
Make permanent:
echo "vm.nr_hugepages=1168" | sudo tee -a /etc/sysctl.conf
Temperature Monitoring
Install monitoring tools:
sudo apt install lm-sensors -y
sudo sensors-detect
sensors
For Proxmox host monitoring, check the web interface under the node’s Summary tab.
Performance Tuning
CPU Governor (Optional):
sudo apt install cpufrequtils -y
sudo cpufreq-set -g performance
Disable CPU frequency scaling:
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Part 9: Maintenance and Troubleshooting
Common Issues
Issue: Low hashrate or “huge pages 0%”
- Solution: Configure huge pages (see Part 8)
- Reboot VM after configuration
Issue: Miner crashes or restarts frequently
- Check system logs:
sudo journalctl -u xmrig.service - Verify adequate cooling
- Reduce thread count if thermal throttling occurs
Issue: Can’t connect to pool
- Check firewall:
sudo ufw status - Allow outbound connections on mining ports
- Verify internet connectivity:
ping google.com
Issue: VM won’t start – CPU feature error
- Change CPU type to
hostin Proxmox - Remove incompatible CPU flags
- Use generic CPU type like
kvm64for maximum compatibility
Update XMRig
cd ~/xmrig
git pull
cd build
make -j$(nproc)
sudo systemctl restart xmrig.service
Stop Mining
Temporary:
sudo systemctl stop xmrig.service
Disable auto-start:
sudo systemctl disable xmrig.service
Check Earnings
Most pools show estimated earnings on their dashboard. Typical metrics:
- Current hashrate: Real-time performance
- Average hashrate: 24-hour average
- Total paid: XMR sent to your wallet
- Pending balance: XMR awaiting payout threshold
Part 10: Security Best Practices
Firewall Configuration
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow out 10128/tcp # MoneroOcean port
sudo ufw status
Regular Updates
sudo apt update && sudo apt upgrade -y
Schedule automatic security updates:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
SSH Hardening (Optional)
Disable password authentication (use SSH keys):
sudo nano /etc/ssh/sshd_config
Set:
PasswordAuthentication no
Restart SSH:
sudo systemctl restart ssh
Quick Reference Commands
Start/Stop Mining
sudo systemctl start xmrig.service
sudo systemctl stop xmrig.service
sudo systemctl restart xmrig.service
Check Status
sudo systemctl status xmrig.service
sudo journalctl -u xmrig.service -f
Manual Mining (Testing)
cd ~/xmrig/build
./xmrig -o gulf.moneroocean.stream:10128 -u WALLET_ADDRESS -p worker
Check Hashrate in Running Miner
Press h key
Check System Resources
htop
sensors
Performance Expectations by CPU
| CPU Model | Cores/Threads | Expected Hashrate | Daily Earnings* |
|---|---|---|---|
| Ryzen 9 7945HX | 16C/32T | 16-20 KH/s | $0.50-$1.00 |
| Ryzen 9 5950X | 16C/32T | 18-22 KH/s | $0.60-$1.10 |
| Ryzen 7 5800X | 8C/16T | 10-12 KH/s | $0.30-$0.60 |
| Intel i9-12900K | 16C/24T | 14-18 KH/s | $0.45-$0.90 |
*Estimates based on current XMR prices and difficulty. Actual earnings vary.
Additional Resources
- XMRig Documentation: https://xmrig.com/docs
- MoneroOcean Guide: https://moneroocean.stream/#/help/getting_started
- Monero Official Site: https://getmonero.org
- r/MoneroMining: Reddit community for mining support
- Proxmox Documentation: https://pve.proxmox.com/wiki/Main_Page
Notes
- Mining profitability varies with XMR price and network difficulty
- Consider electricity costs vs mining revenue
- Mining as a winter heater offsets heating costs
- Keep mining VM on separate network segment if running other critical services
- Backup your wallet seed phrase securely
- Never share your wallet’s private keys or seed phrase
Last Updated: October 2025
XMRig Version: 6.24.0
Tested on: Proxmox 8.x, Ubuntu 22.04/24.04

Leave a comment