FLY_PUBLIC_IP yes I meant to use all-caps

What exactly is the value in this environment variable? It appears to be the source IPv6 address of a given instance, if it makes outbound connections. But does it support inbound traffic?

To go further, how would an instance know what its public IPv4 and public IPv6 addresses are that come via the Fly proxy? These are different again (and even more public).

The proxy IPs can be retrieved with flyctl ips list. They’re not available in the VM environment. As mentioned in the other post, it may be possible to take direct incoming traffic on the IpV6 public address.

Thanks Joshua. I assume that binding to the anyaddr isn’t sufficient to be visible from the public IPv6 address. Do I bind specifically to the public IP address to be publicly visible? Is there any way to receive traffic over IPv4, even if it’s to an IPv6 address? The protocol I’m using discriminates based on which protocol is used.

Binding to fly-global-services is required to make UDP work. TCP should work with that as well. You can’t receive IPv4 traffic without NAT through the proxy. Does this help?

As far as I can tell, binding to fly-global-services only works for IPv4. It doesn’t expose my VM directly.

I’ve tried binding directly to the FLY_PUBLIC_IP (the IPv6 one). It’s not accessible from an external location.