
Ich spiele damit herum unshare
, um Container besser zu verstehen. Ist es als normaler Benutzer möglich, einen Namespace zu erstellen, in dem ein Programm beispielsweise einen Port abhören kann, 123
und im „Haupt“-Namespace 1234
würde ein Port dorthin umgeleitet?
Ich denke, das sollte so sein, da Podman eine Rootless-Container-Engine ist und das kann. Das Nachschauen man veth
hat nicht geholfen.
Antwort1
Podman funktioniert durch die Verwendungslirp4netnszur Verwaltung einesTippen Sie auf das Gerätinnerhalb des nicht privilegierten Containers. Aus der README-Datei für slirp4netns:
Ab Linux 3.8 können nicht privilegierte Benutzer
network_namespaces(7)
zusammen mit erstellenuser_namespaces(7)
. Allerdings waren nicht privilegierte Netzwerk-Namespaces nicht sehr nützlich, da zum Erstellen vonveth(4)
Paaren über Host- und Netzwerk-Namespaces hinweg immer noch Root-Berechtigungen erforderlich sind. (d. h. keine Internetverbindung)slirp4netns ermöglicht die Verbindung eines Netzwerk-Namespaces mit dem Internet auf völlig unprivilegierte Weise, indem ein TAP-Gerät in einem Netzwerk-Namespace mit dem TCP/IP-Stack im Benutzermodus („slirp“) verbunden wird.
Um Ihr Ziel zu erreichen, müssten Sie etwas Ähnliches tun.