Azure, соединение отказано в некоторых портах при доступе из Интернета
У меня есть 2 виртуальные машины (CentOS), работающие в той же VNET (и подсети). Они оба имеют статический публичный IP.
У меня есть группа сетевой безопасности, которая определяет входящие и исходящие правила, подключенные как к сетевым картам, так и к VNET.
Одним из входящих правил является правило default-allow-ssh. Пока все хорошо, используя SSH, я могу получить доступ к обеим виртуальным машинам из-за пределов Azure со своего компьютера из любой точки сети.
На 1 из виртуальных машин у меня работает веб-сервер.
Предоставление доступа к веб-серверу через порт 80 и добавление нового правила безопасности входящего NSG для порта 80 (src: any, диапазон портов src: *, dest: any, port: 80, protocol: any) позволяет met получить доступ к веб-серверу из любого места: с мой компьютер из любой точки сети, с другой виртуальной машины в Azure, как я и ожидал.
Теперь, когда я меняю порт веб-сервера с 80 на, например, 7181:
Я все еще могу сделать "curl http://%5BPUBLIC_IP%5D:7181" с сервера, на котором я размещаю веб-сервер на AS WELL AS, с другого сервера CentOS, находящегося в той же VNET (подсети), НО больше не с моего компьютера или любого другого компьютер за пределами области Azure (в Интернете).
Firewalld не работает на веб-сервере, и при этом я не установил iptables, только правила NSG определяют входящий и исходящий трафик.
Хост веб-сервера всегда доступен из любой точки за пределами Azure, используя ssh. Сам веб-сервис на порте 80, включая правильное правило входящей NSG, также отлично работает из любой точки и внутри Azure. Пользовательский порт, настроенный идентично как порт 80 или 22 в NSG (кроме номера порта, конечно), доступен только из той же VNET.
Кто-нибудь?
(ошибка, которую я получаю, хорошо известна: ERR_CONNECTION_REFUSED)
Скриншот NSG: введите описание изображения здесь
3 ответа
Перезагрузка экземпляра виртуальной машины решила проблему. Таким образом, похоже, что добавление / обновление правил NSG на лету не влияет на запуск экземпляров немедленно или что-то еще требует много времени для синхронизации и вступления в силу. Должно быть, я забыл о моих первых днях Windows, когда перезагрузки были довольно стандартными при изменении конфигурации или установке новых вещей. В любом случае, спасибо всем за ваше время и усилия по этому вопросу.
Создайте отдельные правила для каждого порта, который вы хотите открыть. Насколько я знаю, вы не можете указать список портов в поле "порт". Только один порт, диапазон портов или *.
К вашему сведению: соединение с другой машиной в VNET работает, потому что есть правило "AllowVnetInBound".
Задавая вопрос: добавили ли вы правило для порта 7181 в NSG?
Мои тесты говорят: этот тип ошибок исходит от NSG.
CURL изнутри сети может привести к ошибочным мнениям. Вы должны проследить маршрут при подключении IP на порт 7181.