NEWS
Tester für WireGuard Adapter gesucht
-
@bommel_030 sagte in Tester für WireGuard Adapter gesucht:
Dann hab ich mal alles gelöscht und kein Name wurde neu erstellt. Hab das dann als works as designed hingenommen.
Nein - das ist definitv ein Bug. Die Peers sollen weiterhin Namen im Devicetree bekommen - das ist sonst zu unübersichtlich. Ich wollte lediglich die Art, wie der Name zustande kommt ändern.
Deshalb: Äußert euch gerne mal alle zu meiner Umfrage, was für euch praktischer ist. Bei mir steht da nämlich immer nur:
Papa Notebook
Papa Smartphone
Papa Tablet
Kind 1 Smartphone
Kind 1 Tablet
Kind 2 Smartphone
Kind 2 Tablet
...https://github.com/Grizzelbee/ioBroker.wireguard/issues/65
@ilovegym sagte in Tester für WireGuard Adapter gesucht:
ich bin fuer 1) - wie vorher, da muss man nicht die Scripte aendern
Kann ich verstehen - führt aber, nur um das noch einmal klar zu sagen, dazu das da künftig drei Spalten in der Konfig bleiben. Die Frage ist ja eigentlich nur was da in den Devicetree geschrieben werden soll - und woher diese Daten kommen. Für Skrpite sollte das eigentlich keine Rolle spielen; die greifen ja nicht direkt in die Konfig des Adapters.
-
@grizzelbee
Ich bin für Name + Device als "Name" zur ID "Peer". Aktuell wird ja unter users ein Datenpunkt connected angelegt, Luxus wäre es, wenn zusätzlich zu jedem Device des Users ein Datenpunkt connected angelegt wird. -
gelöscht
-
@grizzelbee sagte in Tester für WireGuard Adapter gesucht:
Gruppenname setzt sich zusammen aus: Name + Device (aus Name: Bernd und Device: Smartphone wird im Baum: Bernd Smartphone - und die bisherige Spalte in der Konfig fällt weg)
-
@grizzelbee
Einer meiner Wireguard-Server ist hin und wieder mal nicht erreichbar (VPN Verbindung mit Zwangstrennung) das hat den Adapter früher nicht wirklich gestört. Mit der aktuellen Version habe ich das im Log:wireguard.0 2023-06-30 10:57:24.678 warn Terminated (UNCAUGHT_EXCEPTION): Without reason wireguard.0 2023-06-30 10:57:24.669 error Exception-Code: EHOSTUNREACH: connect EHOSTUNREACH 192.168.10.4:22 wireguard.0 2023-06-30 10:57:24.668 error Error: connect EHOSTUNREACH 192.168.10.4:22 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) wireguard.0 2023-06-30 10:57:24.668 error unhandled promise rejection: connect EHOSTUNREACH 192.168.10.4:22 wireguard.0 2023-06-30 10:57:24.667 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). host.iobroker-master 2023-06-30 10:54:51.770 error instance system.adapter.wireguard.0 terminated with code 6 (UNCAUGHT_EXCEPTION) host.iobroker-master 2023-06-30 10:54:51.770 error Caught by controller[1]: at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) host.iobroker-master 2023-06-30 10:54:51.770 error Caught by controller[1]: Error: connect EHOSTUNREACH 192.168.10.4:22 host.iobroker-master 2023-06-30 10:54:51.769 error Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
Soweit so klar, 192.168.10.4 nicht erreichbar. Der Adapter startet dann aber so lange neu bis der Admin nen Loop erkennt und ihn killt. Hast du da in der Version was geändert?
-
@bommel_030 sagte in Tester für WireGuard Adapter gesucht:
Hatte ich auch, einfach Objekte löschen und Adapter neu starten.
kommt nach einiger Zeit immer wieder
undefined is not a valid state value for id "wireguard.0.Nega-wg0.peers.xxxxxxxxxxxxxxx=.device"
-
Habe den Adapter gerade installiert. Läuft, ich bin begeistert, wie einfach das ging.
Eine Frage habe ich:
Unter "Peers" lassen sich nur drei lokale IPs auswählen. Ich möchte mehreren Personen Zugriff auf den ioBroker gewähren, momentan insgesamt 4.
Dazu kommt noch der eine oder andere NAT-Eintrag.
Lässt sich der Adapter auch so konfigurieren, dass mehr als drei IPs auszuwählen sind? Oder mache ich einen Denkfehler?
-
Hmm - ich bin gerade nicht sicher ob ich dir wirklich folgen kann.
"Peers" tauchen nur im Objektbaum auf - und die haben allowed_ips. Die werden aber in der WireGuard Config hinterlegt.
Ansonsten listet der Adapter alle Peers auf, die konfiguriert sind - da gibt es kein Limit.Konfigurieren kannst Du hier keine Peers.
Hast Du vielleicht diesen Adapter?
Um den geht es hier nämlich nicht.
-
@grizzelbee Oops - genau den meine ich.
Habe ich mich wohl verkuckt. Sorry!
-
@grizzelbee
Danke fürs die Weiterentwicklung. Jetzt wechseln meine beiden Server nicht mehr zwischen online true/false.
Ein "Problem" hab ich an dem Punkt aber noch. Habe zum Test einen Host mit wg-quick down wg0 schlafen gelegt.
Daraufhin wird der online Datenpunkt auf false gesetzt. Nach wg-quick up wg0 und Abrufintervall ist er wieder true.
Wenn wireguard (bei mir ein Container in Proxmox) aber komplett heruntergefahren ist bleibt es bei online=true, auch wenn er laut Log erkennt dass der Host nicht mehr erreichbar ist.Error: connect EHOSTUNREACH 192.X.X.X:22
Ist das beabsichtigt, oder kannst du einbauen, dass online=false wenn Host nicht erreichbar?
Nachtrag, einen hab ich noch... Mittels suspend peer kann ich ja einen Nutzer stillegen, das klappt einwadfrei.
wireguard.0 2023-08-11 09:57:55.037 debug received rawdata: wireguard.0 2023-08-11 09:57:55.037 debug Stream :: close wireguard.0 2023-08-11 09:57:54.945 debug Executing command [sudo wg set wg0 peer 555Schuh= remove] on host 192.168.10.4. wireguard.0 2023-08-11 09:57:54.945 debug ssh client :: authenticated wireguard.0 2023-08-11 09:57:54.837 debug Connecting to host: [192.168.10.4] on port 22 wireguard.0 2023-08-11 09:57:54.837 debug Trying to reach host 192.168.10.4. wireguard.0 2023-08-11 09:57:54.837 info Suspending peer [Bommel-S21] of interface wg0 on host 192.168.10.4. wireguard.0 2023-08-11 09:57:54.836 debug Received request to suspend_Peer.
restore peer wird laut Log auch ausgeführt, Nutzer kann sich dann aber weiterhin nicht verbinden:
wireguard.0 2023-08-11 09:58:46.243 debug received rawdata: wireguard.0 2023-08-11 09:58:46.243 debug Stream :: close wireguard.0 2023-08-11 09:58:46.133 debug Executing command [sudo wg set wg0 peer 555Schuh= allowed-ips 10.252.1.1/32] on host 192.168.10.4. wireguard.0 2023-08-11 09:58:46.133 debug ssh client :: authenticated wireguard.0 2023-08-11 09:58:46.030 debug Connecting to host: [192.168.10.4] on port 22 wireguard.0 2023-08-11 09:58:46.030 debug Trying to reach host 192.168.10.4. wireguard.0,2023-08-11 09:58:46.030 info Restoring peer [Bommel-S21] of interface wg0 on host 192.168.10.4 with IP [10.252.1.1/32]. wireguard.0 2023-08-11 09:58:46.029 info Restoring peer 555Schuh= with IP 10.252.1.1/32 on interface wg0. wireguard.0 2023-08-11 09:58:46.028 info Path: wireguard.0.Fontane-wg0.peers.v3uWcMPl9HJ0MKasTQN61nH3hs/DsDN4VBGIPGK6Q3c=.allowedIps.0 wireguard.0 2023-08-11 09:58:46.028 debug Received request to restore_Peer.
Auch ein restore all peers hilft hier nicht. Erst nach wg-quick down / up kann sich der Nutzer wieder verbinden.
-
@bommel_030 sagte in Tester für WireGuard Adapter gesucht:
Ist das beabsichtigt, oder kannst du einbauen, dass online=false wenn Host nicht erreichbar?
Nein - das war nicht beabsichtigt; aber einfach zu fixen. Eine neue Version (1.5.8) ist dafür online.
Nachtrag, einen hab ich noch... Mittels suspend peer kann ich ja einen Nutzer stillegen, das klappt einwadfrei.
restore peer wird laut Log auch ausgeführt, Nutzer kann sich dann aber weiterhin nicht verbinden:
Auch ein restore all peers hilft hier nicht. Erst nach wg-quick down / up kann sich der Nutzer wieder verbinden.Hmm. Das klingt mir eher nach eine Problem mit deiner WireGuard/sudoers Konfig.
Habe das gerade bei mir getestet und das funktioniert einwandfrei.Versuche doch bitte einmal die entsprechenden Kommandos selbst auf der Konsole abzusetzen und schau was passiert.
-
@grizzelbee
Danke, werde die 1.5.8 testen. Auch das mit der Konsole, kann aber etwas dauern. -
mit 1.5.9 hängt sich der Adapter auf.
wireguard.0 2023-08-15 19:02:15.701 warn Terminated (UNCAUGHT_EXCEPTION): Without reason wireguard.0 2023-08-15 19:02:15.701 info terminating wireguard.0 2023-08-15 19:02:15.700 info Clearing interval for host [Nega] wireguard.0 2023-08-15 19:02:15.693 error The id "Nega-wg0.users.Kloane." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.693 error Error: The id "Nega-wg0.users.Kloane." is invalid. Ids are not allowed to end in "." at Utils.validateId (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/utils.ts:215:23) at Wireguard.setState (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:6316:23) at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.wireguard/main.js:502:72) at processImmediate (node:internal/timers:478:21) wireguard.0 2023-08-15 19:02:15.693 error unhandled promise rejection: The id "Nega-wg0.users.Kloane." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.692 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). wireguard.0 2023-08-15 19:02:15.691 error The id "Nega-wg0.users.Dina." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.691 error Error: The id "Nega-wg0.users.Dina." is invalid. Ids are not allowed to end in "." at Utils.validateId (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/utils.ts:215:23) at Wireguard.setState (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:6316:23) at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.wireguard/main.js:502:72) at processImmediate (node:internal/timers:478:21) wireguard.0 2023-08-15 19:02:15.691 error unhandled promise rejection: The id "Nega-wg0.users.Dina." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.690 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). wireguard.0 2023-08-15 19:02:15.690 error The id "Nega-wg0.users.Margret." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.689 error Error: The id "Nega-wg0.users.Margret." is invalid. Ids are not allowed to end in "." at Utils.validateId (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/utils.ts:215:23) at Wireguard.setState (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:6316:23) at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.wireguard/main.js:502:72) at processImmediate (node:internal/timers:478:21) wireguard.0 2023-08-15 19:02:15.689 error unhandled promise rejection: The id "Nega-wg0.users.Margret." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.689 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). wireguard.0 2023-08-15 19:02:15.688 error The id "Nega-wg0.users.Ramon." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.687 error Error: The id "Nega-wg0.users.Ramon." is invalid. Ids are not allowed to end in "." at Utils.validateId (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/utils.ts:215:23) at Wireguard.setState (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:6316:23) at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.wireguard/main.js:502:72) at processImmediate (node:internal/timers:478:21) wireguard.0 2023-08-15 19:02:15.687 error unhandled promise rejection: The id "Nega-wg0.users.Ramon." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.686 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). wireguard.0 2023-08-15 19:02:15.685 error The id "Nega-wg0.users.Marcel." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.685 error Error: The id "Nega-wg0.users.Marcel." is invalid. Ids are not allowed to end in "." at Utils.validateId (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/utils.ts:215:23) at Wireguard.setState (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:6316:23) at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.wireguard/main.js:502:72) at processImmediate (node:internal/timers:478:21) wireguard.0 2023-08-15 19:02:15.684 error unhandled promise rejection: The id "Nega-wg0.users.Marcel." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.684 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). wireguard.0 2023-08-15 19:02:15.682 error The id "Nega-wg0.users.Max." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.682 error Error: The id "Nega-wg0.users.Max." is invalid. Ids are not allowed to end in "." at Utils.validateId (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/utils.ts:215:23) at Wireguard.setState (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:6316:23) at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.wireguard/main.js:502:72) at processImmediate (node:internal/timers:478:21) wireguard.0 2023-08-15 19:02:15.681 error unhandled promise rejection: The id "Nega-wg0.users.Max." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.681 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). wireguard.0 2023-08-15 19:02:15.675 error The id "Nega-wg0.users.Nega." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.674 error Error: The id "Nega-wg0.users.Nega." is invalid. Ids are not allowed to end in "." at Utils.validateId (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/utils.ts:215:23) at Wireguard.setState (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:6316:23) at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.wireguard/main.js:502:72) at processImmediate (node:internal/timers:478:21) wireguard.0 2023-08-15 19:02:15.571 error unhandled promise rejection: The id "Nega-wg0.users.Nega." is invalid. Ids are not allowed to end in "." wireguard.0 2023-08-15 19:02:15.571 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). wireguard.0 2023-08-15 19:01:45.371 info Started 30 seconds monitoring interval for host [Nega] wireguard.0 2023-08-15 19:01:45.293 info There is 1 wireguard host to monitor. wireguard.0 2023-08-15 19:01:45.242 info starting. Version 1.5.9 in /opt/iobroker/node_modules/iobroker.wireguard, node: v18.17.0, js-controller: 4.0.24
In den IDs hab ich keinen
.
-
@negalein sagte in Tester für WireGuard Adapter gesucht:
In den IDs hab ich keinen .
Nein - natürlich nicht.
Das passiert, weil Du die Devices nicht benannt hast.Gedacht ist das so:
Und aus diesen Infos wird dann der Objektbaum wie folgt gebildet:
Ich könnte den fehlenden Objektnamen natürlich abfangen und dann unter den Users keine weiteren Datenpunkte anlegen...
Keine Ahnung was besser ist. Mir sind die Devices wichtig um den Überblick bei den Keys zu behalten. Da ist mir nur der User zu wenig. -
@grizzelbee sagte in Tester für WireGuard Adapter gesucht:
Das passiert, weil Du die Devices nicht benannt hast.
Ah, ok. Dann werde ich das mal nachtragen.
Keine Ahnung was besser ist. Mir sind die Devices wichtig um den Überblick bei den Keys zu behalten. Da ist mir nur der User zu wenig.
Ich hab zB User, die den selben Key auf mehreren Geräten verwenden.
Für Laptop und Handy zB gibt es nicht für jedes Gerät einen eigenen Key.
Muss ich mal überlegen, ob ich pro Gerät einen Key erstelle. Ist ja eh gleich erledigt. -
@negalein sagte in Tester für WireGuard Adapter gesucht:
Ich hab zB User, die den selben Key auf mehreren Geräten verwenden.
Für Laptop und Handy zB gibt es nicht für jedes Gerät einen eigenen Key.
Muss ich mal überlegen, ob ich pro Gerät einen Key erstelle. Ist ja eh gleich erledigt.Du kannst natürlich auch allen Einträgen den selben Device-namen geben. Dem Adapter ist das egal.
Unabhängig davon werde ich den Fehler aber noch abfangen. Der Adapter sollte deswegen nicht so aus der Kurve gehen ... -
@negalein und alle anderen:
Habe gerade einen neuen Fix veröffentlicht:v1.5.10 (2023-08-17)
- (grizzelbee) Fix: Adapter doesn't crash anymore when user or device name is missing in config.
-
@grizzelbee danke für den Adapter. Hab allerdings noch eine Frage.
Das Abfrageintervall steht als Standard auf 120 Sekunden.
Was wäre das kleinste Abfrageintervall was man einstellen kann?
Oder hätte ein kleineres Abfrageintervall irgendwelche Nachteile? -
Ich hab es auf 30 stehen.
Bisher keine Nebeneffekte erkannt. -
Hallo SchadowHunter,
@shadowhunter23 sagte in Tester für WireGuard Adapter gesucht:
Was wäre das kleinste Abfrageintervall was man einstellen kann?
Der kleinste ist im Grunde 1 Sekunde. Über Sinn und Unsinn eines so kurzen Intervalls kann man sicherlich diskutieren.
Oder hätte ein kleineres Abfrageintervall irgendwelche Nachteile?
Ja. Je kleiner der Intervall desto höher die durch die Abfrage ausgelöste Systemlast. Deshalb habe ich 120 Sekunden als default genommen - um auch schwächere Systeme nicht sofort beim ersten Start zu zerlegen. Ich selbst habe bei mir 20 Sekunden eingestellt. Der kürzeste sinnvolle Intervall ist im Grunde die Zeit, die das jeweilige System - unter ca. 75% Last - benötigt um die Anfrage komplett zu verarbeiten - plus (mindestens) eine Sekunde. Sonst überlappen sich die Abfragen.