Skip to main content Link Menu Expand (external link) Document Search Copy Copied

How to run a Monero (XMR) node

We strongly recommend running your own Monero node! Here is a simple guide for running a Monero node with Ubuntu.

Select hardware

You don’t need fancy hardware to run a node that is only meant to handle your basic personal use, but we recommend the following:

  • At least 256 GB of storage on an SSD
  • At least dual core, ideally quad core
  • At least 2 GB of RAM, ideally 4 GB
  • At least 10 Mbps connection, with at least 100 GB of monthly data

We recommend running the node on your home network.

Install Ubuntu

You can use another OS, but we will use Ubuntu for this guide.

Download the latest Ubuntu “LTS” release here. For this guide, we are using the command line only version.

You will need to add this image to a flash drive. Here are guides for the operating system you are currently using:

Attach the flash drive to your Monero node computer, and boot from USB.

Follow the instructions to install Ubuntu Server. After you are done, turn off the computer, remove the flash drive, and turn it back on. Make sure it boots to the newly installed Ubuntu operating system.

Update and harden Ubuntu

Run these commands (one at a time) to update and harden Ubuntu:

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y ufw curl
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
su - $USER
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 18080/tcp
sudo ufw allow 18081/tcp
sudo ufw enable

These will install Docker and enable a firewall.

Install monerod

The Monero node software is called monerod.

You will need to decide if you want other people to be able to use your node for syncing and sending transactions. Doing so is good for the Monero network, but it will cost you more bandwidth.

If you DO want others to be able to access your node

Run the following command:

docker run -d --restart unless-stopped --name="monerod" -p 18080:18080 -p 18081:18081 -v bitmonero:/home/monero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18081 --no-igd --no-zmq --enable-dns-blocklist --public-node

If you DON’T want others to be able to access your node

Select a username and a strong password. Replace user:pass at the end of the command below with your selected username and STRONG password. For example (don’t use this!), replace it with monero:ryfP3IsKG6uZRiXp9zRB.

docker run -d --restart unless-stopped --name="monerod" -p 18080:18080 -p 18081:18081 -v bitmonero:/home/monero sethsimmons/simple-monerod:latest --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18081 --no-igd --no-zmq --enable-dns-blocklist --rpc-login:user:pass

For all cases

Copy/paste the following entire block as a single command:

docker run -d \
    --name watchtower --restart unless-stopped \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower --cleanup \
    monerod tor

Configuring your router firewall

If you want your Monero node to be reachable outside of your local network, you will need to enable port forwarding on your router.

You will need to forward these ports:

  • 18080 (TCP only, not UDP)
  • 18081 (TCP only, not UDP)

There are many router-specific guides on portforward.com.

Make sure to use a modern router from a reputable brand that is still getting security updates! Update the router firmware, and select a STRONG router password!

Updates

Your Monero node will automatically update to the latest Monero version! You will want to periodically update Ubuntu:

sudo apt-get update && sudo apt-get upgrade -y

Credits

Thanks to Seth for Privacy for their node guide and their Docker image.


Not ready to run your own Monero node yet? Check out a list of popular Monero remote nodes at nodes.monero.com.