# bore 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.** ```shell # Installation (requires Rust) cargo install bore-cli # On your local machine bore local 8000 --to bore.pub ``` This will expose your local port at `localhost:8000` to the public internet at `bore.pub:`, where the port number is assigned randomly. 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. ## Detailed Usage This section describes detailed usage for the `bore` CLI command. ### Local Forwarding 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
` to forward a local port to this remote server. ## 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.