Nach Änderung des Netzwerkkartentyps nicht mehr auf Discourse zugreifbar

Ich habe kürzlich den Netzwerkadapter gewechselt, und seitdem funktioniert Discourse nicht. Ich habe versucht, Discourse neu aufzubauen, aber es reagiert immer noch nicht auf HTTPS-Anfragen. Ich kann die Ruby-Prozesse jedoch als laufend sehen.

Ich vermute, dass dies mit der MAC-Adresse zu tun hat. Nach dem Neuaufbau von Discourse sehe ich folgende Zeile:

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

Es gibt jedoch keinen Adapter mit einer MAC-Adresse, die mit 02:3b beginnt. Im System sehe ich drei Adapter: vethec9f10b beginnend mit 6e:a2, ens160 beginnend mit 00:0c und docker0 beginnend mit 02:42:eb:XX:XX:XX.

Ich vermute, dass dies eine alte MAC-Adresse aus der Zeit vor dem Wechsel des Netzwerkadapters ist. Falls ja, wie kann ich Discourse anweisen, die korrekte MAC-Adresse zu verwenden? Dies sieht nach der MAC-Adresse des Docker-Netzwerkadapters aus, die sich jedoch anscheinend geändert hat.

Bei der Verwendung von Docker steht Ihnen ein zusätzlicher virtueller Adapter zur Verfügung, der die Adresse Ihres Servers auf der virtuellen Bridge docker0 repräsentiert:

○ → 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

Alle laufenden Docker-Container besitzen eine MAC-Adresse auf dieser virtuellen Bridge:

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

(in einem anderen Fenster:)
○ → 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

Dies ist vollständig getrennt von Ihren System-Schnittstellen. Diese MAC-Adresse sollte jedoch auf der docker0-Bridge erscheinen:

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

Was genau hast du geändert, als du den „Netzwerkadapter geändert“ hast?

Wird er immer noch mit einer IP-Adresse und allen erforderlichen Konfigurationen versehen? Ist also die normale Netzwerkfunktion intakt?

Führen Sie ip addr aus und stellen Sie sicher, dass es noch dieselbe Adresse hat, auf die Sie zugreifen möchten.

Vielleicht können Sie die Ausgabe hier einfügen.

Verbindet sich der Client mit dem Socket, erhält aber keine Antwort?

Vielen Dank! Das war genau der Hinweis, den ich brauchte. Als ich den Netzwerkadapter geändert habe, hat sich die statische IP-Adresse des Computers in eine dynamische IP-Adresse geändert, weshalb er auf die Clients nicht mehr reagierte. Ich habe die IP-Adresse zurückgesetzt, und es funktioniert wieder. Offenbar hat das nichts mit der MAC-Adresse zu tun, sondern mit der IP-Adresse.