Give holepunch/keet a try. I'm still learning how to use it, but it should help. @TheGuySwann has gotten me interested in it. Great stuff keeps getting developed these days.