Доступен ли мой сетевой порт для внешнего мира?

Задний план

Впервые работаю с Azure. Я развертываю сервер базы данных (ClickHouse) на виртуальной машине, размещенной в Azure, и он нормально запускается. Виртуальная машина работает под управлением Ubuntu. Портами по умолчанию сервера базы данных являются порт localhost 9000 для TCP (используется клиентом командной строки) и 8123 для HTTP (используется клиентами приложений).

Проблема

Сервер базы данных должен прослушивать HTTP-порт сервера по умолчанию (8123). Однако, когда я пытаюсь подключиться, он просто зависает. Основываясь на приведенных ниже шагах, я не думаю, что сетевой запрос поступает на сервер.

Шаги, которые я пробовал

  • Запустил контейнерную версию на моем локальном компьютере и использовал ту же самую команду curl для запуска простого SELECT 1 запроса к ней (http://localhost:8123). Это удается и доказывает мне, что запрос не искажен.
  • Проверено, что сервер отвечает через локальный клиент на виртуальной машине (при подключении по SSH)
  • Добавил свой IP-адрес и порт в «правила входящего порта» виртуальной сети. Я смог получить доступ к своему общедоступному IP-адресу через SSH после добавления аналогичного правила для этого.

Доступен ли мой сетевой порт для внешнего мира? мой ip действителен irl

  • $ telnet my.public.ip.address 8123 <- очевидно, с фактическим IP-адресом. это тоже зависает
  • Подключившись к SSH, я запустил $ ss -atn | grep 8123 и увидел:
State       Recv-Q   Send-Q          Local Address:Port          Peer Address:Port
LISTEN      0        4096            127.0.0.1:8123              0.0.0.0:*
LISTEN      0        4096                [::1]:8123                 [::]:*

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

Есть идеи?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

СЛУШАТЬ 0 4096 127.0.0.1:8123
0.0.0.0:*

ожидал:

LISTEN     0      4096                        *:8123                          *:*

Ваш Clickhouse слушает только локальный хост

решение:

cat /etc/clickhouse-server/config.d/port.xml
<?xml version = "1.0"?>
<yandex>
    <listen_host>::</listen_host>
</yandex>

и перезапустить Ч.

Какова цель второй записи там? [::1]:8123

Switch386 13.10.2022 20:52

также, в чем разница между корневыми элементами yandex и clickhouse в файлах конфигурации? конфигурация, которая была автоматически сгенерирована при установке ch, привела к корневому элементу clickhouse

Switch386 13.10.2022 21:01

[::1]:8123 -- локальный хост в терминах ipv6 stackoverflow.com/questions/4611418/what-is-ip-address-1

Denny Crane 13.10.2022 21:05

изначально корневой тег был <yandex>. Теперь они изменили его на <clickhouse>. Текущая стабильная версия поддерживает оба. Старые версии явно поддерживали только яндекс. Вы не указали версию своего Clickhouse, поэтому я решил использовать <yandex>

Denny Crane 13.10.2022 21:07

понял, я предполагал, что это что-то вроде этого. я использую последнюю стабильную версию. это было полезно. я думаю, что на уровне моей организации все еще есть что-то, препятствующее доступу трафика к виртуальной машине. будем работать с ними теперь! Спасибо за помощь!

Switch386 14.10.2022 00:17

Другие вопросы по теме