У меня есть виртуальная машина, подключенная к виртуальной сети. Виртуальная сеть имеет 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, чтобы я мог использовать SSH через мою VPN, NSG говорит, что это открыто для внешнего мира, это NSG все еще разрешает доступ в Интернет? или тот факт, что я разрешил порт 80 на NSG. Если да, нужна ли мне группа безопасности сети для открытия этих портов, если я подключаюсь через виртуальный сетевой шлюз?
Как мне открыть порт 22 только для моих внутренних подсетей (он же мой виртуальный сетевой шлюз), а не для внешнего мира?
Он использует NAT для подключения к внешнему миру, как и большинство домашних компьютеров. Если вы посмотрите на свой компьютер, вы, скорее всего, обнаружите, что он также использует частный адрес. По сути, маршрутизатор перенаправляет соединение к месту назначения, для целевого хоста соединение, похоже, исходит от маршрутизатора.
Обычно это работает хорошо, но трудным является другой способ, если вы хотите, чтобы внешние хосты подключались к хосту, у которого нет публичного адреса.