Below we'll show an example configuration that allows you to run a Monero @daemon (eg on a home server or VPS) that you can connect to from another computer running your wallet.We do this over the Tor anonymity network to retrieve the transaction information needed by your wallet.The benefit of this approach is that the daemon (`monerod`) can stay on all of the time sending / receiving blocks, while the wallet can connect when needed and have access to the full blockchain. [Monerujo](https://www.monerujo.io/) should also work via [Orbot](https://guardianproject.info/apps/org.torproject.android/).Because Tor hidden services provide encryption and authentication, you can be confident that your RPC credentials will not be sent in the clear.Tor also solves problems often seen on home servers related to port-forwarding, IP addresses changing, etc -- it just works.This setup will also obfuscate the fact that you are connecting to a remote Monero node. Tested with Monero `v0.15.0.1` connecting a Mac laptop wallet to a remote Linux node (Ubuntu 18.04.2).
If everything looks good, make a note of the hidden service (onion address) name: ``` sudo cat /var/lib/tor/monero-service/hostname ``` It will be something like 4dcj312uxag2r6ye.onion -- use this for `HIDDEN_SERVICE` below.
Make sure you have Tor running locally so you can connect to the Tor network. One simple way on the Mac is to just start the Tor browser and use its Tor daemon.
Then test a simple RPC command, eg: ``` curl --socks5-hostname 127.0.0.1:9150 -u USERNAME:PASSWORD --digest -X POST http://HIDDEN_SERVICE.onion:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -H 'Content-Type: application/json' ``` Replace `USERNAME`, `PASSWORD`, and `HIDDEN_SERVICE` with values from above.Change `9150` to another port if needed by your local Tor daemon.
When you execute the command, you should get some info about the remote daemon if everything is working correctly.If not, add a ` -v ` to the beginning and try to debug why it's not connecting, check firewalls, password, etc.
If you are interested in experimenting with the GUI over Tor, you can try `torsocks` (note this may leak info -- do not rely on it if your life depends on maintaining anonymity).Here is an example on MacOS, adjust as needed for the Linux GUI: ``` torsocks --port 9150 /Applications/monero-wallet-gui.app/Contents/MacOS/monero-wallet-gui ```
This will allow the GUI to communicate with the Tor network.Once the GUI is open and a wallet loaded, you must configure it to connect to your Tor hidden service by adding your onion address to: "Settings > Node > Remote node > Address".