Monero is a privacy-focused cryptocurrency; running your own node lets you interact with the network and verify transactions without relying on a third party, while also supporting the network's overall decentralization.
Prerequisites
- Ubuntu 22.04/24.04 VPS: 4 vCPU, 4-8 GB RAM
- At least 200 GB SSD storage
Step 1 — Download Monero Daemon
wget https://downloads.getmonero.org/cli/linux64
tar xjf linux64
Verify the download's checksum against Monero's official published hashes before proceeding, as recommended in Monero's official documentation.
Step 2 — Install the Binaries
sudo cp monero-x86_64-linux-gnu-*/monerod /usr/local/bin/
sudo cp monero-x86_64-linux-gnu-*/monero-wallet-cli /usr/local/bin/
Step 3 — Create a Data Directory
mkdir -p ~/.bitmonero
Step 4 — Start the Daemon
monerod --detach --data-dir ~/.bitmonero
Step 5 — Monitor Sync Progress
monerod status
Step 6 — Allow the P2P Port
sudo ufw allow 18080/tcp
Running as a systemd Service
sudo nano /etc/systemd/system/monerod.service
[Unit]
Description=Monero Daemon
After=network.target
[Service]
User=monero
ExecStart=/usr/local/bin/monerod --data-dir /home/monero/.bitmonero --non-interactive
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now monerod
Restricting RPC Access
By default, the RPC interface is bound to localhost only — keep it this way unless you specifically need remote access, and if you do, add authentication:
monerod --rpc-login username:password --confirm-external-bind
Using Your Node with a Wallet
monero-wallet-cli --daemon-address 127.0.0.1:18081
Connects your wallet to your own node rather than a third-party remote node, keeping your transaction queries private.
Pruning to Reduce Storage (Optional)
monerod --prune-blockchain
Significantly reduces storage requirements while still allowing full transaction validation, at the cost of not being able to serve full historical blockchain data to other nodes.
Common Errors
Sync is very slow — verify SSD storage is in use and check available bandwidth; initial sync involves downloading and verifying the full chain.
"Failed to connect to daemon" from the wallet — verify monerod is actually running and the RPC port (18081 by default) matches what the wallet is configured to connect to.
Continue Reading
- VPS Requirements for Running a Blockchain Node
- How to Secure a Cryptocurrency Node on a VPS
- Understanding Pruned vs Full Blockchain Nodes
Browse more articles in Cryptocurrency & Blockchain Node Hosting.