Skip to content
XMR Utility Network

Run a Monero full node on Ubuntu

Install the official monerod binary, verify it, run it as a dedicated user under systemd, and open only the P2P port.

15 min read · checked 2026-10-30

Requirements

  • Ubuntu 22.04 or 24.04 LTS, 64-bit
  • SSD storage: public nodes reported a database of about 295 GB in October 2026 for a full node; a pruned node needs roughly one third of that
  • 4 GB RAM minimum (8 GB is more comfortable)
  • Unmetered connection; the first sync downloads the full chain

1. Download and verify

# Download the CLI release and the signed hashes
wget https://downloads.getmonero.org/cli/linux64 -O monero-linux-x64.tar.bz2
wget https://www.getmonero.org/downloads/hashes.txt
wget https://raw.githubusercontent.com/monero-project/monero/master/utils/gpg_keys/binaryfate.asc

# Check the signing key fingerprint against getmonero.org, then verify
gpg --import binaryfate.asc
gpg --verify hashes.txt
sha256sum monero-linux-x64.tar.bz2   # must equal the monero-linux-x64-v… line in hashes.txt
Only download from getmonero.org or the monero-project GitHub. If the signature or the hash does not match, delete the files.

2. Install under a dedicated user

sudo useradd --system --create-home --home-dir /var/lib/monero --shell /usr/sbin/nologin monero
tar -xjf monero-linux-x64.tar.bz2
sudo install -m 0755 monero-x86_64-linux-gnu-*/monerod /usr/local/bin/monerod

3. Configuration

# /etc/monero/monerod.conf
data-dir=/var/lib/monero/.bitmonero
log-file=/var/lib/monero/monerod.log
# prune-blockchain=1        # uncomment for a pruned node (about 1/3 of the disk)
p2p-bind-ip=0.0.0.0
p2p-bind-port=18080
rpc-bind-ip=127.0.0.1       # full RPC stays local only
rpc-bind-port=18081
no-igd=1
enable-dns-blocklist=1
out-peers=32
in-peers=64

4. systemd service

# /etc/systemd/system/monerod.service
[Unit]
Description=Monero daemon
After=network-online.target
Wants=network-online.target

[Service]
User=monero
Group=monero
ExecStart=/usr/local/bin/monerod --config-file /etc/monero/monerod.conf --non-interactive
Restart=on-failure
NoNewPrivileges=true
ProtectSystem=full
PrivateTmp=true

[Install]
WantedBy=multi-user.target
sudo mkdir -p /etc/monero && sudo systemctl daemon-reload
sudo systemctl enable --now monerod
journalctl -u monerod -f          # watch the sync
sudo ufw allow 18080/tcp          # P2P only; never expose 18081

Check it

curl -s -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -H 'content-type: application/json' | grep -E '"height"|"synchronized"'

Limits

A node that only opens 18080 helps the network and gives your own wallets a trusted node. It does not hide your IP from peers; see the Tor and I2P guides.

Sources