Warum kann ich ng nicht über die Schnittstellen-IP-Adresse erreichen?

Warum kann ich ng nicht über die Schnittstellen-IP-Adresse erreichen?

Ich versuche, mit VirtualBox eine Ubuntu Linux-VM einzurichten, um den Server zu emulieren, für den ich entwickle. Der Server verfügt über drei Netzwerkschnittstellen.

Auf dem Server gibt es eine von Mosquitto gehostete Webseite ngund eine Instanz von Mosquitto. Wir möchten, dass diese über eine Schnittstelle, die Verwaltungsschnittstelle, verfügbar sind, aber nicht über die beiden anderen. Wir verwenden ein VRF, um die Verwaltungsschnittstelle zu isolieren.

Die VirtualBox-Adapter sind konfiguriert für:

  • Adapter 1 – Host-Only-Adapter (dies soll die Verwaltungsschnittstelle sein). In der VM ist es ensp0s3 mit der Adresse 192.168.56.104.
  • Adapter 2 – NAT. In der VM ist es enp0s8 mit der Adresse 10.0.3.15.
  • Adapter 3 – NAT. In der VM ist es enp0s9 mit der Adresse 10.0.4.15.

Im Host-Only-Netzwerk ist der Host 192.168.56.103.

In der VM ist mir die Isolierung egal, aber ich habe das Problem, dass ich vom Hostcomputer aus nicht auf die Webseite zugreifen kann.

Die Webseite wird von Port 4200 bereitgestellt ng serve --host 0.0.0.0 --disable-host-checkund ist laut Konfiguration auf Port 4200 platziert. Ich verstehe 0.0.0.0 so, dass es „alle Adressen“ bedeutet.

lsofzeigt an:

$ sudo lsof | grep :4200
ng\x20ser  30802                            root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30803 node                 root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30804 node                 root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30805 node                 root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30806 node                 root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30807 node                 root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30808 node                 root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30916 ng\x20ser            root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30917 ng\x20ser            root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30918 ng\x20ser            root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)
ng\x20ser  30802 30919 ng\x20ser            root   20u     IPv4             330718      0t0        TCP *:4200 (LISTEN)

netstatund sszeigen ähnliche offene Bindungen:

$ sudo netstat -tln | grep :4200
tcp        0      0 0.0.0.0:4200            0.0.0.0:*               LISTEN
$ sudo ss -tln | grep :4200
LISTEN  0        511              0.0.0.0:4200           0.0.0.0:*

http://192.168.56.104:4200Beim Versuch , in einem Browser auf dem Hostcomputer zu navigieren, wird jedoch die Meldung „Verbindung abgelehnt“ angezeigt.

Ich weiß, dass es kein Problem mit der Netzwerkerreichbarkeit ist, denn

  1. Ich kann pingdie VM vom Host
  2. Ich kann sshvom Host aus in die VM
  3. Wenn ich dies watch -n 1 "ifconfig enp0s3"in der VM mache, sehe ich, dass die Zähler bei jeder Aktualisierung des Browsers um einige Pakete hochzählen.

In der VM geben curl http://0.0.0.0:4200beide curl http://127.0.0.1:4200die Seite zurück, aber curl http://192.168.56.104es steht:

curl: (7) Verbindung zu 192.168.56.104 Port 4200 konnte nicht hergestellt werden: Verbindung abgelehnt

Ich scheine auf der VM nicht blockiert zu sein, da sudo ufw statusdort „Status: inaktiv“ angezeigt wird und sudo iptables-saveFolgendes steht:

# Generated by iptables-save v1.8.4 on Tue Nov 29 14:13:18 2022
*filter
:INPUT ACCEPT [160:15704]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [219:23422]
-A FORWARD -m physdev --physdev-in enp0s8 --physdev-out enp0S9 -j ACCEPT
-A FORWARD -m physdev --physdev-in enp0S9 --physdev-out enp0s8 -j ACCEPT
COMMIT
# Completed on Tue Nov 29 14:13:18 2022

Ich denke vielleicht, dass das etwas Seltsames ist ng, aber ich sehe die gleichen Fehler mit einem MQTT-Broker in der VM.

Warum kann ich also, wenn ich an 0.0.0.0 gebunden bin, nicht die „echte“ IP-Adresse von einem Browser auf dem Host oder auf curlder VM verwenden?

verwandte Informationen