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

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:


Then create a free Yaler account at to get a unique relay
domain for the Yaler instance hosted at

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 <relay domain>

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

    java YalerTunnel server localhost:80 gsiot-ffmq-ttd5

On the client, open a Web browser and access<relay domain>

In our example, this would be

Example 2) Tunneling SSH

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

    java YalerTunnel proxy localhost:22 <relay domain>

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

    java YalerTunnel proxy localhost:22 gsiot-ffmq-ttd5

If your SSH client supports HTTP proxies, configure it to connect via<relay domain>

In our example, this would be

Otherwise, start YalerTunnel in client mode

    java YalerTunnel client localhost:10022 <relay domain>

In our example, this would be

    java YalerTunnel client localhost:10022 gsiot-ffmq-ttd5

and connect the SSH client to localhost:10022.

Thanks, and please join us at

Marc (, Thomas (

Recent activity


yaler uploaded file 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
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.