OpenWRT Wireguard Port Forwarding

Mr. Poe

Lt. Commander
Registriert
Juli 2010
Beiträge
1.933
Hi,
ich hab mit pangolin meine services im internet freigegeben. mit dem mitgelieferten vpn "newt" funktioniert das ganz gut, ich möchte aber gern von den docker containern weg und das zentral über meinen openwrt switch regeln.

pangolin bietet die möglichkeit einen wireguard tunnel einzurichten, was auch problemlos funktioniert, openwrt verbindet sich. nur leider schaffe ich es nicht die services freizugeben. ich komme aktuell nicht weiter.

hat jemand eine idee wieso die verbindung nicht klappt?
es sind keine einträge im log wenn ich firewall logging aktiviere, wenn ich die seiten im internet aufrufen möchte bekomme ich nur die fehlermeldung Gateway Timeout.
 

Anhänge

  • Bildschirmfoto_2026-02-28_10-29-24.png
    Bildschirmfoto_2026-02-28_10-29-24.png
    72,1 KB · Aufrufe: 29
  • Bildschirmfoto_2026-02-28_10-29-45.png
    Bildschirmfoto_2026-02-28_10-29-45.png
    58,4 KB · Aufrufe: 30
  • Bildschirmfoto_2026-02-28_10-30-17.png
    Bildschirmfoto_2026-02-28_10-30-17.png
    94 KB · Aufrufe: 25
  • Bildschirmfoto_2026-02-28_10-37-28.png
    Bildschirmfoto_2026-02-28_10-37-28.png
    28,3 KB · Aufrufe: 28
Ich kenne mich mit OpenWRT nicht aus, kann daher nur das grundsätzliche Prinzip einmal aussprechen.

Wenn du Pangolin als reinen Reverse Proxy verwendest müssen Port 80 und 443 auf Pangolin zeigen. Weitere Einstellungen sind im Grunde nicht nötig. Oder greifst du per VPN auf dein Heimnetz zu?

Von den Screenshots her hast du aber ja auch noch ein Subnetz für die Services erstellt. Zur Fehlereingrenzung wäre jetzt folgendes Interessant.

Erreichst du Pangolin aus dem Internet?
Können deine Services Pangolin erreichen?
Kann Pangolin deine Services erreichen?

Und der Tunnel von OpenWRT zu Pangolin ist überflüssig.
 
Zuletzt bearbeitet:
ja, grundsätzlich funktioniert pangolin so wie es soll, ich kann auf meine services zugreifen und das dashboard ist erreichbar.

pangolin nutzt normalerweise eine eigene wireguard implementation "newt", das wird einfach als docker container auf meinem server ausgeführt bzw. z.b. bei nextcloud einfach in die docker-compose eingefügt und kann dann von da aus auf mein netzwerk zugreifen.

ich möchte jetzt aber von der standard config abweichen und einen standard wireguard tunnel nutzen damit meine dienste erreichbar sind.
die einrichtung des tunnels klappt ja scheinbar, aber ich vermute da ist noch irgendwas nicht richtig in openwrt konfiguriert...
 
Um die Verbindung testen könntest du mal als NAT Ziel die 192.168.100.2 und Port 443/tcp eintragen. Damit solltest du auf deinem OpenWrt landen. Geht das auch nicht, liegt es am Tunnel oder OpenWrt. Sollte die Seite angezeigt werden, liegt das Problem hinter dem OpenWrt.
Leicht OT: Welcher Switch hat genug Power für Wireguard?
 
Das mit Newt ist nicht richtig. Pangolin ist eigentlich dafür gedacht auf einem VPS zu laufen. Die Aufgabe von Newt wäre es dann deine Services sicher per Tunnel mit dem VPS zu verbinden. So wird dann Pangolin zu einem Cloudflafe Tunnels Ersatz.

Sprich Internet -> VPS(Pangolin) -> Tunnel(Newt) -> Homeserver(Services)

Da du Pangolin bei dir lokal laufen hast kannst du es in den Reverse Proxy only Modus schalten. Da wird Newt nicht benötigt. Pangolin kann ja über das lokale Heimnetz auf deine Services zugreifen.

Ich würde Pangolin ggfs. einfach mal neu aufsetzen. In der geführten Installation wirst du gefragt, ob du im lokalen Modus oder mit Newt und VPS arbeiten möchtest.

