bore/README.md

47 lines
1.9 KiB
Markdown
Raw Normal View History

2022-04-04 01:58:51 +02:00
# bore
[![Build status](https://github.com/ekzhang/bore/workflows/ci/badge.svg)](https://github.com/ekzhang/bore/actions)
[![Crates.io](https://img.shields.io/crates/v/bore-cli.svg)](https://crates.io/crates/bore-cli)
A modern, simple TCP tunnel in Rust that exposes local ports to a remote server, bypassing standard NAT connection firewalls. **That's all it does: no more, and no less.**
2022-04-04 01:58:51 +02:00
```shell
# Installation (requires Rust)
2022-04-04 01:58:51 +02:00
cargo install bore-cli
# On your local machine
bore local 8000 --to bore.pub
2022-04-04 01:58:51 +02:00
```
This will expose your local port at `localhost:8000` to the public internet at `bore.pub:<PORT>`, where the port number is assigned randomly.
2022-04-04 01:58:51 +02:00
Like [localtunnel](https://github.com/localtunnel/localtunnel) and [ngrok](https://ngrok.io/), except `bore` is intended to be a highly efficient, unopinionated tool for forwarding TCP traffic that is simple to install and easy to self-host, with no frills attached.
2022-04-04 01:58:51 +02:00
## Detailed Usage
This section describes detailed usage for the `bore` CLI command.
### Local Forwarding
2022-04-04 01:58:51 +02:00
TODO
### Self-Hosting
As mentioned in the startup instructions, there is an public instance of the `bore` server running at `bore.pub`. However, if you want to self-host `bore` on your own network, you can do so with the following command:
```shell
bore server
```
That's all it takes! After the server starts running at a given address, you can then update the `bore local` command with option `--to <ADDRESS>` to forward a local port to this remote server.
2022-04-04 01:58:51 +02:00
## Protocol
There is an implicit _control port_ at `7835`, used for creating new connections on demand. This can be configured in the command-line options.
## Acknowledgements
Created by Eric Zhang ([@ekzhang1](https://twitter.com/ekzhang1)). Licensed under the [MIT license](LICENSE).
The author would like to thank the contributors and maintainers of the [Tokio](https://tokio.rs/) project for making it possible to write ergonomic and efficient network services in Rust.