#port #http #tcp-port #probe #tcp #http-request

app proby

检查特定端口上的主机是否可达,并在HTTP上返回结果

7个版本 (3个稳定版)

1.0.2 2020年8月10日
1.0.1 2020年7月8日
0.4.0 2020年1月25日
0.3.0 2020年1月24日
0.1.4 2018年6月7日

#826 in HTTP服务器

MIT许可证

26KB
193

proby

CI Docker Cloud Build Status AUR Crates.io license Lines of Code

检查特定端口上的主机是否可达,并在HTTP上返回结果

其预期用途是作为只能通过HTTP探测容器或应用程序健康状况的服务的网关服务器。哦,它只是一个在任何地方都能工作的单个二进制文件!

这是什么

这个工具是一个非常简单的Web服务器,它接受HTTP请求来检查它们是否可以在提供的端口上进行连接。如果端口可连接,它默认返回200 OK,如果不可连接则返回503 服务不可用

安装

只需从发行页面获取一个静态链接构建版本即可!

运行

要运行proby,只需调用它即可

proby

如果您不喜欢proby的默认界面和端口,您可以像这样进行更改

proby -i 127.0.0.1 -p 9000

用法

基本

这会使proby仅在本地回环接口的9000端口上监听。

检查example.com主机上端口1337是否可连接的示例请求

curl localhost:8080/example:1337
example:1337 is connectable

如果它可连接,则返回200,如果不可连接,则返回503。

当然,您也可以使用IPv4或IPv6

curl localhost:8080/8.8.8.8:1337
curl localhost:8080/2001:4860:4860::8888:1337

高级

如果您想自定义返回代码,可以通过设置请求参数goodbad来实现

curl localhost:8080/example.com:1337?good=201&bad=401

您还可以使用以下方式配置超时(以秒为单位)

curl localhost:8080/example.com:1337?timeout=2

默认超时为1秒。

CLI用法

proby 1.0.2
Sven-Hendrik Haase <svenstaro@gmail.com>
Check whether hosts are reachable on certain ports and return result on HTTP

USAGE:
    proby [FLAGS] [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -q, --quiet      Be quiet (log nothing)
    -V, --version    Prints version information
    -v, --verbose    Be verbose (log data of incoming and outgoing requests). If given twice it will also log the body
                     data

OPTIONS:
    -i, --interfaces <interfaces>...    Interface to bind to [default: 0.0.0.0]
    -p, --port <port>                   Port on which to listen [default: 8080]

构建

您需要一个最新稳定版本的Rust和Cargo。

然后只需输入

cargo build --release

构建完成后,二进制文件将出现在这里:target/release/proby

发布

这主要是我关于如何发布这个项目的笔记

  • cargorelease --dry-run
  • cargorelease
  • 发布将由GitHub Actions自动部署。
  • Docker镜像将由Docker Hub自动构建。
  • 更新AUR软件包。

依赖项

~25–36MB
~634K SLoC