How To Setup xmr-node-proxy on Ubuntu 16.04

xmr-node-proxy allows you to merge multiple Monero mining rigs into one, which helps lower the load on pools, reduces bandwidth used and allows you to use a lower difficulty setting. When using a proxy, the mining pool that you connect to see only one miner. 

How To Setup

The first thing you will need is at least 2GB of memory for the installation script. This can be handled by either 2GB of actual ram or by setting up swap space. In this article we will be using a Digital Ocean droplet with no swap space. As most people will only need 512 MB of memory once the script is installed, we are going to use Digital Oceans resize option to start to get the script installed.

First, create a new Digital Ocean instance with 512 MB of memory. Once the instance is up shutdown the instance and resize it to 2GB of memory, choosing to not resize the disk space and only the CPU and Memory. Once the resize is done, boot the droplet and log in.

Installing xmr-node-proxy

The first thing we are going to do is setup our non root user to run the script:

useradd -d /home/nodeproxy -m -s /bin/bash nodeproxy
passwd nodeproxy

Now lets add our user to the sudo list

echo "nodeproxy ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

Now lets login to our non root user to run the script:

su - nodeproxy
curl -L | bash

After the installation is done lets activate NVM:

source ~/.bashrc

Now lets shutdown the instance and resize back to 512 MB and boot your instance.

Once done boot into the server and lets edit your config.json. Below is how mine is configured for 29 miners that do around 8 kh/s.

  "pools": [
      "hostname": "",
      "port": 7777,
      "ssl": false,
      "allowSelfSignedSSL": false,
      "share": 100,
      "username": "46dpA9N1KDE9yERcSGASXPUyA4ga1GrPq5sDXqwwjQL2dAmf5kvgpNQUWdvyT1r55pfwfvuBn2h7YQPhZFYdWtjWUVUTobh",
      "password": "password:emailaddress",
      "keepAlive": true,
      "coin": "xmr",
      "default": true
  "listeningPorts": [
      "port": 3333,
      "ssl": false,
      "diff": 2500,
      "coin": "xmr"
  "bindAddress": "",
  "developerShare": 0,
  "daemonAddress": "",
  "coinSettings": {
      "minDiff": 100,
      "maxDiff": 300000,
      "shareTargetTime": 5

Depending on the amount of miners and hashrate that you are doing, you will need to adjust the following: diff, shareTargetTime, minDiff and maxDiff.

and now lets start the proxy:

cd ~/xmr-node-proxy/
pm2 start proxy.js --name=proxy --log-date-format="YYYY-MM-DD HH:mm Z"
pm2 save

Now lets start the monitoring program

pm2 monit

Now you should have a running proxy! Simply change all your miners to connect to the ip address of your proxy server and on port 3333.

  • 8

Leave a Reply

15 Comments on "How To Setup xmr-node-proxy on Ubuntu 16.04"

Notify of
Sort by:   newest | oldest | most voted

Don’t you need to open port 3333 in the firewall as well?


clean install ubuntu 16.04 but how to solve this issue? looks like cryptonote-util not available anymore?

2017-10-04 15:29 +03:00: Error: Cannot find module ‘cryptonote-util’
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (/home/nodeproxy/xmr-node-proxy/lib/xmr.js:3:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)


are you sure you get 8.000 H/s with 29 Droplets?

A single $5 Droplet does 30 H/s in my tests.

Br, Max


Hi, I have 8 pc and I am using xmr-stuk-cpu on supportxmr pool, and I installed xmr-node as you show up, but I really don’t know how I connect my 8 worker on xmr-node-proxy. By the way, should I install this program on the all of my pc or just one of them? when I run the pm2 monit, I am getting result that “proxy > 2017-10-30 12:43 +03:00: The proxy currently has 0 miners connected at 0 h/s with an average diff of NaN”
Can you please help me?