Wireguard Client auf Linux Mint

Hallo zusammen,

ich hoffe mir kann hier jemand weiterhelfen und hat einen Tipp für mich :wink:
Seit 4 Tagen bin ich stolzer umsteiger von Windows auf Linux Mint. Es funktioniert soweit alles wirklich super. Nur eine Sache macht mir seit Tagen kopfzerbrechen und ich bekomme es nicht hin. Ich habe einen Wireguard Server auf einem IONOS 1 Euro Server gehostet. Wenn ich die Verbindung über mein Handy, Tablet oder Windows Gerät benutze läuft alles einwandfrei.. Sobald ich die Verbindung aber über Linux Mint öffne, verbindet er sich zwar, aber ich habe keinen Zugang mehr zum Internet… Zumindest nicht richtig xD Klingt komisch aber pingen zum Beispiel funktioniert soweit, auch ein test per curl lief, aber weder Firefox noch Chrome zeigt mir irgendwelche Webseiten an. In den Einstellungen der Browser sind keine Proxy Einstellungen eingetragen. Ich habe diverse Sachen probiert, ipv6 abgeschaltet, nur ipv4, neue configs, andere Ports.. Ich bin am ende..

Hat noch jemand das Problem? Vielen Dank vorab!

Grüße,

Pat

Wenn ICMP funktioniert, TCP aber nicht, dann liegt das häufig an einer zu großen MTU. Senke die MTU auf 1392 ab.

In der /etc/wireguard/wg0.conf geht das über

[Interface]
(...)
MTU = 1392

Hintergrund: Androide kommen mit 1412 / 1420 (mit / ohne IPv6) klar, Linux nicht.

Moin, danke für deine Antwort.

Hatte ich oben nicht erwähnt, sorry.. Aber auch das habe ich bereits probiert. :confused:
Kann es später gerne nochmal nachstellen, aber mit default 1420 ging dann auch kein Ping meine ich. Daher war das schonmal ein Fortschritt aber nicht die finale Lösung.

An die Route 0.0.0.0/0 hast du auch gedacht?

EDIT: Also ich habe eben noch mal getestet (Wiregurad zum Cloud Router bei ipv64)

  • mit Route 0.0.0.0/0 und MTU 1420:
root@hp-250-g6:~# tracepath google.com
 1?: [LOCALHOST]                      pmtu 1420
 1:  no reply
 2:  no reply
^C
root@hp-250-g6:~#
  • mit Route 0.0.0.0/0 und MTU 1392
root@hp-250-g6:~# tracepath google.com
 1?: [LOCALHOST]                      pmtu 1392
 1:  10.7.0.1                                             14.007ms 
 1:  10.7.0.1                                             16.585ms 
 2:  gw1.ipv64.netmountains.space                         21.166ms 
 3:  as24961-dus1.dc.netmountains.de                      26.791ms 
 4:  lag16.core3-dus1.bb.wiit.network                     17.058ms 
 5:  lag0-vl1011.core1-fra-ix.bb.wiit.network             18.912ms 
 6:  142.250.171.76                                       27.607ms 
 7:  no reply
 8:  no reply
^C
root@hp-250-g6:~#

Den Unterschied siehst du ja selbst. Bereits ein tracepath scheitert bei zu großer MTU.

Ein ping google.com klappte mit 1420 und 1392. OS für den Test Xubuntu 24.04.

Was meinst du mit Route?
Das sagt mir gerade nichts. Muss ich auf dem Wireguard Server noch was einstellen explizit?

Meine Config sieht wie folgt aus:


[Interface]
PrivateKey = X
Address = 10.8.0.2/24
DNS = 1.1.1.1
MTU = 1392

[Peer]
PublicKey = X
PresharedKey = X
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 0
Endpoint = 123.456.789.123:51820

Meine Docker-Compose so:

volumes:
  etc_wireguard:

services:
  wg-easy:

    image: ghcr.io/wg-easy/wg-easy:latest
    container_name: wg-easy
    networks:
      wg:
        ipv4_address: 10.42.42.42
        ipv6_address: fdcc:ad94:bacf:61a3::2a
    volumes:
      - etc_wireguard:/etc/wireguard
      - /lib/modules:/lib/modules:ro
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv6.conf.all.disable_ipv6=0
      - net.ipv6.conf.all.forwarding=1
      - net.ipv6.conf.default.forwarding=1
    environment:
      - WG_HOST=123.456.789.123
      - PASSWORD_HASH=SECRETHASH
      - UI_TRAFFIC_STATS=true
      - UI_CHART_TYPE=1
      
networks:
  wg:
    driver: bridge
    enable_ipv6: true
    ipam:
      driver: default
      config:
        - subnet: 10.42.42.0/24
        - subnet: fdcc:ad94:bacf:61a3::/64

Die AllowedIPs = 0.0.0.0/0. Das ist ja der Befehl an den Client alle Pakete durch den Tunnel zu routen.

Ich trage das Clientseitig aber nie alleine ein. Immer mit dem Transfernetz als erstem Eintrag, in deinem Fall also:

AllowedIPs = 10.8.0.0/24,0.0.0.0/0

Zu deiner Docker-Compose. Mit Docker arbeite ich nicht. Aber eines fällt mir auf:

Wozu der tcp-Eintrag? Lies mal: Wireguard - Known Limitations Zitat:

TCP Mode
WireGuard explicitly does not support tunneling over TCP, due to the classically terrible network performance of tunneling TCP-over-TCP.

Der TCP Eintrag ist für das Dashboard, Wireguard Easy bringt ein kleines Frontend mit womit man die Configs erzeugen kann. Das Dashboard ist dann über den Port erreichbar. Hat also nur indirekt mit dem Wireguard VPN zu tun.

Habs hinbekommen! Es war eine Mischung aus vielen Faktoren…
Zum einen ipv6 war deaktiviert, so das wieistmeineip.de komplett rumgesponnen hat und teilweise bei aktivem VPN nicht geladen hat, dann war die config mtu scheinbar doch noch falsch und wurde nicht, nach meiner Änderung, neu geladen :confused: Dann gab es ebenfalls eine neue Version von dem benutzten wireguard easy module was ipv6 unterstützt.. dann habe ich meine alten configs in neue system geladen, ging wieder nicht.. also einmal alles neu angelegt und siehe da, es läuft xD

Vielen dank für die Hinweise und Hilfe :wink: