WireGuard - Keine Internetverbindung möglich

Hallo,

ich habe mit PiVPN (GitHub - pivpn/pivpn: The Simplest VPN installer, designed for Raspberry Pi) einen WireGuard-Server auf einem Raspberry Pi installiert. Unter Android und Windows funktioniert die Verbindung einwandfrei, doch unter Linux gibt es Probleme. Es wird mir zwar angezeigt, dass die VPN verbunden ist, aber ich kann dann nicht auf das Internet oder das LAN des Servers zugreifen.
Im Netzwerkmanager kann ich die Konfigurationsdatei importieren, ohne dass Fehler angezeigt werden. Ich habe auch schon versucht, die VPN manuell einzurichten, indem ich die entsprechenden Werte aus der Datei kopiert und in die richtigen Felder eingefügt habe. Teilweise habe ich dann Zugriff auf das Internet, aber der Traffic scheint nicht durch den Tunnel zu laufen, weil bei einer Abfrage der öffentlichen IP die IP meines Rechners und nicht die des Servers angezeigt wird.

Die Client-Konfiguration sieht folgendermaßen aus:

[Interface]
PrivateKey =
Address = 10.6.0.2/24
DNS = 9.9.9.9, 149.112.112.112

[Peer]
PublicKey =
PresharedKey =
Endpoint =
AllowedIPs = 0.0.0.0/0, ::0/0

Wenn ich mit wg-quick up versuche, mich mit der VPN zu verbinden, kommt folgende Fehlermeldung:
Failed to set DNS configuration: Unit dbus-org.freedesktop.resolve1.service not found.

Wie lässt sich das Problem lösen?

Das ist nicht wirklich eine Fehlermeldung. Mehr eine Erinnerung von systemd das du nicht systemd-resolved erwendest. Diese Nachricht verhindert nicht eine erfolgreiche Erstellung eines Tunnels.

Je nachdem wie du deine DNS Server aktualisierst kann es schon zu einem Problem werden, den du musst dich nun selbst darum kümmern oder ein Programm verwenden das DNS server in /etc/resolv.conf setzen kann.

Bevor du dich aber darum kümmerst würde ich testen ob der Tunnel wirklich funktioniert.

Als erstes, mit wg (ggf. mit sudo) nachsehen ob der client und auch der Server die Partner sehen. Falls das gut aussieht ein bisschen pingen. Also vom Client den Server pingen und von Server den Client pingen (Immer die Tunnel IPs (z.B 10.6.0.2 vom Server zum Client). Dann auch mal vom Client IP Adressen wie 8.8.8.8 pingen.
Falls das alles klappt, mal eine Domain wie google.com pingen und überprüfen ob die DNS Auflösung klappt.

Hallo xabbu,
vielen Dank für die schnelle Antwort!

So wie es aussieht, scheint sich Linux nicht mit der VPN zu verbinden. Wenn ich pivpn -c ausführe, werden mir die VPN-Benutzer angezeigt. Der VPN-Benutzer, mit dem mich versucht habe zu verbinden, war laut pivpn das letzte Mal am 30. Oktober aktiv. Daraus schließe ich, dass sich mein Rechner nicht mit der VPN verbindet.
Ich habe es auch mit einem anderen Benutzer versucht und dort kann ich teilweise aufs Internet zugreifen, aber die Seiten brauchen sehr lange zum laden.

Bei resolv.conf ändert sich übrigens der Inhalt, je nachdem ob ich mit einer VPN verbunden bin oder nicht.

Bitte bei Wireguard immer das wg Kommando verwenden, um zu überprüfen wer angemeldet istund wer nicht. Aber ich kann mir vorstellen, dass das Ergebnis das selbe ist.

Ein anderer Wireguard Peer oder ein anderer Linux Benutzer auf dem ursprünglichen System oder ein anderes System mit einem anderen Linux Benutzer.

Falls es ein anderer Peer ist, würde ich mal behaupten, dass der ursprüngliche Wireguard Peer falsche Schlüsseldaten verwendet.

Dann ist damit alles OK.


Je nachdem welche Netze zwischen den Wireguard Peers (Server/Client) sind kann es manchmal zu unschönem wegfernen von Wireguard Paketen kommen.
Auch spielt manchmal die Wireguard Version eine Rolle. Hier geht es weniger um die Tools als die wirklich verwendeten Versionen der Kernel Module.

wg gibt mir die gleiche Antwort.

Wenn ich mich mit der VPN verbinde und dann auf dem Client sudo wg ausführe, wird folgendes angezeigt:

interface: 
  public key: 
  private key: (hidden)
  listening port: 60475
  fwmark: 0xcb70

peer: 
  endpoint: 
  allowed ips: 0.0.0.0/0, ::/0
  transfer: 0 B received, 592 B sent

interface, public key, peer und endpoint habe ich rauszensiert.

Sieht für mich aus als ob dieser Peer keine Verbindung aufbauen kann.

Er versucht den anderen Peer (Server) zu erreichen aber dieser Antwortet nicht.

Meist liegt es an falschen Schlüsseldaten.

Für mich sieht es eher so aus, als ob unter Linux irgendwas nicht stimmt, da es ja unter Android und Windows funktioniert.

Du verwendest den selben Peer mit den gleichen Schlüsseln auf verschiedenen System?!

Nein, ich nutze unterschiedliche Peers für verschiedene Systeme. Unter Android und Linux kann ich den Peer aber importieren und es funktioniert dann sofort.

?

Selbe Frage wie in meinem vorherigen Post.

Wenn ich auf dem Server einen neuen VPN-Benutzer erstelle, kann ich einen QR-Code für diesen anzeigen lassen, den ich dann scannen kann. Anschließend habe ich die neue VPN in der Wireguard-App und kann mich problemlos verbinden.
Außerdem kann ich die Config-Datei per SSH vom Server auf mein Linux kopieren und diese dann im Netzwerkmanager importieren. Allerdings funktioniert die Verbindung, wie gesagt, dort nicht.

Beantwortet das deine Frage?

Die eine schon aber die anderen nicht.

Welche denn?