I have looked at dozens of similar questions about this, but none seems to have this particular problem. I have created a private network of three nodes on three different machines using geth1.5.5. When I take any two of them to a friend's house and connect via wifi, I can use admin.addPeer() with the sub-net address to connect them together and they sync up nicely and mine for each other, everything.
BUT when the machines are on different (xfinitywifi) routers and I try to connect with admin.addPeer() using an external IP address, they never connect. I have tried these machines with geth connecting to the mainnet and testnet and they have no trouble discovering peers there. So it's not as if xfinitywifi is blocking the nodes. The private net uses nodiscovery and they have the same networkid and genesis block - after all, they work fine on the same subnet. So what can possibly be the difference?? I use a web page to find my external IP on each machine, so I don't see how I can get that wrong. I have tried different listening ports, but again, that doesn't seem to do anything and the nodes work when on the same subnet. Anybody have any ideas?
admin.nodeInfo
returns when geth cannot connect to another instance? Check if it has resolved your ip. My guess is geth is not able to resolve your ip. You can set your external ip with a geth option--nat extip:<ipaddress>
.