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.txtOnly 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/monerod3. 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=644. 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.targetsudo 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 18081Check 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.