Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Herausfinden welcher Container auf einem Port lauscht

Featured Replies

Ich konnte gerade einen Container nicht starten, weil der Port bereits genutzt wird. Er wird allerdings nicht in der Container Übersicht angezeigt. Es konnte also nur ein Container sein, der das Host-Netzwerk nutzt. Durch nacheinander stoppen, konnte ich den Container ermitteln. Doch da gibt es doch bestimmt auch eine andere Methode für oder?

3 hours ago, mgutt said:

Er wird allerdings nicht in der Container Übersicht angezeigt

 

der ist hier nicht gelistet ?

 

image.thumb.png.46bc73c78e659f26e8bfb50d926bcd98.png

  • Author
2 hours ago, alturismo said:

der ist hier nicht gelistet ?

 

Nope:

image.png.8d47c8eda22ceb98eaef87d576fbed45.png

 

Der Container hat zusätzlich die Ports 3000, 25565 und 25566 geöffnet. Weitere weiß ich nicht mal, weil ich nicht wüsste, wie ich das herausfinde.

Dreck, sicher weil der als Host läuft ... Ich schau später Zuhause wie das....

Gesendet von meinem SM-G981B mit Tapatalk

  • Author
16 minutes ago, alturismo said:

Dreck, sicher weil der als Host läuft ...

Korrekt. Ähnliches soll aber auch in anderen Netzwerk-Typen gelten, wenn IPv6 aktiv ist bzw in br0 usw gilt das natürlich sowieso auch.

hab mal schnell geschaut ... so einfach sieht das nicht aus da selbst die custom:br0 Anzeigen auch keine Logik haben wie in meinem Beispiel ...

 

das ist weder eine Echtabfrage noch was im template hinterlegt ist noch was als expose hinterlegt ist im dockerfile an sich.

 

Da muss ich jetzt doch passen und andere haben da vielleicht eher eine Idee die "Echtabfrage" zu gestalten der docker zugehörigen listen ports

  • Author
3 minutes ago, alturismo said:

so einfach sieht das nicht

Hmm doof. Ein einfacher Portscan bringt natürlich auch nichts, weil bei Host weiß ich dann ja nicht ob das Unraid selbst oder der Container ist. Bleibt eigentlich nur im Container selbst. Also zB so:

su
apt-get update
apt-get install lsof
lsof -i -P -n | grep LISTEN

 

Auf die Art bekomme ich gefühlt 1000 Ergebnisse, aber alle Ports:

lsof -i -P -n | grep LISTEN
nginx    233 root   18u  IPv4 32304866      0t0  TCP *:80 (LISTEN)
nginx    233 root   19u  IPv6 32304867      0t0  TCP *:80 (LISTEN)
nginx    233 root   20u  IPv4 32304868      0t0  TCP *:443 (LISTEN)
nginx    233 root   21u  IPv6 32304869      0t0  TCP *:443 (LISTEN)
nginx    233 root   22u  IPv4 32304870      0t0  TCP *:81 (LISTEN)
nginx    233 root   23u  IPv6 32304871      0t0  TCP *:81 (LISTEN)
nginx    233 root   24u  IPv4 32304872      0t0  TCP *:25565 (LISTEN)
nginx    233 root   25u  IPv6 32304873      0t0  TCP *:25565 (LISTEN)
nginx    233 root   26u  IPv4 32304874      0t0  TCP *:25566 (LISTEN)
nginx    233 root   27u  IPv6 32304875      0t0  TCP *:25566 (LISTEN)
node     248 root   21u  IPv6 32301913      0t0  TCP *:3000 (LISTEN)
nginx   1112 root   18u  IPv4 32304866      0t0  TCP *:80 (LISTEN)
nginx   1112 root   19u  IPv6 32304867      0t0  TCP *:80 (LISTEN)
nginx   1112 root   20u  IPv4 32304868      0t0  TCP *:443 (LISTEN)
nginx   1112 root   21u  IPv6 32304869      0t0  TCP *:443 (LISTEN)
...
und noch viel mehr...

 

Trotzdem nervig, wenn man das bei jedem Container einzeln machen muss und wer weiß ob der Container vielleicht später noch mehr Ports aufmacht. Die Kontrolle fehlt dann natürlich. Wobei.. Docker nutzt doch cgroups. Da kann man doch bestimmt die Capability entfernen, dass der einfach mehr Ports aufmacht. Muss ich mal suchen.

