mitotic / graphterm

A Graphical Terminal Interface that extends xterm by adding GUI-like features and session sharing
http://code.mindmeldr.com/graphterm
Other
150 stars 16 forks source link

Local Tunnel Integration #3

Open jcrubino opened 12 years ago

jcrubino commented 12 years ago

Great Project I think integration with Jeff Lindsay's localtunnel project would benefit both projects. It allows server forwarding from behind NATs.

Need to work out web sockets via localtunnel. ref: http://progrium.com/localtunnel/

mitotic commented 12 years ago

Thanks for your feedback! I checked out localtunnel. It seems like an useful service, and could potentially be used with GraphTerm when it supports web sockets. (There is no way GraphTerm would work without web socket support.)

You can already achieve some of convenience provided by localtunnel by running the GraphTerm server in an Amazon Web Services cloud instance. The ec2launch command bundled with GraphTerm will launch an EC2 instance and install GraphTerm automatically. Any GraphTerm host on your local machine can connect to the GraphTerm server and be publicly visible, even if behind NATs. That's because the localhost initiates the outbound connection.

The one disadvantage is that you end up with a rather long default domain name associated with the cloud instance, like "ec2-23-20-243-44.compute-1.amazonaws.com". If you have already setup the Amazon Route 53 DNS service using your own domain, then the ec2launch script can automatically create a simple subdomain for you, e.g., "gterm.example.com". This how I actually test GraphTerm before each release, by creating several cloud instances that connect to a publicly accessible GraphTerm server. This allows me to test a pristine install of GraphTerm on a brand new ubuntu distribution.

Since this requires use of the Amazon EC2 service, this is not free. But it is quite cheap for short-term testing; a micro-instance only costs 2 cents per hour! Although it requires a bit more set-up, the advantage of this approach as compared to localtunnel is that it is completely under your control, and also secure (to the extent that you trust Amazon Web Services!)

I'll try to write up a tutorial on this when I get the time.

jcrubino commented 12 years ago

I am willing to patch local tunnel but will need some time to bring myself up to speed on both packages.

mitotic commented 12 years ago

Sounds good! Let me know if there are any issues that need fixing on the GraphTerm side.

Since localtunnel.com is a free public service, the person(s) running it must be willing to run the patched version and be willing to continue to pay for the data bandwidth costs if many people start using it. (GraphTerm transmits graphics via the tunnel and that can be quite bandwidth intensive.)

jcrubino commented 12 years ago

I had some brief informal contact with the developer and he sounded interested in local tunnel development but focused on other projects. My initial impetus was for a ssh connection via localtunnel, graphterm looks like a great alternative route for implementation.

Pythnist commented 11 years ago

i just installed localtunnel but it expires after short time any solution for this??

mitotic commented 11 years ago

One option is to use an Amazon AWS cloud mico-instance to provide you with a public IP address. It is not free, but it is very cheap, about 0.02 US dollars per hour. (You can actually get 750 free hours per month for the first year, if you sign up for Amazon AWS.) The ec2launch command bundled with graphterm will launch an Amazon cloud instance, with gtermserver installed, for you, if have an AWS account set up. You can then run gtermhost on your local computers to connect to the cloud instance.

jamesokbo commented 8 years ago

Was there any progress made patching localtunnel so that it would allow websocket connections @jcrubino? In my humble opinion, it would be the "cleanest" way to establish a bidirectional connection between local devices :)