Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Scenario:

The basic goal is to allow "generic" online guests to be able access to some server behind a NAT. For example say I'm hosting some images on a server behind a NAT, I don't have admin access to the NAT router, and uPnP is turned off. I would like to be able to send out an email to family and friends and they somehow access this image server without having to install any software first. Or I'd like to be able to run TightVNC and from any arbitrary internet connection be able to access the thing. I'm not worried about security at this point, just being able to connect at all.

Is there any way to accomplish something like this? Any projects that do this?

Related:

  • TURN servers/NAT traversal (maybe there's some project that supports browser NAT traversal?)
  • opera unite might actually be pretty close [4]
  • http://leadthinking.com/89-machsend-p2p-in-the-browser does kind of naive NAT traversal on the fly in the browser, fairly naive.
  • http://samy.pl/pwnat requires a local executable, not windows compat.
  • openvpn has no browser client apparently [2] [3]
  • Hamachi requires a local client, seemingly.
  • dropbox only shares files, same with windows live mesh (can be offline, though, which is good).
  • allpeers is files only/dead
  • 2peer requires a client plugin I believe, and is files only [?]
  • -

Anything else out there? None seem to open an arbitrary port.

[1] http://stackoverflow.com/questions/5683048/applet-unable-to-create-socket-connection-on-localhost

[2] http://openvpn.net/archive/openvpn-users/2005-05/msg00267.html

[3] http://osdir.com/ml/network.openvpn.user/2004-08/msg00017.html

[4] http://www.labnol.org/internet/turn-home-computer-into-web-server/9111 mentions a few others, as well.

share|improve this question

2 Answers 2

I'm presuming "generic" online guests refers to anonymous Web users, and "server" means a web server. A reverse proxy service^ or, as you've indicated above, TURN and STUN are the closest you could come to getting that traffic in. Reverse proxy won't work because the outside service must initiate connections inbound. I haven't read the protocol spec for TURN.

Probably the easiest thing to do is ask permission. If you are authorized to run the server, talk to the administrator of the router and see if they will agree to assign an external address and route outside traffic to your server.

share|improve this answer

opera unite "web proxy" module appears quite close. I think basically opera tries to open a local port using uPnP. If that works, then HTTP requests to http://computername.username.operaunite.com/something/ becomes redirects back to http://your-dynamic-ip-address:opened_port/something. If that fails then I think it proxies requests, as http requests (not SSL) through. Opera unite running locally (in your browser? weird) receives an incoming HTTP request, then passes it off to whatever app you have running. If it's the "web proxy" app, then that app forwards it on to some arbitrary local port. So I suppose you could setup a TCP over HTTP tunnel and be "good to go" in a limited way.

It's closed source and you have to leave an opera instance on, but opera does warn you when you try to close it and it is serving. Also lacks STUN/ICE NAT traversal at all and even though uPnP is enabled on my router doesn't seem to use it right, so it's basically like a free TURN server only, and located in Norway (but seems fast). Free is good. It also does easy setup and the DNS side for you, which is nice. So it'll be an extra hop through Norway but that might not be too slow, as it doesn't appear to be bandwidth limited like hamachi is. It doesn't feel totally secure, either. Leave a comment here if you'd like something more automated like an applet for TCP over HTTP to allow raw socket access more easily, and I'll do it.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.