Puertos bloqueados (servidor en la nube Hetzner)

Hola,

Estoy intentando instalar Discourse en un servidor en la nube de Hetzner, pero al ejecutar ./discourse-setup me aparece el mensaje de que los puertos están bloqueados (discourse.domain.de, obviamente, no es el dominio real):

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.

Como sugiere la herramienta de configuración, ahora quiero comprobar si discourse.domain.de se resuelve a la dirección IP del servidor en la nube. Al ejecutar dig discourse.domain.de obtengo la siguiente salida:

; <<>> 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 (dirección IP correcta)

;; 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

Lo que me parece bien.
Lo siguiente que se sugiere es que podría ser un problema de firewall. Tengo un firewall con los siguientes puertos abiertos:


Así que creo que el firewall no es la razón del mensaje anterior. ¿Es posible que haya algo más que esté bloqueando los puertos? He leído que Apache podría causar un problema de este tipo, pero no está instalado en el servidor en la nube.
Intenté telnet discourse.domain.de 443 para ver si los puertos estaban abiertos y obtuve:

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

¿Alguien tiene alguna idea de cómo solucionar este problema?
¡Gracias!

EDIT: Es lo mismo con el firewall desactivado.

¿Has buscado el DNS usando un servicio externo?

Es decir, uno que no esté enrutando a través de tu proveedor de alojamiento en la nube?

2 Me gusta

No he hecho eso antes, gracias por el consejo. Muestra la dirección IPv4 correcta.

Recibes ese mensaje porque esos puertos están siendo bloqueados por Hetzner.

5 Me gusta

Aunque está un poco fuera de tema, ¿sabes por qué Hetzner bloquearía puertos tan importantes y a la vez triviales?

De acuerdo, gracias. Me pondré en contacto con el soporte de Hetzner.

1 me gusta

Para evitar abusos. https://docs.hetzner.com/cloud/servers/faq/

Desafortunadamente, a los spammers y estafadores de correo electrónico les gusta usar proveedores de alojamiento en la nube. Y en Hetzner, naturalmente, queremos evitar esto. Por eso, bloqueamos los puertos 25 y 465 por defecto en todos los servidores en la nube. Esta es una práctica muy común en la industria del alojamiento en la nube porque previene abusos. Queremos generar confianza con nuestros nuevos clientes antes de desbloquear estos puertos de correo. Una vez que haya estado con nosotros por un mes y haya pagado su primera factura, puede crear una solicitud de límite para desbloquear estos puertos para un caso de uso válido. En su solicitud, puede contarnos detalles sobre su caso de uso. Tomamos decisiones caso por caso.

Como alternativa, también puede usar el puerto 587 para enviar correos electrónicos a través de servicios externos de entrega de correo. El puerto 587 no está bloqueado y se puede usar sin enviar una solicitud de límite.

3 Me gusta

Esa es una solución común y una razón por la que un servidor de correo autoalojado es casi imposible.

Pero el OP tuvo problemas con los puertos 80 y 443. ¿O me perdí algo?

3 Me gusta

Tienes razón. Mezclé dos problemas diferentes. Disculpas por la confusión.

2 Me gusta

He buscado en el foro para ver si alguien más se había encontrado con un problema similar y he encontrado esto, aunque lamentablemente no es una “solución real” como tal:

¿Podría ser una opción para ti configurar app.yml manualmente?

1 me gusta

Todavía estoy confundido, pero en Digital Ocean se debe configurar un firewall. Una instalación limpia no tiene ningún puerto abierto (excepto SSH, pero eso es otra cosa). No sé cómo funciona Hetzner. Y si el VPS está detrás de puertos cerrados, no importa lo que tengamos en app.yml.

¿O me estoy perdiendo algo de nuevo?

La configuración manual de app.yml es la solución al problema para mí también. ¡Gracias!
También encontré este hilo, pero supongo que no lo leí con suficiente atención… :see_no_evil:

1 me gusta

Alojo tres foros en Hetzner y nunca me he encontrado con este problema :thinking:

¿Entonces Hetzner abrirá puertos para el servidor web cuando se inicie un VPS? ¿O instalan nginx o apache por defecto?

Eso es… extraño.

1 me gusta

Creo que sí. Cuando inicio un VPS (Ubuntu 20), nginx no está instalado por defecto: discourse-setup lo instala.
He instalado Discourse numerosas veces en VPS de Hetzner sin ningún problema durante años (la última vez fue en febrero).
Por eso me desconcierta este tema.


edit: por alguna razón mi cerebro mezcló docker y nginx :sweat_smile:

1 me gusta

Eso no es del todo cierto. No instala nginx en el sistema operativo, sino que el contenedor de Docker de Discourse lo incluye.

Esa no es mi experiencia. La versión LTS por defecto de Ubuntu no incluye un firewall y todos los puertos están abiertos.

1 me gusta

Hay dos opciones: usar el firewall de Digital Ocean o instalar UFW (o similar) después de la creación del VPS. Ninguna de mis instalaciones utiliza el suyo, por lo que todos los puertos están cerrados hasta que los abro desde UFW.

De todos modos, ahora sabemos cuándo, dónde y cómo se instala Nginx. Cada día algo nuevo (cuando tú/yo/alguien no entiende cómo funciona Docker :smile: )

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.