13个版本
0.1.19 | 2021年7月19日 |
---|---|
0.1.18 | 2021年5月16日 |
0.1.15 | 2021年4月18日 |
0.1.13 | 2020年9月17日 |
0.1.6 | 2020年5月27日 |
#467 in HTTP服务器
110KB
1K SLoC
隧道应用
隧道应用
允许您通过公共URL将本地运行的Web服务器暴露出来。用Rust编写。完全使用 async-io 和 tokio 构建。
安装
Brew (macOS)
brew install agrinman/tap/tunnelto
Cargo
cargo install tunnelto
到处
或者 在此处下载您目标操作系统的版本: 隧道应用/releases
使用方法
快速入门
tunnelto --port 8000
上述命令打开一个隧道,并将流量转发到 localhost:8000
。
更多选项
tunnelto 0.1.14
USAGE:
tunnelto [FLAGS] [OPTIONS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
-v, --verbose A level of verbosity, and can be used multiple times
OPTIONS:
--dashboard-address <dashboard-address> Sets the address of the local introspection dashboard
-k, --key <key> Sets an API authentication key to use for this tunnel
--host <local-host>
Sets the HOST (i.e. localhost) to forward incoming tunnel traffic to [default: localhost]
-p, --port <port>
Sets the port to forward incoming tunnel traffic to on the target host
--scheme <scheme>
Sets the SCHEME (i.e. http or https) to forward incoming tunnel traffic to [default: http]
-s, --subdomain <sub-domain> Specify a sub-domain for this tunnel
SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
set-auth Store the API Authentication key
自己托管
- 为musl目标编译服务器。请参阅
musl_build.sh
了解使用Docker轻松完成此操作的技巧! - 请参阅
Dockerfile
了解基于alpine的简单镜像,该镜像运行服务器二进制文件。 - 将镜像部署到您想要的位置。
本地测试
# Run the Server: xpects TCP traffic on 8080 and control websockets on 5000
ALLOWED_HOSTS="localhost" cargo run --bin tunnelto_server
# Run a local tunnelto client talking to your local tunnelto_server
CTRL_HOST="localhost" CTRL_PORT=5000 CTRL_TLS_OFF=1 cargo run --bin tunnelto -- -p 8000
# Test it out!
# Remember 8080 is our local tunnelto TCP server
curl -H '<subdomain>.localhost' "https://127.0.0.1:8080/some_path?with=somequery"
请参阅 tunnelto_server/src/config.rs
了解配置的环境变量。
自托管时的注意事项
该实现不支持多个运行的服务器(即集中式协调)。因此,如果您部署多个服务器实例,只有当客户端连接到与远程TCP流相同的实例时,它才会工作。
我们托管的 版本 是一个在出色的 fly.io 服务上运行的正确分布式系统。简而言之,fly.io 通过他们的 私有网络 功能使这变得非常简单。请参阅 tunnelto_server/src/network/mod.rs
了解我们Gossip机制的实施细节。
依赖项
~32–47MB
~872K SLoC