Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Binding der IP Adresse des Admin Adapters

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Binding der IP Adresse des Admin Adapters

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Balu1973 last edited by

      Hallo Zusammen,

      ich bin ein Freund von Standartports und würde gerne die Adminoberfläche und VIS auf Standartports (also 80 bzw. 443) laufen lassen.

      Dazu habe ich meinem (virtualisiertem) Server zwei Interface und zwei IP Adressen spendiert.

      Wenn ich jetzt erstmal nur das Binding des Admins Adapters ändere (Port bleibt 8081) komme ich nicht mehr auf die Adminoberfläche:

      iobroker01:/opt/iobroker # iobroker set admin.0 --bind 192.168.178.52
      New bind for "admin.0" is: 192.168.178.52
      Instance settings for "admin.0" are changed.
      

      Der Admin Adapter scheint auch zu horchen:

      iobroker01:/etc # lsof -i -n -P | grep 8081
      io.admin. 3020  root   13u  IPv6  30237      0t0  TCP *:8081 (LISTEN)
      

      Allerdings hätte ich erwartet dass dort TCP 192.168.178.52:8081 (LISTEN) steht.

      Der js-controller läuft:

      iobroker01:/opt/iobroker # lsof -i -n -P | grep 9000
      iobroker. 2892  root   12u  IPv4  30988      0t0  TCP 127.0.0.1:9000 (LISTEN)
      
      iobroker01:/opt/iobroker # lsof -i -n -P | grep 9001
      iobroker. 2892  root   12u  IPv4  30988      0t0  TCP 127.0.0.1:9001 (LISTEN)
      

      Über den Browser komme ich nicht auf die Oberfläche. Weder über IP noch DNS Name.

      Wenn ich das Adapter Binding wieder auf 0.0.0.0 stelle klappt es wieder.

      Kann mir hier jemand helfen?

      Danke und Grüße,

      Balu

      1 Reply Last reply Reply Quote 0
      • BuZZy
        BuZZy last edited by

        [...]If IP address is not correct , then write:
        `iobroker set --bind 0.0.0.0` to allow it for all IP addresses.
        
        You can also change a port: `iobroker set --port 8081`
        [...]
        

        .. sind beide Interfaces denn "im Betriebssystem angekommen" auf dem ioBroker läuft und korrekt konfiguriert?

        ifconfig
        ````auf der Console.. Welche Ausgabe bekommst du?
        
        Gruß
        1 Reply Last reply Reply Quote 0
        • B
          Balu1973 last edited by

          Hallo BuZZy,

          ja, es sind beide Interface angekommen:

          iobroker01:~ # ifconfig
          eth0      Link encap:Ethernet  HWaddr 00:0C:29:6D:C:DD
                    inet addr:192.168.178.52  Bcast:192.168.178.255  Mask:255.255.255.0
                    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                    RX packets:84249 errors:0 dropped:1700 overruns:0 frame:0
                    TX packets:71331 errors:0 dropped:0 overruns:0 carrier:0
                    collisions:0 txqueuelen:1000
                    RX bytes:26837296 (25.5 Mb)  TX bytes:35571050 (33.9 Mb)
          
          eth1      Link encap:Ethernet  HWaddr 00:0C:29:6D:AA:BB
                    inet addr:192.168.178.54  Bcast:192.168.178.255  Mask:255.255.255.0
                    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                    RX packets:8558 errors:0 dropped:600 overruns:0 frame:0
                    TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
                    collisions:0 txqueuelen:1000
                    RX bytes:800504 (781.7 Kb)  TX bytes:3579 (3.4 Kb)
          
          lo        Link encap:Local Loopback
                    inet addr:127.0.0.1  Mask:255.0.0.0
                    UP LOOPBACK RUNNING  MTU:65536  Metric:1
                    RX packets:518403 errors:0 dropped:0 overruns:0 frame:0
                    TX packets:518403 errors:0 dropped:0 overruns:0 carrier:0
                    collisions:0 txqueuelen:1
                    RX bytes:144807655 (138.0 Mb)  TX bytes:144807655 (138.0 Mb)
          
          

          Grüße,

          Balu

          1 Reply Last reply Reply Quote 0
          • wendy2702
            wendy2702 last edited by

            Mal versucht was passiert wenn du das über den Admin umstellst?

            1 Reply Last reply Reply Quote 0
            • B
              Balu1973 last edited by

              Da passiert genau das gleiche…

              Neustart von iobroker und des Servers ändert am leider auch nichts..

              1 Reply Last reply Reply Quote 0
              • wendy2702
                wendy2702 last edited by

                Dann würde ich da mal einen Bug vermuten.

                Am besten GitHub issue aufmachen!

                1 Reply Last reply Reply Quote 0
                • B
                  Balu1973 last edited by

                  OK… Werde ich machen.

                  Danke!

                  1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators last edited by

                    Ähm…

                    Bedeutet:
                    @Balu1973:

                    iobroker01:/opt/iobroker # iobroker set admin.0 –bind 192.168.178.52 `
                    nicht, dass du nur noch von der IP 192.168.178.52 auf den admin zugreifen könntest?

                    Was passiert denn, wenn du in der admin Konfig bei der Instanz den Port änderst?

                    Gruß

                    Rainer

                    1 Reply Last reply Reply Quote 0
                    • BuZZy
                      BuZZy last edited by

                      "bind IP" ist gleichzusetzen mit "horche auf IP bzw. reagiere nur wenn du mit IP angesprochen wirst"..

                      Hat nichts mit "reagiere nur wenn die Anfrage von IP kommt" zu tun.

                      Also schon der korrekte Weg - außer es hat in ioBroker eine andere Bedeutung?! Kann ich mir aber nicht vorstellen.

                      Eventuell steht im Log auch etwas diesbezüglich?

                      Vielleicht ist der Port schon belegt oder ähnliches..

                      Was mir gerade so einfällt, ich gehe ganz stark davon aus dass ioBroker selbst immer versucht über localhost / 127.0.0.1 mit sich selbst zu kommunizieren..

                      Wenn du das Binding jetzt nur auf 192.168.x.x legst, ist ioBroker für sich selbst nicht mehr unter 127.0.0.1 zu erreichen..

                      Versuch mal````
                      --bind 127.0.0.1 192.168.178.52

                      
                      Gruß
                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators last edited by

                        @BuZZy:

                        "bind IP" ist gleichzusetzen mit "horche auf IP bzw. reagiere nur wenn du mit IP angesprochen wirst".. `
                        sicher????

                        nicht "reagiere nur wenn du von IP angesprochen wirst"

                        "horche auf" ist für mich nicht "gehorche als"

                        Die Standardeinstellungen sind deshalb 0.0.0.0 damit der admin von allen IPs aus erreichbar ist.
                        144_admin_konfig.png

                        Gruß

                        Rainer

                        1 Reply Last reply Reply Quote 0
                        • AlCalzone
                          AlCalzone Developer last edited by

                          @Homoran:

                          @BuZZy:

                          "bind IP" ist gleichzusetzen mit "horche auf IP bzw. reagiere nur wenn du mit IP angesprochen wirst".. sicher????
                          Ich denke BuZZy hat Recht:

                          https://nodejs.org/api/net.html#net_ser … g_callback

                          ` > Start a TCP server listening for connections on the given port and host.

                          If host is omitted, the server will accept connections on the unspecified IPv6 address (::) when IPv6 is available, or the unspecified IPv4 address (0.0.0.0) otherwise.

                          Note: In most operating systems, listening to the unspecified IPv6 address (::) may cause the net.Server to also listen on the unspecified IPv4 address (0.0.0.0). `

                          Die Angabe der Adresse ermöglicht bei Geräten mit mehreren Netzwerkschnittstellen (z.b. Ethernet und WLAN) nur auf Verbindungen auf einer dieser Schnittstellen zu reagieren.

                          1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators last edited by

                            Danke - wieder was gelernt (wenn auch noch nicht ganz verstanden) 😉

                            @[url=https://en.wikipedia.org/wiki/0.0.0.0:

                            ~~Wikipedia"]~~In the context of servers, 0.0.0.0 can mean "all IPv4 addresses on the local machine". If a host has two IP addresses, 192.168.1.1 and 10.1.2.1, and a server running on the host is configured to listen on 0.0.0.0, it will be reachable at both of those IP addresses. `

                            Gruß

                            Rainer

                            1 Reply Last reply Reply Quote 0
                            • AlCalzone
                              AlCalzone Developer last edited by

                              Zum eigentlichen Problem:

                              Der Admin-Adapter erstellt hier

                              https://github.com/ioBroker/ioBroker.ad … eb.js#L393

                              einen neuen HTTP-Server, was auf diese Zeile zeigt:

                              https://github.com/ioBroker/ioBroker.js ... pt.js#L175

                              Die Einstellung für "bind" (IP-Adresse) wird anscheinend an die Funktion übergeben, aber nie an den erstellen HTTP-Server.

                              1 Reply Last reply Reply Quote 0
                              • Bluefox
                                Bluefox last edited by

                                @AlCalzone:

                                Zum eigentlichen Problem:

                                Der Admin-Adapter erstellt hier

                                https://github.com/ioBroker/ioBroker.ad … eb.js#L393

                                einen neuen HTTP-Server, was auf diese Zeile zeigt:

                                https://github.com/ioBroker/ioBroker.js ... pt.js#L175

                                Die Einstellung für "bind" (IP-Adresse) wird anscheinend an die Funktion übergeben, aber nie an den erstellen HTTP-Server. `
                                hier

                                https://github.com/ioBroker/ioBroker.ad … eb.js#L408

                                Muss

                                server.server.listen(port, settings.bind);
                                
                                

                                stehen

                                1 Reply Last reply Reply Quote 0
                                • BuZZy
                                  BuZZy last edited by

                                  @Homoran:

                                  Danke - wieder was gelernt (wenn auch noch nicht ganz verstanden) 😉 ` Stell dir vor, du hast EINEN Server, mit ZWEI Netzwerkkarten.

                                  Also hast du zwei IPs unter denen du den selben Server erreichen kannst.

                                  192.168.0.1 und 192.168.0.2

                                  Jetzt installierst du auf diesem Server einen Webserver welcher auf dem HTTP Standardport 80 zu erreichen ist..

                                  Die Instanz vom Webserver ist mit "bind 0.0.0.0" (auf allen IPs horchen) konfiguriert.

                                  Jetzt kannst du im Browser

                                  http://192.168.0.1

                                  oder

                                  http://192.168.0.2

                                  aufrufen, und landest auf genau der gleichen Seite.

                                  Angenommen du willst jetzt dass auf den unterschiedlichen Adressen auch unterschiedliche Webseiten angezeigt werden.

                                  Dafür konfigurierst du die Webserver-1 Instanz auf "bind 192.168.0.1" und installierst eine zweite Instanz vom Webserver (Webserver-2)

                                  welche mit "bind 192.168.0.2" konfiguriert wird.

                                  Du bindest sozusagen die HTTP-Serverprozesss an diese IP-Adressen.

                                  Wenn du jetzt http://192.168.0.1 aufrufst, antwortet dir die Webserver-1 Instanz ..

                                  rufst du http://192.168.0.2 auf, antwortet dir die Webserver-2 Instanz - beide auf Port 80 - mit unterschiedlichen IPs - auf dem selben Server. 8-) 😉

                                  Gruß

                                  1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators last edited by

                                    Danke Buzzy, das hatte ich inzwischen sacken lassen, aber…

                                    Ich hatte in Erinnerung, dass man irgendwie auch den Zugriff auf einen Server durch Angabe der zulässigen (zugreifenden) IP-Adresse oder Bereiche limitieren könnte.

                                    Das habe ich jetzt nicht wieder gefunden.

                                    Danke nochmals

                                    Rainer

                                    1 Reply Last reply Reply Quote 0
                                    • BuZZy
                                      BuZZy last edited by

                                      @Homoran:

                                      Ich hatte in Erinnerung, dass man irgendwie auch den Zugriff auf einen Server durch Angabe der zulässigen (zugreifenden) IP-Adresse oder Bereiche limitieren könnte. ` Sprichst du jetzt von einer Firewall? :lol:

                                      Gruß

                                      1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators last edited by

                                        @BuZZy:

                                        Nennt sich Firewall… `
                                        :evil:

                                        Dann habe ich das wohl durcheinandergewirbelt 😉

                                        Gruß

                                        Rainer

                                        1 Reply Last reply Reply Quote 0
                                        • BuZZy
                                          BuZZy last edited by

                                          Manchmal ist das auch alles sehr verwirrend..

                                          Gibt viele Begriffe die auf "beides" zutreffen..

                                          Man kann auch eine Firewall an eine IP binden z.B… 😄 :lol:

                                          Gruß

                                          1 Reply Last reply Reply Quote 0
                                          • B
                                            Balu1973 last edited by

                                            Hallo Zusammen,

                                            Danke für die Diskussion. Wenn ich es richtig verstanden habe, sind die erforderlichen Änderungen von AlCalzone schon auf GIT gemacht und von Bluefox bestätigt, oder?

                                            Ab wann wäre das dann im Adapter vorhanden? Habe es gerade mit Version 3.3.5 versucht und dort klappt es noch nicht. Das Bild bleibt gleich…

                                            Danke und Grüße,

                                            Balu

                                            Edit: Falls es hilft/wichtig/interessant ist: Im Web Adapter konnte ich das Binding auf die zweite IP festlegen und den Port auf 443 stellen. Zugriff klappt einwandfrei...

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            493
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            20
                                            7175
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo