Tailscale's new aperture also solves this elegantly: https://aperture.tailscale.com/