I am trying to expose port 8545 on a local geth client for use with MetaMask on Chrome 83.0.4103.106 (x86_64), using a Windows host (10.0.18362.900). I store all my blockchain data on a separate drive, R:. I use geth --datadir=R:\geth --rpc --rpccorsdomain "*" --rpcaddr --rpcapi "eth,web3" --rpcport 8545 to start the full node. IPC connections work normally, and I can see that geth outputs:

INFO [06-21|17:52:34.051] Mapped network port     proto=tcp extport=30303 intport=30303 interface=NAT-PMP(
INFO [06-21|17:52:34.059] Mapped network port     proto=udp extport=30303 intport=30303 interface=NAT-PMP(

However, I do not see the same thing for port 8545. No matter which options I tried or omitted, and also while trying to run as administrator, 8545 always remains closed (when checked with nmap). This means that I am unable to access the node through MetaMask. I have already tried changing rpc to http. since the flags are deprecated, but this did not have any effect. I have also tried to specify "Custom RPC" in MetaMask and use my local IP address instead of Is there any way to explicitly tell geth to map 8545 as a TCP port?

I would also like to note that geth doesn't recognize that I specified, ignores the option, and proceeds to use my local IP. See:

INFO [06-21|17:52:34.016] HTTP endpoint opened     url= cors=* vhosts=localhost

Geth is done with IBD and is only about 100 blocks behind, with 10 peers connected.

  • I tried the same version of geth in a private testnet with the exact commandline and it will work as expected url= cors=* vhosts=localhost. One difference with the test environment is that the LAN doesn't have UPNP enabled, perhaps forcing geth to ignore nat configuration might do the trick --nat none. – Ismael Jun 22 at 3:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.