Geht es Dir um die Kontrolle?

Dann einfach durch ne Firewall routen und die Logs auswerten ;-)

 

Oder geht es um Vermeidung von Ressourcen-Konflikten?

Dann einfach alles auf ein custom brX und gut isss.

Das "Problem" war für mich die Initialzündung um auf VLANs umzustellen,

Mich kümmern Port-Konflikte einfach nicht.

8 hours ago, Ford Prefect said:

Geht es Dir um die Kontrolle?

 

ich schätze (wenn ich es richtig verstanden habe) eher

 

8 hours ago, Ford Prefect said:

Oder geht es um Vermeidung von Ressourcen-Konflikten?

 

 

einfache Übersicht aller wirklich genutzten Ports der docker(s) auf dem host (zzgl. der bridge, proxynet's, was auch immer)

um Konflikte zu vermeiden ohne genaue Info's zu haben welcher docker jetzt ... das kann auftreten wenn docker's im host mode laufen.

 

Ich habe schon lange umgestellt auf custom:br0 und hab glücklicherweise auch keine Probleme damit (macvlan), gibt jedoch einige die damit issues haben, daher in 6.10 auch die ipvlan Ergänzung in der custom:br0 (welche jedoch bei mir Probleme macht). Sieht man ja auch auf meinem screen, bei mir haben alle docker(s) Ihre eigene ip und gut ist, ich hatte auch die Schn... voll nach ports zu schauen und war froh mit macvlan (6.8.3 oder so wurde das eingeführt)

 

in der Konstellation mit host mode docker(s) wüsste ich jetzt auch nicht wie schnell eine Übersicht zu greifen wäre der ports in use ...

57 minutes ago, alturismo said:

Ich habe schon lange umgestellt auf custom:br0 und hab glücklicherweise auch keine Probleme damit (macvlan), gibt jedoch einige die damit issues haben,

Ja, genau.

Ich habe aber noch "echte" IP-VLANs aktiviert.

Damit umgehe ich das "Problem", dass Docker sonst nicht mit dem unRaid-Host kommunizieren können (auf der gleichen bridge).

Es wird halt einfach von einer br0.vlan-x zur br0.vlan-y geroutet...und die Firewall kann unerwünschte Kommunikationsströme filtern...muss halt durch den Router durch, aber meiner hat auch ne 10G Anbindung bzw. hatte ihn in einer VM.

 

Probleme waren im Zusammenhang mit VMs, oder? Bisher bei mir nicht aufgetreten.

Manche Docker sind kacke gebaut und kommen damit nicht zurecht, aber da kann unRaid nix dafür

57 minutes ago, alturismo said:

daher in 6.10 auch die ipvlan Ergänzung in der custom:br0 (welche jedoch bei mir Probleme macht).

...bin gerade erst auf die 6.9.2 umgestiegen....mal sehen, klingt interessant, aber die individuelle MAC möchte ich im Moment eher behalten.

 

57 minutes ago, alturismo said:

in der Konstellation mit host mode docker(s) wüsste ich jetzt auch nicht wie schnell eine Übersicht zu greifen wäre der ports in use ...

Ja, das ginge eher nur durch ein Port-Probe, aber die Liste ist einfach zu lang und dafür Ressourcen verschwenden...?

32 minutes ago, Ford Prefect said:

Ja, das ginge eher nur durch ein Port-Probe, aber die Liste ist einfach zu lang und dafür Ressourcen verschwenden...?

exakt

 

32 minutes ago, Ford Prefect said:

Damit umgehe ich das "Problem", dass Docker sonst nicht mit dem unRaid-Host kommunizieren können

das geht auch ohne "echte" vlan's nur am Rand falls übersehen

 

image.png.c4fc3c71b8b02785d16cb331c8d59f93.png

 

34 minutes ago, Ford Prefect said:

aber die individuelle MAC möchte ich im Moment eher behalten.

genau das ist hier das Problem mit ipvlan und einer Fritz ... da wird die gewaltig durcheinander ;)

 

10G Karte hab ich raus da die mir meine RTX3070 unnötig heiß gemacht hat und ich in Wirklichkeit keinen 10G Bedarf habe, war nice aber gebraucht habe ich das ... nicht wirklich ;)

 

36 minutes ago, Ford Prefect said:

Probleme waren im Zusammenhang mit VMs, oder? Bisher bei mir nicht aufgetreten.

