No se puede acceder a Discourse después de cambiar el adaptador de red

Recientemente cambié la tarjeta de red y ahora Discourse no funciona. He intentado reconstruir Discourse, pero aún así no responde a las solicitudes HTTPS. Puedo ver que los procesos de Ruby están activos y en ejecución.

Creo que podría tener algo que ver con la dirección MAC. Después de reconstruir Discourse, veo esta línea:

> /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=5 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_HOSTNAME=XXX -e DISCOURSE_DEVELOPER_EMAILS=XXX -e DISCOURSE_SMTP_ADDRESS=XXX -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=XXX -e DISCOURSE_SMTP_PASSWORD=XXX -e LETSENCRYPT_ACCOUNT_EMAIL=XXX -e DISCOURSE_MAXMIND_LICENSE_KEY=XXX -h XXX-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log -**-mac-address 02:3b:06:XX:XX:XX** local_discourse/app /sbin/boot

Sin embargo, no hay ninguna adaptador con una dirección MAC que comience con 02:3b; veo tres adaptadores en el sistema: vethec9f10b que comienza con 6e:a2, ens160 que comienza con 00:0c y docker0 que comienza con 02:42:eb:XX:XX:XX.

Supongo que se trata de una dirección MAC antigua de antes de cambiar la tarjeta de red. Si es así, ¿cómo puedo indicarle a Discourse que utilice la dirección MAC correcta? Esto parece ser la dirección MAC del adaptador de red de Docker, pero parece haber cambiado.

Al usar Docker, tienes un adaptador virtual adicional que representa la dirección de tu servidor en el puente virtual docker0:

○ → ip addr show dev docker0
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:3a:ad:0b:94 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

Cualquier contenedor Docker en ejecución tendrá una dirección MAC en este puente virtual:

○ → docker run --rm --name example -it debian 
root@ba1b0e1446c8:/# 

(en otra ventana:)
○ → docker inspect example | jq '.[0].NetworkSettings.IPAddress'
"172.17.0.2"

○ → docker inspect example | jq '.[0].NetworkSettings.MacAddress'
"02:42:ac:11:00:02"

○ → ping -c 1 172.17.0.2 >/dev/null; arp 172.17.0.2
Address                  HWtype  HWaddress           Flags Mask            Iface
172.17.0.2               ether   02:42:ac:11:00:02   C                     docker0

Esto es completamente independiente de las interfaces de tu sistema. Esa dirección MAC debería aparecer en el puente docker0:

○ → brctl showmacs docker0
port no	mac addr		is local?	ageing timer
  1	02:42:ac:11:00:02	no		 187.24
…

¿Qué cambiaste exactamente cuando “cambiaste el adaptador de red”?

¿Sigue obteniendo una dirección IP y todo lo que debería? Es decir, ¿el funcionamiento normal de la red está operativo?

Ejecuta ip addr y asegúrate de que aún tenga la misma dirección a la que estás intentando acceder.

Quizás puedas pegar la salida aquí.

¿El cliente se conecta al socket pero no recibe ninguna respuesta?

¡Muchas gracias! Esa fue la pista que necesitaba. Cuando cambié el adaptador de red, la dirección IP estática de la máquina cambió a una dirección IP dinámica y, por lo tanto, no respondía a los clientes. Restablecí la dirección IP y comenzó a funcionar. Aparentemente, no tiene relación con la dirección MAC, sino con la dirección IP.