Run your own Monero node on a VPS
Connecting your wallet to someone else’s node leaks your privacy to a stranger. A full node of your own on a VPS fixes that for about the price of two coffees a month — here is the complete setup.
Updated 2026-06-12

Monero’s on-chain privacy is excellent; the weak point is how wallets reach the chain. A light wallet connected to a public remote node hands that node your IP address, your wallet’s restore height, and timing patterns it can correlate — a strange concession from people who chose Monero precisely to avoid surveillance. Running your own full node closes the gap: your wallet talks only to a machine you control, which independently validates every block and relays your transactions into the network mixed among everyone else’s. A VPS is the natural home for one — always on, fast NVMe for the chain database, a stable IP for the P2P port, and none of your home connection’s bandwidth caps or NAT pain. Renting it without KYC and paying in XMR keeps the whole stack consistent with the reason you are doing this.
Sizing, honestly: the Monero blockchain is past 230 GB unpruned and growing; a pruned node (~85 GB, fully validating, fully private for your own wallet) fits our Runner plan (3 vCPU / 6 GB / 100 GB NVMe, $14/mo) with breathing room, while an unpruned archive node wants Direwolf (360 GB) or above. 2 GB of RAM is the floor; 4–6 GB makes initial sync dramatically less painful.
Pruned vs full archive: which to run
A pruned node stores roughly a third of the chain by discarding reconstructible data, yet still validates every rule and serves your wallets with identical privacy — for personal use it is simply the right answer, and it is why the $14 Runner is our recommended tier. A full archive node keeps everything; the network needs a healthy population of them (they serve historical data and bootstrap other nodes), so running one on a Direwolf is a genuine contribution to Monero’s health — just budget for the chain’s permanent growth.
Is running a node within the rules?
Yes, comfortably. A node validates and relays blocks; it is infrastructure, the same category as a Tor relay or a DNS resolver, and it is welcome here. Note one adjacent boundary in the AUP: mining on shared-CPU plans is not allowed (it monopolises shared cores) — but a node is not a miner and uses modest CPU after sync. Public restricted-RPC nodes that serve strangers’ wallets are likewise fine; just expect background scanning traffic, which the included DDoS protection absorbs.
- Deploy the VPS and harden it
Order a Runner (pruned) or Direwolf (full archive) with Debian 12, in any region — a Monero node has no latency requirements, so Romania at base price is a fine default. Before anything else, do the ten-minute basics from our hardening guide: SSH keys, no root password login, nftables, unattended upgrades.
- Install monerod from the official release
Download the current Linux x64 CLI bundle from getmonero.org and verify the hash against the signed list — on a privacy project, supply-chain paranoia is hygiene, not theatre:
wget https://downloads.getmonero.org/cli/linux64 -O monero.tar.bz2 tar xjf monero.tar.bz2 && sudo mv monero-x86_64-linux-gnu-*/monerod /usr/local/bin/ sudo useradd -r -m -d /var/lib/monero monero - Configure the daemon
Create
/var/lib/monero/monerod.conf. The pruned-node baseline:data-dir=/var/lib/monero prune-blockchain=1 p2p-bind-ip=0.0.0.0 p2p-bind-port=18080 rpc-restricted-bind-ip=0.0.0.0 rpc-restricted-bind-port=18089 out-peers=32 in-peers=48 db-sync-mode=safe log-level=0The restricted RPC port is the one safe to expose for your own wallets; never open the unrestricted 18081 to the internet.
- Run it as a systemd service
A unit file keeps the node alive across reboots:
[Unit] Description=Monero full node After=network-online.target [Service] User=monero ExecStart=/usr/local/bin/monerod --config-file /var/lib/monero/monerod.conf --non-interactive Restart=on-failure [Install] WantedBy=multi-user.targetSave as
/etc/systemd/system/monerod.service, thensystemctl enable --now monerod. - Open the firewall ports
Allow P2P (18080) to everyone — that is how you serve the network — and restricted RPC (18089) ideally only to IPs you use, or to all if this node will serve your phone wallet on the move:
nft add rule inet filter input tcp dport 18080 accept nft add rule inet filter input tcp dport 18089 acceptDDoS protection on the VPS is included here by default, which matters for a service that advertises itself publicly.
- Let it sync — and know what to expect
Initial block download is the painful part: on NVMe with 4+ GB RAM expect 1–2 days for a pruned node (the same sync on a SATA-SSD budget box routinely takes a week — this is where NVMe vs SSD stops being abstract). Watch progress with
journalctl -fu monerodormonerod status; you are done when height matches a public explorer’s. - Point your wallet at your node
In Monero GUI/CLI, Feather or Monerujo, set the daemon address to
your-vps-ip:18089. For belt-and-braces transport privacy, run the wallet connection over your own WireGuard tunnel to the same VPS, and the node sees only tunnel traffic. From this point your transactions broadcast from your node, your wallet scans against your node, and no third party sits in the loop.
Frequently asked questions
Which VPS plan do I need for a Monero node?
Pruned node: Runner (3 vCPU / 6 GB / 100 GB NVMe, $14/mo) is the sweet spot — the ~85 GB pruned chain plus OS fits with margin for growth. Full archive: Direwolf (360 GB) or larger. Below 100 GB of disk, prune or don’t bother.
How long does the initial sync take?
On our NVMe with 4–6 GB RAM: typically 1–2 days pruned. Storage latency is the bottleneck, which is why the same job on SATA or HDD hosts stretches to many days. db-sync-mode=fast shaves hours at a small crash-consistency cost during IBD only.
Does running a node make my payments more anonymous?
It removes a real leak: a remote node operator can no longer log your IP, restore height and broadcast timing. On-chain privacy was already Monero’s job; the node fixes the network-layer side. Pair it with paying for the VPS itself in XMR and the loop closes neatly.
Can I share my node with friends or the public?
Yes — that is what the restricted RPC port is for: it rate-limits and disables dangerous calls. Keep the unrestricted port (18081) bound to localhost only, and expect the included DDoS protection to earn its keep once the address circulates.
Why host it on a VPS instead of at home?
Uptime, a stable routable IP, no NAT wrangling, no exposure of your home address in Monero’s peer lists, and NVMe sync speed. Home nodes are great too — the VPS simply removes every operational excuse not to run one.
Keep exploring.
Deploy an offshore VPS in about a minute
No-KYC, crypto-paid, all-NVMe. Pick a tier, pay in Monero or any major coin, and get root in roughly 60 seconds.