Dein Setup sähe dann so aus:
Internet -> Firewall(Port 80 und 443 nach Pangolin weiterleiten -> Pangolin -> Services

Für deine Services brauchst du keine Portweiterleitung. Den Port des Services trägst du ja in Pangolin ein. Es müssen nur 80 und 443 in Richtung Pangolin freigegeben werden. Den Rest erledigt Pangolin dann selber.

Unter der Voraussetzung das deine Firewall die Kommunikation zwischen Pangolin und den Services nicht stört.
 
achso, sorry, pangolin läuft natürlich auf einem vps, hätte ich kein ds-lite bräuchte ich kein pangolin ;)
vielleicht hilft meine zeichnung wies aktuell aussieht

@cbtaste420 wie meinst du das mit dem nat?
ich kenn micht jetzt nicht so gut mit openwrt bzw. nat aus, wo müsste ich das eintragen?
wenn ich in der firewall für die zone pangolin input auf accept setze und in pangolin den port auf 80 setze sollte eigentlich das openwrt webinterface erscheinen, tut es aber nicht. selber fehler, Gateway timeout

switch ist ein Edgerouter-X
 

Anhänge

  • netzwerk.png
    netzwerk.png
    73,3 KB · Aufrufe: 10
Mr. Poe schrieb:
selber fehler, Gateway timeout
Dann ist es der Tunnel oder etwas davor. Kannst du die Tunnel-Konfig anonymisiert hier einstellen?

Warum du einen Edgerouter-X als Switch bezeichnest ist mir unklar, das ist ein Router mit MT7621 Chip. Bei Switch hätte ich etwas aus der Hardware-Klasse Switch erwartet, Geräte mit RTL83xx oder RTL93xx. In den OpenWrt Images für Switche sind Routing-Funktionen ootb eingeschränkt und von der Performance unterdurchschnittlich.
 
gut, ist vielleicht auch etwas falsch ausgedrückt. bis jetzt lief der nur als managed switch ohne firewall etc.

die config die pangolin generiert hat und in openwrt importiert wurde:
Code:
[Interface]
Address = 100.89.128.16/30
ListenPort = 51820
PrivateKey = ••••••••••••••••••••••••••••••••••••••••••••

[Peer]
PublicKey = ••••••••••••••••••••••••••••••••••••••••••••
AllowedIPs = 100.89.128.1/32
Endpoint = domain.tld:51820
PersistentKeepalive = 5

openwrt network config:
Code:
config interface 'wg0'
    option proto 'wireguard'
    option private_key 'xxxxxxxxx'
    option listen_port '51820'
    list addresses '100.89.128.12/30'
    option auto '0'

config wireguard_wg0
    option description 'Imported peer configuration'
    option public_key 'xxxxxxxxxx'
    list allowed_ips '100.89.128.1/32'
    option persistent_keepalive '5'
    option endpoint_host 'domain.tld'
    option endpoint_port '51820'

edit:
kann das mit ipv6 zusammenhängen?
unter den verbunden clients ist nur eine ipv6 gelistet oder versteh ich das falsch?
 

Anhänge

  • Bildschirmfoto_2026-02-28_12-56-05.png
    Bildschirmfoto_2026-02-28_12-56-05.png
    24,5 KB · Aufrufe: 6
Die Konfig hat Pangolin dir so erzeugt? Sieht schräg aus, .12/30 und .16/30? Für mich passt das nicht zusammen (mal ganz davon abgesehen, dass die .12 und .16 Netzwerk-Adressen und keine Host-Adressen sind - evtl. verlässt mich hierbei aber auch mein Wissen über Subnetting). Hast du mehrere Konfigurationen erzeugt? Kann man die Peer-Config im Server einsehen?
Was ich machen würde, statt der 100.89.128.12/30 die 100.89.128.14/30 eintragen oder falls das .16/30 Netz genutzt werden soll die 100.89.128.18/30 eintragen (natürlich auch als Ziel entsprechend so eintragen). Funktioniert beides nicht müsste ein Wireguard Experte her.

Ergänzung ()

Mr. Poe schrieb:
unter den verbunden clients ist nur eine ipv6 gelistet oder versteh ich das falsch?
Das sollte die IPv6 vom dmz6 Interface sein.
 
Zuletzt bearbeitet:
@cbtaste420 hab nochmal etwas rumgespielt, wenn ich eine andere IP als .12/30 eingebe kommt die meldung Bad Gateway
die Config wird so von pangolin erzeugt, da lässt sich auch nichts einstellen. ist aktuell nur eine config vorhanden und ich weiß nicht wie ich auf die peer config zugreifen kann, liegt nicht im config ordner...

ich glaub falls sich hier sonst keiner meldet würde ich evtl. mal einen bugreport bei pangolin aufmachen
 
Zurück
Oben