Würde generell nie empfehlen die Standardports 80 oder 443 in öffentlichen Netzen zu verwenden. Auch 8123 vom Homeassistant ist bekannt und sollte m.E. gemieden werden. Jederzeit kann der externe Port ein anderer sein als der Interne!
Edit: @frank-ahrens hat es perfekt zusammengefasst! war zu langsam…
Wenn man nicht einmal die Standardports für HTTP und HTTPS öffnen möchte (was ja jeder Webserver macht und davon gibt es im Web so einige), dann kann man gleich komplett zumachen und sich mit VPN abquälen.
Dynamische Ports von 49152 bis 65535 sind für solche Zwecke vorgesehen und sind auch nicht belegt!
In der Regel sind Webserver abgesichert und die wenigsten bieten noch http an.
VPN mit Wireguard ist kinderleicht und ich würde niemals meinen Homeassistant über http freigeben.
Keine Sorge, würde auch nie etwas über plain HTTP nach außen freigeben.
Das geht bei mir alles über HTTPS, und der Reverse Proxy (nginx Proxy Manager) regelt die Datenpakete. Wer die genaue URL nicht kennt, kommt nicht weiter und bleibt auf einer 404-Seite hängen. Portscans sind also sinnlos, der HA würde nicht ins Netz gehen, weil er so gut versteckt ist.
Und den Port 80 muss ich weiterleiten, damit das Let‘s Encrypt Zertifikat automatisch verlängert wird.
P.S. VPN ist in meinen Augen eine umständliche Lösung, wenn die HA App kontinuierlich den Standort des Smartphones melden soll oder wenn man mal die Seite auf einem eingeschränkten Webbrowser öffnen möchte. (Im Auto habe ich einen recht guten Browser, aber nen VPN Client bekomme ich da nicht installiert).
P.P.S. Natürlich habe ich auch nen VPN aktiv, wenn man mal im Notfall auf die Fritzbox muss oder in Zigbee2MQTT etc.
Also theoretisch funktioniert es wenn ich das Video von Simon richtig deute, da ich nun über https und nicht mehr über http in HA bin (siehe Bild)
Ich wollte das nun übers Handy testen aber dort bekomme ich nur eine Verbindung zu HA wenn ich in Netzwerk bin. Sobald ich auf mobile Daten umstelle ist die Verbindung weg.
Nur warum?
Ja, hier muss bei extern und gerne, wie im Video von @simon42 beschrieben, auch bei intern die Fernzugriffsadresse (bei mir DuckDNS) rein, dann klappt es.