English German
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). Unten findest du eine beispielhafte Konfiguration, mit welcher es dir möglich ist, einen Monero-Hintergrunddienst (etwa auf einem Heim-Server oder VPS) zu betreiben, zu dem du dich von einem anderen Rechner, auf welchem dein Wallet läuft, verbinden kannst. Über das Anonymitätsnetzwerk Tor werden die für dein Wallet benötigten Transaktionsinformationen wiederhergestellt. Das Gute an dieser Herangehensweise ist, dass der Hintergrunddienst (`monerod`) allzeit betrieben werden und damit dauerhaft Blöcke senden/empfangen kann, während das Wallet lediglich bei Bedarf - wenn es Zugriff auf die gesamte Blockchain benötigt - zu diesem verbunden werden kann. [Monerujo](https://www.monerujo.io/) sollte auch via [Orbot](https://guardianproject.info/apps/org.torproject.android/) laufen. Da Tors versteckte Dienste Verschlüsselung und Authentifizierung bieten, kannst du dir sicher sein, dass deine RPC-Anmeldedaten nicht ins "Clear(net)" gesendet werden. Tor behebt außerdem Probleme (etwa im Zusammenhang mit Portweiterleitungen oder IP-Adressenwechseln), die häufig bei Privatservern auftreten - es funktioniert einfach. Diese Einrichtung verschleiert zudem den Umstand, dass du dich zu einem Monero-Remote-Node verbindest. Getestet wurde die Verbindung eines Mac-Laptops zu einem Linux-Remote-Node (Ubuntu 18.04.2) mit der Monero-Version `v0.15.0.1`.
## Create a Tor hidden service for RPC ## Erstelle einen versteckten Tor-Dienst für RPC
Make sure [Tor is installed](https://community.torproject.org/relay/setup/bridge/debian-ubuntu/) and running correctly, then proceed. Stelle sicher, dass [Tor installiert ist](https://community.torproject.org/relay/setup/bridge/debian-ubuntu/) und richtig läuft. Fahre erst dann fort.
We only need to configure the RPC server to run as a hidden service here on port `18081`. Der RPC-Server muss lediglich so eingerichtet werden, dass er als versteckter Dienst, hier auf Port `18081`, läuft.
File: `/etc/torrc` Datei: `/etc/torrc`
``` HiddenServiceDir /var/lib/tor/monero-service/ HiddenServicePort 18081 127.0.0.1:18081 ``` Restart Tor: ``` sudo systemctl restart [email protected] ``` ``` HiddenServiceDir /var/lib/tor/monero-service/ HiddenServicePort 18081 127.0.0.1:18081 ``` Starte Tor neu: ``` sudo systemctl restart [email protected] ```
Make sure Tor started correctly: ``` sudo systemctl status [email protected] ``` Stelle sicher, dass Tor richtig gestartet hat: ``` sudo systemctl status [email protected] ```
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. Wenn soweit alles gut aussieht, mache eine Notiz des Namens des versteckten Dienstes (Onion-Adresse): ``` sudo cat /var/lib/tor/monero-service/hostname ``` Dieser wird ungefähr so wie "4dcj312uxag2r6ye.onion" aussehen. Du nutzt ihn weiter unten für `HIDDEN_SERVICE`.
### Configure Daemon to allow RPC ### Hintergrunddienst für RPC einrichten
In this example, we don't use Tor for interacting with the p2p network, just to connect to the monero node, so only RPC hidden service is needed. In diesem Beispiel wird Tor nicht zur Interaktion mit dem P2P-Netzwerk genutzt, sondern lediglich, um sich zum Monero-Node zu verbinden; dadurch wird nur der versteckte RPC-Dienst benötigt.
File: `~/.bitmonero/bitmonero.conf` (in the home directory of the Monero user) Datei: `~/.bitmonero/bitmonero.conf` (im Home-Verzeichnis des Monero-Nutzers)
``` no-igd=1 restricted-rpc=1 rpc-login=USERNAME:PASSWORD ``` (Make up a USERNAME and PASSWORD to use for RPC) ``` no-igd=1 restricted-rpc=1 rpc-login=USERNAME:PASSWORD ``` (Denke dir einen NUTZERNAMEN und ein PASSWORT für den RPC aus)
Restart the Daemon: `monerod stop_daemon; sleep 10; monerod --detach` Starte den Hintergrunddienst neu: `monerod stop_daemon; sleep 10; monerod --detach`
Make sure the daemon started correctly: ``` tail -f ~/.bitmonero/bitmonero.log ``` Stelle sicher, dass der Hintergrunddienst richtig gestartet hat: ``` tail -f ~/.bitmonero/bitmonero.log ```
## Connecting to your node from a local wallet ## Von einem lokalen Wallet zu deinem Node verbinden
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. Stelle sicher, dass Tor lokal bei dir läuft, sodass du dich zum Tor-Netzwerk verbinden kannst. Auf dem Mac ist ein einfacher Weg dazu das simple Starten des Tor-Browsers und die Nutzung des Tor-Hintergrunddienstes.
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. Teste dann einen einfachen RPC-Befehl, etwa: ``` 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' ``` Ersetze `USERNAME`, `PASSWORD` und `HIDDEN_SERVICE` mit den obigen Werten. Ändere `9150` zu einem anderen Port ab, wenn von deinem lokalen Tor-Hintergrunddienst benötigt.
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. Wenn alles korrekt läuft, solltest du nach dem Ausführen des Befehls Infos zum Remote-Hintergrunddienst erhalten. Falls dem nicht so ist, füge ` -v ` an den Anfang an und teste dann, aus welchem Grund keine Verbindung hergestellt wird; überprüfe Firewalls, das Passwort etc.
Once it is working, you can connect using your cli wallet: ``` ./monero-wallet-cli --proxy 127.0.0.1:9150 --daemon-host HIDDEN_SERVICE.onion --trusted-daemon --daemon-login USERNAME:PASSWORD --wallet-file ~/PATH/TO/YOUR/WALLET ``` Replace values above as needed. Sobald alles funktioniert, kannst du via CLI-Wallet verbinden: ``` ./monero-wallet-cli --proxy 127.0.0.1:9150 --daemon-host HIDDEN_SERVICE.onion --trusted-daemon --daemon-login USERNAME:PASSWORD --wallet-file ~/PATH/TO/YOUR/WALLET ``` Ersetze die Werte nach Bedarf.
## GUI ## GUI