anscheinend, aber wie gesagt, kann ich nicht nachvollziehen da weder mit der 10G Karte noch jetzt mit der 1G onboard hier soweit alles ok ist

  • Author
10 hours ago, Ford Prefect said:

Geht es Dir um die Kontrolle?

In einer idealen Welt würde ich gerne direkt in der Container-Übersicht sehen können, welche Ports wirklich offen sind. Und sollte es Wege geben, wäre das ja ein Ansatz die Unraid GUI für alle entsprechend anzupassen.

das wäre für mich das was am ehesten dran käme am host

 

image.png.f99ef5e28705ac35d89460c522a2aa7c.png

 

ohne eine ewig lange Liste zu haben ...

Edited by alturismo

9 minutes ago, alturismo said:

das geht auch ohne "echte" vlan's nur am Rand falls übersehen

Ja, das einzuschalten wollte ich vermeiden.

Finde es besser mit der VLAN Trennung...da habe ich dann alle Filter in der Firewall, an einer Stelle.

 

9 minutes ago, alturismo said:

genau das ist hier das Problem mit ipvlan und einer Fritz ... da wird die gewaltig durcheinander ;)

Ich habe endlich, seit 1 Woche meine Internet-Anschlüsse Frittenfrei zu betreiben. ;-)

Denke aber das Problem ist eher, das es ge-natted werden müsste im unraid Host, was über ipvlan dahinter los ist...im gleichen Netzsegment braucht es ja die MAC...da wird jeder Router verwirrt.

 

9 minutes ago, alturismo said:

10G Karte hab ich raus da die mir meine RTX3070 unnötig heiß gemacht hat und ich in Wirklichkeit keinen 10G Bedarf habe, war nice aber gebraucht habe ich das ... nicht wirklich ;)

In Zeiten von Homeoffice und -schooling war mir der extra headroom, bei einer 1Gbps I-Net Verbindung ganz recht.

Dann weiss man wenigstens, dass es da nicht lagged, wenn die Family sich über schlechtes WLAN/I-Net beschwert ;-)

18 minutes ago, mgutt said:

In einer idealen Welt würde ich gerne direkt in der Container-Übersicht sehen können, welche Ports wirklich offen sind. Und sollte es Wege geben, wäre das ja ein Ansatz die Unraid GUI für alle entsprechend anzupassen.

Das Problem ist, dass Du mit einer passiven Methode zwar offene Ports auf dem Host finden kannst, aber die Zuordnung zu einem Docker nicht hast.

Siehe den Post drüber von @alturismo.

Man müsste also, ähnlich wie bei nem healthcheck, das innerhalb des Dockers machen und dann, zB via SNMP im unraid Host einsammeln und im UI ausgeben.

Annahme ist, dass dies bei allen network-models im Docker gleich funktioniert, also auch da wo kein portmap explizit gemacht wird.

 

 

  • Author
4 hours ago, Ford Prefect said:

aber die Zuordnung zu einem Docker nicht hast.

Das hat mir zu denken gegeben und es geht doch. Wenn ich zB das oben genannte Kommando auf dem Host ausführe, dann identifiziert sich der NPM Container auch nur mit dem Servicenamen "nginx" und "node":

image.png.d73924e45e1dff66b06b5384c69a31db.png

 

Ich kann also nicht sehen, dass diese Dienste gar nicht auf dem Host laufen, sondern in einem Container. Allerdings sehe ich dessen PID 13351, welche ja von irgendeinem Haupt-Prozess erstellt wurde. Ich habe dann erst mal alle Haupt-PIDs aller Container ausgeben lassen:

image.png.e219c9f770925859911b9a5c2788bd12.png

 

Und genau damit bekomme ich nun alle Sub-PIDs, die diese PID erstellt hat und schon habe ich "13351" und "13366" gefunden:

image.png.b853d67b2f0b0bfe3cf94c9b14d5c0a8.png

 

Schlussfolgerung:

Man liest die PIDs jedes Containers aus, dann alle Sub-PIDs und zuletzt ermittelt man auf welchen Ports die Prozesse des Containers lauschen. Damit sollte sich die GUI so anpassen lassen, dass sie die wirklich offenen Ports anzeigt. Mal sehen ob ich das umgesetzt bekomme. Ist ja denke ich auch interessant für br0 Container, dass man mal sieht was die wirklich so offen haben.

...gute Idee...Hut ab!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.