1个不稳定版本
0.1.0 | 2023年6月7日 |
---|
在身份验证中排名第1073
54KB
990 行
webauthn-rs cable-tunnel-server-backend
此二进制文件提供了一个caBLE隧道服务器,仅供非生产用途。
backend
可以运行在两种配置下
-
单任务配置,直接处理请求,没有前端。
在此配置中,caBLE 路由ID被忽略,并假定所有传入请求都可以由单个运行任务处理。
-
多任务配置,具有许多前端任务。
在此配置中,后端假定它前面有前端任务来处理caBLE路由ID。然而,前端尚未完全实现。
backend
是无状态的,无法自行与其他任务通信。每个隧道存在于一个(且仅有一个)backend
任务中,且backend
任务永远不会处理caBLE 路由ID。
构建
您可以使用Cargo构建backend
cargo build
这将输出一个二进制文件到./target/debug/cable-tunnel-server-backend
。
您还可以通过Cargo运行服务器
cargo run -- --help
服务器配置
服务器通过命令行标志进行配置,可以通过运行服务器并使用--help
来查看。
要在http://127.0.0.1:8080运行服务器(用于与使用cable-override-tunnel
功能构建的webauthn-authenticator-rs
进行测试)
./cable-tunnel-server-backend \
--bind-address 127.0.0.1:8080 \
--insecure-http-server
以HTTPS和严格Origin
头部检查运行服务器
./cable-tunnel-server-backend \
--bind-address 192.0.2.1:443 \
--tls-public-key /etc/ssl/certs/cable.example.com.pem \
--tls-private-key /etc/ssl/certs/cable.example.com.key \
--origin cable.example.com
重要: caBLE有一个推导隧道服务器域名的算法——您不能将服务托管在您选择的任意域名上。
运行
webauthn-authenticator-rs
'cable_domain
示例 以在命令行中推导主机名。
日志记录
默认情况下,服务器以 info
日志级别运行。这可以通过使用 RUST_LOG
环境变量来更改,使用 tracing
crate 中的可用日志级别。
服务器在每个级别都会记录以下内容,以及上述级别的所有消息
-
error
:TLS 握手错误、TCP 连接错误、不正确或未知的 HTTP 请求 -
warn
:关于使用未加密 HTTP 的警告 -
info
:(默认)启动消息、HTTP 连接生命周期、HTTP 请求日志、WebSocket 隧道生命周期 -
debug
:无 -
trace
:添加完整的传入 HTTP 请求、WebSocket 隧道消息
监控
服务器在 /debug
处导出一些基本指标
-
server_state.strong_count
:对Arc<ServerState>
的强引用数量 -
peer_map
:所有挂起的隧道的HashMap
- 其中认证器已连接,但发起者尚未连接。-
peer_map.capacity
:挂起隧道HashMap
的容量 -
peer_map.len
:挂起隧道的数量
-
依赖
~11–24MB
~363K SLoC