Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close
YalerTunnel - generic tunneling via the Yaler relay infrastructure

Copyright (c) 2011, Yaler GmbH, Switzerland. All rights reserved.

YalerTunnel makes any service (e.g. a Web server or a SSH daemon) accessible
from the Internet, no matter if the service is behind a firewall, a NAT, or a
mobile network gateway.

If the service is based on HTTP, YalerTunnel is started in server mode,
otherwise in proxy mode. The client either knows HTTP (e.g. a Web browser),
supports HTTP proxies (e.g. PuTTY), or uses a second instance of YalerTunnel
started in client mode to access the tunneled service.


To build the program make sure that you have JDK6 (or later) installed and that
your PATH environment variable includes the JDK's bin directory. Then type:

    javac YalerTunnel.java


Then create a free Yaler account at http://yaler.net/ to get a unique relay
domain for the Yaler instance hosted at try.yaler.net.


Example 1) Running a Web server behind a firewall

Start a Web server listening on port 80 and YalerTunnel in server mode:

    java YalerTunnel server localhost:80 try.yaler.net:80 <relay domain>

E.g., for the relay domain gsiot-ffmq-ttd5 type

    java YalerTunnel server localhost:80 try.yaler.net:80 gsiot-ffmq-ttd5

On the client, open a Web browser and access

    http://try.yaler.net/<relay domain>

In our example, this would be

    http://try.yaler.net/gsiot-ffmq-ttd5


Example 2) Tunneling SSH

Start a SSH daemon listening on port 22 and YalerTunnel in proxy mode:

    java YalerTunnel proxy localhost:22 try.yaler.net:80 <relay domain>

E.g., for the relay domain gsiot-ffmq-ttd5 type

    java YalerTunnel proxy localhost:22 try.yaler.net:80 gsiot-ffmq-ttd5


If your SSH client supports HTTP proxies, configure it to connect via

    http://try.yaler.net/<relay domain>

In our example, this would be

    http://try.yaler.net/gsiot-ffmq-ttd5


Otherwise, start YalerTunnel in client mode

    java YalerTunnel client localhost:10022 try.yaler.net:80 <relay domain>

In our example, this would be

    java YalerTunnel client localhost:10022 try.yaler.net:80 gsiot-ffmq-ttd5

and connect the SSH client to localhost:10022.


Thanks, and please join us at http://yaler.org/

Marc (frei@yaler.net), Thomas (tamberg@yaler.net)

Recent activity

yaler

yaler uploaded file YalerTunnel.src.zip to yalertunnel

File has been deleted.

Marc Frei

Commits by Marc Frei were pushed to yaler/YalerTunnel

ea5ad1a - YalerTunnel 1.1 - Improved error handling - Support for HTTP redirection - Optional argument "capacity" to limit the number of open connections - New license ...
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.