Порты заблокированы (сервер Hetzner Cloud)

Здравствуйте,

Я пытаюсь установить Discourse на облачный сервер от Hetzner, но при запуске ./discourse-setup получаю сообщение о том, что порты заблокированы (домен domain.de, очевидно, не настоящий):

WARNING: Port 443 of computer does not appear to be accessible using hostname:  discourse.domain.de.
WARNING: Connection to http://discourse.domain.de (port 80) also fails.

Как предлагает инструмент настройки, теперь я хочу проверить, разрешается ли discourse.domain.de в IP-адрес облачного сервера. При выполнении dig discourse.domain.de я получаю следующий вывод:

; <<>> DiG 9.16.1-Ubuntu <<>> discourse.domain.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28839
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;discourse.domain.de.	IN	A

;; ANSWER SECTION:
discourse.domain.de. 4134	IN	A	XXX.XXX.XXX.XXX (correct ip address)

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Apr 24 10:14:44 UTC 2022
;; MSG SIZE  rcvd: 70

Это, кажется, в порядке.
Следующая рекомендация — что проблема может быть в брандмауэре. У меня есть брандмауэр со следующими открытыми портами:


Поэтому я думаю, что брандмауэр не является причиной вышеуказанного сообщения. Возможно, что-то другое блокирует порты? Я читал, что Apache может вызывать такую проблему, но он не установлен на облачном сервере.
Я попробовал telnet discourse.domain.de 443, чтобы проверить, открыты ли порты, и получил:

telnet: Unable to connect to remote host: Network is unreachable

У кого-нибудь есть идея, как исправить эту проблему?
Спасибо!

РЕДАКТИРОВАНИЕ: То же самое и при отключённом брандмауэре.

Вы проверяли DNS через внешний сервис?

То есть через сервис, который не маршрутизирует трафик через вашего облачного хостинг-провайдера?

Раньше я этого не делал, спасибо за подсказку. Теперь отображается правильный IPv4-адрес.

Вы получаете это сообщение, потому что эти порты действительно блокируются Hetzner.

Как-то не по теме, но вы знаете, почему Hetzner блокирует такие важные, и в то же время тривиальные порты?

Хорошо, спасибо. Я свяжусь с поддержкой Hetzner.

Чтобы предотвратить злоупотребления. https://docs.hetzner.com/cloud/servers/faq/

К сожалению, спам-рассылки и мошенники часто используют облачных хостинг-провайдеров. И мы в Hetzner, разумеется, хотим этого избежать. Поэтому по умолчанию мы блокируем порты 25 и 465 на всех облачных серверах. Это очень распространённая практика в индустрии облачного хостинга, поскольку она предотвращает злоупотребления. Мы хотим завоевать доверие новых клиентов, прежде чем разблокировать эти почтовые порты. Как только вы будете с нами в течение месяца и оплатите первый счёт, вы сможете подать запрос на изменение лимитов для разблокировки этих портов в случае обоснованного использования. В своём запросе вы можете подробно описать ваш сценарий использования. Мы принимаем решения в каждом конкретном случае.

В качестве альтернативы вы также можете использовать порт 587 для отправки писем через внешние сервисы доставки почты. Порт 587 не заблокирован и может использоваться без подачи запроса на изменение лимитов.

Это распространённое решение, и одна из причин, почему собственный почтовый сервер практически невозможно развернуть.

Но у ОП были проблемы с портами 80 и 443. Или я что-то упустил?

Вы правы. Я перепутал две разные проблемы. Извините за путаницу.

Я поискал в форуме, не сталкивался ли кто-нибудь с подобной проблемой, и нашёл это, хотя, к сожалению, это не «истинное решение» как таковое:

Может быть, для вас подойдёт вариант с ручной настройкой app.yml?

Я всё ещё в замешательстве, но на Digital Ocean необходимо настроить фаервол. При чистой установке все порты закрыты (кроме SSH, но это отдельная история). Я не знаю, как работает Hetzner. И если VPS находится за закрытыми портами, то неважно, что указано в app.yml.

Или я снова что-то упускаю?

Ручная настройка app.yml тоже решила мою проблему. Спасибо!
Я тоже нашел эту тему, но, видимо, не прочитал её достаточно внимательно… :see_no_evil:

Я хосту три форума на Hetzner и никогда не сталкивался с этой проблемой :thinking:

Так, Hetzner открывает порты для веб-сервера сразу после запуска VPS? Или они по умолчанию устанавливают nginx или apache?

Это… странно.

Думаю, да. Когда я запускаю VPS (Ubuntu 20), nginx не устанавливается по умолчанию: discourse-setup устанавливает его.
Я много раз устанавливал Discourse на VPS от Hetzner без каких-либо проблем в течение многих лет (в последний раз это было в феврале).
Вот почему меня смущает эта тема.


редактирование: по какой-то причине я перепутал docker и nginx :sweat_smile:

Это не совсем так. Он не устанавливает nginx в операционную систему, но он включён в контейнер Docker Discourse.

Это не соответствует моему опыту. В Ubuntu LTS по умолчанию брандмауэр не включён, и все порты открыты.

Есть два варианта: использовать брандмауэр от DigitalOcean или установить UFW (или аналогичное решение) после создания VPS. Ни в одной из моих установок не используется их брандмауэр, поэтому все порты закрыты, пока я не открою их через UFW.

В любом случае — теперь мы знаем, когда, где и как установлен Nginx. Каждый день что-то новое (когда ты/я/кто-то не понимает, как работает Docker :smile: )