Hope this helps others!

Background: Have an old chromebook (ARM -- making it harder to install Linux directly on it) that I want to run Home Assistant (HA) on. Have HA running great in Crostini. Unfortunately, I had been unable to expose HA to external devices (computers) on the same WAN. Spent hours trying to debug this.

Solution:

Learned two valuable lessons.

  1. I was testing accessing on the chromebook itself. So 192.168.0.164:8123 wasn't never working (I had assumed it wouldn't work for any other device on the network). For whatever reason (I'm guessing security) one cannot access it's own IP and have it forwarded. Have to use another physical device (that IP worked on external devices)
  2. Have to re-enable the ports after EVERY Crostini restart.
  • This isn't a great use case for Crostini. If you access the device from the LAN, network traffic is directed towards the browser instead of the virtual machine. Also, it's firewalled but default. This makes perfect sense for a device such as a Chromebook. But it means this doesn't make for a good server. 

    If you absolutely insist on running a network wide server on a Chromebook, then you need to establish some sort of reverse tunnel and/or proxy that connects to another device on your LAN or even on the Internet.

    In a pinch and if you don't have any other suitable hardware, a free Cloudflare tunnel would do the trick. But realistically, I'd instead recommend using different hardware. Even a clean RPi would be easier to configure for this application