Without consideration for mobile where IPs rapidly change currently it’s based upon IP swapping and I recently added a convention to auto-update addresses when a node makes a connection to other trusted nodes.
Later I envision an optional opt-in service that resolves node identity to IP address. Something like DNS but for hashes instead of domains.
Currently I am focused on updating a bunch of test automation and then I want to turn my attention to adding a command shell to the application GUI, which would solve for SSH into remote personal devices in your node list.
If you can tolerate transient centralization, webrtc might be a good choice and it's very likely if you are skilled at it and thought hard about the trust model you could figure out how to multihome webrtc, which would re-decentralize it.