Ich habe eine virtuelle Maschine, die mit einem virtuellen Netzwerk verbunden ist. Das virtuelle Netzwerk hat zwei angeschlossene Geräte, ein virtuelles Netzwerk-Gateway und eine Netzwerkschnittstelle.
Nur das virtuelle Netzwerk-Gateway verfügt über eine öffentliche IP-Adresse (wird offenbar verwendet, damit Point-to-Site darauf zugreifen kann).
Das virtuelle Netzwerk verfügt über zwei Subnetze: ein Gateway-Subnetz, zu dem ich per VPN eine Verbindung herstellen kann, und ein „internes Subnetz“, das verwendet wird, um Azure-Ressourcen intern miteinander zu verbinden.
Daher zeigt die Konfiguration für die virtuelle Maschine keine öffentliche IP-Adresse an, aber das virtuelle Netzwerk, mit dem sie verbunden ist.
Wie kann meine virtuelle Maschine also weiterhin eine Verbindung zur Außenwelt herstellen?
Wenn ich ein mache, ifconfig
wird angezeigt:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.4 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::222:48ff:fe07:e7da prefixlen 64 scopeid 0x20<link>
ether 00:22:48:07:e7:da txqueuelen 1000 (Ethernet)
RX packets 47292 bytes 58161743 (58.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14277 bytes 2886277 (2.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Es zeigt also deutlich, dass es über die Netzwerkschnittstelle, die keine öffentliche IP hat, mit meinem Subnetz im virtuellen Netzwerk verbunden ist.
Ich frage mich, weil ich beim Einrichten der Netzwerksicherheitsgruppe Port 22 zulasse, damit ich über mein VPN SSH verwenden kann. Die NSG sagt, dass dies der Außenwelt zugänglich ist. Ist es die NSG, die das Internet trotzdem zulässt? Oder die Tatsache, dass ich Port 80 auf der NSG zugelassen habe? Wenn ja, brauche ich dann überhaupt eine NSG, um diese Ports zu öffnen, wenn ich mich über das virtuelle Netzwerk-Gateway verbinde?
Wie kann ich Port 22 nur meinen internen Subnetzen (auch bekannt als meinem virtuellen Netzwerk-Gateway) zugänglich machen und nicht der Außenwelt?
Antwort1
Er verwendet NAT, um sich mit der Außenwelt zu verbinden, so wie es die meisten Heim-PCs tun. Wenn Sie sich Ihren eigenen PC ansehen, werden Sie höchstwahrscheinlich feststellen, dass er auch eine private Adresse verwendet. Im Grunde leitet der Router die Verbindung an das Ziel weiter, für den Zielhost scheint die Verbindung vom Router zu stammen.
Dies funktioniert normalerweise gut. Schwierig ist jedoch der umgekehrte Weg, wenn Sie möchten, dass externe Hosts eine Verbindung zu dem Host herstellen, der keine öffentliche Adresse hat.