There are many threads on this forum with people having the same or similar issues. I do agree the issue is NAT and some people have had success enabling NAT hairpinning or loopback. I am behind a double NAT (on purpose) with a phone ATA sitting out in front of my network so my problems are worse than others.
I have gotten my echo to play music as of this morning but unfortunately I’ve changed many things so I can’t pinpoint exactly what part was critical for me to get it working. I’ll detail what I’ve done though.
There was another thread I saw where someone set secure connections to “Required” under Server network settings and also disabled http pipelining. I did the same and this was the last thing I changed before it started working.
I have remote access enabled on a different port and this may have been part of the problem which I’ll detail later. I have a custom certificate enabled because I was trying to get around my double-NAT problems. The custom cert is from let’s encrypt with my own custom subdomain. I have my custom subdomain listed on the custom server access URL with the public facing remote port number. (https://custom.subdomain.org:32444)
Now I don’t know if this actually worked but I wanted to trick my local plex server to resolve my custom subdomain to my local ip address and not the real public address so I added custom.subdomain.org to my local dnsmasq server and made it resolve to my local ip address.
Now the last part is since I published the different remote port number I thought if my local plex server tries to resolve that it will fail since dnsmasq will work and it will resolve to my local ip address but Plex isn’t listening to port 32444. Therefore I had to add 2 new iptables rules to redirect port 32444 to port 32400 (this is what the router also does for the outside public traffic).
This is way more than anyone should have to do and many won’t have access to these tools like I do on a Linux box. I hope at least the thought process will help if it’s even valid. The last part is I also read just to wait a while and try again the next morning. This is what I did and it worked this morning.