Azure 虚拟机没有公共 IP,但可以访问互联网

Azure 虚拟机没有公共 IP,但可以访问互联网

我有一台连接到虚拟网络的虚拟机。虚拟网络有 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 一样。如果你看看你自己的 PC,你很可能会发现它也使用私有地址。基本上,路由器将连接转发到目的地,对于目标主机来说,连接似乎源自路由器。

这通常很有效,如果您想让外部主机连接到没有公共地址的主机,那么另一种方法就很困难了。

相关内容