For IT help contact admin@scrivener.pro

Monero Mining on A Proxmox – Complete Setup Guide

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

  1. In Proxmox web interface, click Create VM
  2. 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: ibpb and virt-ssbd should show “On”
  • Remove Intel-specific flags if using AMD
  • If you get errors about unsupported features, use host CPU 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

  1. Start the VM and open Console
  2. Follow Ubuntu installation wizard
  3. Create user account
  4. Install OpenSSH server when prompted (or install later)
  5. 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)

  1. Check your current network interface name:
ip a

  1. Edit netplan configuration:
sudo nano /etc/netplan/00-installer-config.yaml

  1. 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

  1. Apply configuration:
sudo netplan apply

  1. 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 4 but 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 with 4 or 8)
  • 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 host in Proxmox
  • Remove incompatible CPU flags
  • Use generic CPU type like kvm64 for 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 ModelCores/ThreadsExpected HashrateDaily Earnings*
Ryzen 9 7945HX16C/32T16-20 KH/s$0.50-$1.00
Ryzen 9 5950X16C/32T18-22 KH/s$0.60-$1.10
Ryzen 7 5800X8C/16T10-12 KH/s$0.30-$0.60
Intel i9-12900K16C/24T14-18 KH/s$0.45-$0.90

*Estimates based on current XMR prices and difficulty. Actual earnings vary.


Additional Resources


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