-
-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/angelobreuer/localtunnel-cl…
…ient into main
- Loading branch information
Showing
1 changed file
with
72 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# localtunnel-client | ||
|
||
.NET implementation of a tunnel client for [localtunnel.me](localtunnel.me). | ||
|
||
## Getting Started | ||
|
||
Let's get started with starting up a simple tunnel. In the following command, we open a proxy tunnel with a custom subdomain name (my-subdomain) and proxy requests to `example.com` (HTTPS). | ||
|
||
``` | ||
localtunnel --subdomain my-subdomain --host example.com --port 443 https | ||
``` | ||
|
||
> ![](https://i.imgur.com/cX476cI.png) | ||
## Features | ||
|
||
#### Open Webbrowser | ||
|
||
If you are developing a web application or something else, you can put the --browser option onto | ||
your command and the client will open your browser with the subdomain. | ||
|
||
#### Dashboard | ||
|
||
The client records all recent connections made and shows where they pointed at. You can also disable | ||
the dashboard if needed. | ||
|
||
#### HTTP header manipulation | ||
|
||
The client fetches HTTP headers during the request and transforms the Host header to point onto the target domain | ||
to emulate a real proxy. If you want to disable this to make a passthrough proxy, specify the `--passthrough` option. | ||
|
||
## CLI | ||
|
||
You can change the options as you need. Here is a list of options the client offers: | ||
|
||
``` | ||
Usage: | ||
Localtunnel [options] [command] | ||
Options: | ||
-v, --verbose Enables detailed verbose output. | ||
-b, --browser If specified, opens the webpage in the browser. | ||
--no-dashboard If specified, disables the dashboard. | ||
-c, --max-connections <max-connections> The number of maximum allowed connections. [default: 10] | ||
-d, --subdomain <subdomain> The name of the subdomain to use, if not specified a random subdomain | ||
name is used. | ||
-s, --server <server> The hostname of the server to use. [default: https://localtunnel.me/] | ||
-h, --host <host> The host to proxy requests to. [default: localhost] | ||
-p, --port <port> The port to proxy requests to. [default: 80] | ||
--receive-buffer-size <receive-buffer-size> The minimum number of bytes to use for the receive buffer. [default: | ||
65536] | ||
--passthrough If specified, the request is proxied as received and no HTTP headers | ||
are reinterpreted. [default: False] | ||
--version Show version information | ||
-?, -h, --help Show help and usage information | ||
Commands: | ||
http Starts a tunnel that exposes a HTTP server. | ||
https Starts a tunnel that exposes a HTTPS server. | ||
``` | ||
|
||
### Additional notes | ||
|
||
If you use a self-signed certificate for SSL, you can pass the `--allow-untrusted-certificates` option **AFTER** the `https` verb to bypass the SSL verification. | ||
|
||
## Motivation | ||
|
||
I have created this implementation because I would not say I liked localtunnel's implementation: | ||
- It does not offer an option to open the browser. | ||
- It is no longer actively maintained. | ||
- It requires NodeJS to run. You can compile this client to a single file executable. | ||
- It needs a HUGE amount of resources idle that are unnecessary. |