Брандмауэр Google Cloud блокирует соединения при использовании порта в адресе - PullRequest
0 голосов
/ 01 ноября 2018

Я довольно плохо знаком с тем, как работает Google Cloud, и мне кажется, что здесь есть что-то очевидное, чего мне не хватает. Я установил TeamCity на виртуальную машину Ubuntu 18.04, и она работает на порте 8111. Когда я нажимаю [ip]: 8111 в браузере, я не получаю интерфейс - я получаю «35.196.21.62 отказался подключиться». Я могу пропинговать [ip]: 8111 из командной строки на моем компьютере с Windows, и он там тоже не отвечает. Тем не менее, я могу пропинговать [ip] без порта, и он отвечает просто отлично.

Насколько я могу судить, мой брандмауэр должен быть настроен так, чтобы все, что находится под солнцем, подключалось к коробке. Я создал следующее идентичное правило как для выхода, так и для входа.

enter image description here

Наконец, правила брандмауэра отображаются на экземпляре, поэтому они применяются.

Это также проблема на коробке Linux. Я подтвердил, что служба работает, но я не уверен, что еще нужно проверить - нет браузера, потому что нет графического интерфейса. «ufw status» подтверждает, что брандмауэр выключен.

Что я могу сделать, чтобы открыть этот порт, чтобы я мог получить к нему доступ в своем браузере?

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

На основании описания проблемы мы провели локальный тест. Когда приложение работает на компьютере Linux, который служит конечной точкой для сетевого (TCP / IP) трафика, мы обнаружим, что оно прослушивает номер порта. Клиент, желающий подключиться к этому приложению, должен знать хост / IP-адрес хоста, на котором работает компьютер, а также порт, на котором работает приложение.

В нашей головоломке, описанной в этой проблеме, мы пытались подключиться к приложению, размещенному на GCP, которое, по нашему мнению, прослушивало порт 8111. Однако полученное нами сообщение об ошибке было «Соединение отказано». Мой опыт показывает, что эта ошибка указывает на то, что сетевой запрос от клиента проходит к хосту, но хост не знает, что приложение прослушивает этот порт.

Один простой способ составить список всех используемых портов - использовать команду nestat. У этого есть много опций, но я предпочитаю nestat -an, в котором перечислены все сетевые соединения (включая те, которые находятся в режиме прослушивания) и печатаются числовые IP-адреса, а не выполняется разрешение имени хоста. Для получения полной информации о nestat см. netstat . Альтернативой nestat является команда lsof, но она используется не так часто, и может потребоваться дополнительная настройка.

После запуска nestat мы обнаружили, что ни одно локальное приложение на хосте активно не прослушивает порт 8111, что полностью объясняет, почему интернет-клиент не может подключиться к службе. Первый проход при разрешении будет проверять природу и конфигурацию приложения, запускаемого на хосте, чтобы определить, как настроить его для активного прослушивания желаемого порта. До тех пор, пока netstat не покажет, что приложение прослушивает локально, при подключении из Интернета нет никакой ценности / достоинства.

0 голосов
/ 02 ноября 2018

При нажатии [ip]: 8111 в браузере я не получаю интерфейс - я получаю "35.196.21.62 отказано в соединении."

Необходимо создать правило брандмауэра, чтобы разрешить трафик на порт 8111.

Я могу пропинговать [ip]: 8111 из командной строки на моем компьютере с Windows, и он там тоже не отвечает.

Команда ping не использует TCP или UDP, вместо этого она использует ICMP. ICMP не имеет номеров портов. ICMP - это IP Protocol 1.

Однако я могу пропинговать [ip] без порта, и он отвечает просто отлично.

Это означает, что у вас есть правило брандмауэра, разрешающее ICMP трафик.

...