My server is in my school's NAT and my desktop computer is in my home NAT. I want to SSH to my server from home. I normally used school's VPN, but recently for some reason I can't. So I'm looking for a NAT hole punching approach.
My idea is this. Run a STUN client in my server, and publish the NATed public ip/port some where (Well, if it doesn't change, I can just write them down when I'm in school). Then I should be able to send and receive UDP packets between my desktop and server. What's left to do is to tunnel TCP through UDP.
Is there any existing tool for this? Otherwise I'd like to implement one. There is a project udptunnel (http://code.google.com/p/udptunnel/), which does this except the STUN part.