我有一個連接到虛擬網路的虛擬機器。虛擬網路有 2 個連接設備、虛擬網路網關和網路介面。
只有虛擬網路網關具有公用 IP 位址(顯然用於點到站點可以存取它)。
虛擬網路有兩個子網,一個是網關子網,因此我可以透過 VPN 連接到它,另一個是“內部子網路”,用於在內部將 Azure 資源相互連接。
因此,虛擬機器的配置沒有顯示公用 IP 位址,但它確實顯示了它連接到的虛擬網路。
那為什麼我的虛擬機器仍然可以連接到外部世界呢?
如果我這樣做ifconfig
它會顯示:
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
很明顯,它顯示它透過沒有公共 IP 的網路介面連接到虛擬網路中的我的子網路。
我想知道,因為當我設定網路安全群組時,我允許連接埠 22,以便我可以透過 VPN 進行 SSH,NSG 說這會暴露給外界,是 NSG 仍然允許網路進入嗎?或者我已經允許 NSG 上的連接埠 80 的事實。如果是這樣,如果我透過虛擬網路閘道進行連接,是否還需要 NSG 來開啟這些連接埠?
如何僅將連接埠 22 暴露給我的內部子網路(也稱為我的虛擬網路網關)而不暴露給外界?
答案1
它使用 NAT 連接到外部世界,與大多數家用 PC 一樣。如果您查看自己的電腦,您很可能會發現它也使用私有位址。基本上,路由器將連線轉送到目的地,對於目標主機來說,連線似乎源自於路由器。
這通常效果很好,但困難的是另一種方式,如果您希望外部主機連接到沒有公共位址的主機。