Consensys recently updated their Privacy Policy giving notice that Infura will begin collecting user data, including IP addresses. Among other things, Infura serves as the default back-end node for the popular MetaMask wallet so the impact of this data collection is pretty big. While probably harmless in the grand scheme of things, we are after all in the crypto-verse so this obviously ruffled the feathers of a lot of privacy-minded types.

One way to opt-out of this data collection is to configure MetaMask to point to your own Ethereum node rather than Infura. MetaMask has a sparse article on how to do this however it assumes you are using MetaMask on the same machine as your Ethereum node. If instead you have Geth running on some other machine on your local area network (a very common use case) the article is insufficient.

Configuring Geth

I’m assuming you’re running Geth already so I won’t go into details on how to set it up. If for some reason this is not the case I recommend following one of the excellent guides by Coincashew or Someresat. If you are running an execution client other than Geth, this guide will be a lot less useful, however with a modicum of ability to connect the dots and draw parallels, you can likely work it out an analog solution for your client of choice.

#!/bin/bash

geth \
    --mainnet \
    --datadir "/path/to/data/dir" \
    --authrpc.jwtsecret "/path/to/jwtsecret/jwt.hex" \
    --authrpc.addr 0.0.0.0 \
    --http \
    --http.addr 0.0.0.0 \
    --http.corsdomain 'chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn' \
/

This is an example of what start-up params you need to set up. The important one that most people miss is:

--authrpc.addr 0.0.0.0

By specifying 0.0.0.0 as the authrpc bind address, Geth will listen for RPC connections on ALL interfaces instead of just localhost / 127.0.0.1.

If you want to connect to Geth from more than just MetaMask, you can set the http.corsdomain to a wildcard instead of specifying the MetaMask extension:

--http.corsdomain '*'

Configuring MetaMask

Once Geth is up and running with the above settings, go into MetaMask’s Settings and create a new Network:

Adding a new Network in MetaMask

In the New RPC URL field, put your Ethereum node’s LAN IP (likely starts with a 192.168.*) similar to what’s shown in the above screen shot. If MetaMask is able to connect, it’ll allow you to save the network. That’s it!