Skip to content

Latest commit

 

History

History
343 lines (238 loc) · 12.3 KB

README.cn.md

File metadata and controls

343 lines (238 loc) · 12.3 KB
tcping

TCPING

Go Report Card CodeFactor Go Docker container build GitHub go.mod Go version Go project version Download Docker Pulls

这是一个跨平台的 TCP 端口 ping 程序,灵感来自 Linux 的 ping 工具。此程序将向您指定的 IP 地址主机名 发送 TCP 探测,并打印结果。它支持 IPv4IPv6

TCPING成功不成功 的探测使用不同的 TCP 序列号,因此当您查看结果并发现探测失败时,可以很容易地推断出到该点为止的总丢包数。

以下是 TCPING 的一些功能:

  • ICMP 被阻止的环境中替代 ping
  • 监控您的网络连接。
  • 确定丢包率。
  • 分析网络延迟。
  • 计算网络探测的 最小平均最大 延迟。
  • 按下 Enter 键即可打印连接统计信息,而无需停止程序。
  • 使用 -r 标志在预定次数的探测失败后重试主机名解析。适用于测试您的 DNS 负载均衡或全局服务器负载均衡器 (GSLB)
  • 强制使用 IPv4IPv6
  • 显示遇到的最长 停机时间正常运行时间 持续时间和时间。
  • 监控和审计您的对等网络 (SLA)。
  • 在进行维护时计算网络的总正常运行时间或停机时间。

目录


演示

基本用法

tcping


重试主机名查找 (-r)

tcping resolve example


JSON 格式输出 (-j --pretty)

tcping json example


下载

下载完成后,请转到用法部分。

或者,您可以:

  • 使用 Docker 镜像:

    docker pull pouriyajamshidi/tcping:latest

    镜像也可以在 GitHub 容器注册表中找到:

    docker pull ghcr.io/pouriyajamshidi/tcping:latest
  • 使用 go install 安装:

    Go 版本最低要求为 1.23.1

    go install github.com/pouriyajamshidi/tcping/v2@latest
  • 使用 brew 安装:

    brew install pouriyajamshidi/tap/tcping
  • x tcping

    在 x-cmd 中,无需安装即可直接使用 tcping 命令

    x tcping bing.com 80

    或者,你也可以选择将 tcping 安装到用户空间,不需 root 特权,亦不影响全局依赖:

    x env use tcping
    tcping bing.com 80
  • 或者通过在 tcping 目录中运行 make 命令来自行编译代码:

    make build

    这将在 executables 文件夹中为您提供一个压缩文件,其中包含所有受支持操作系统的可执行文件。


用法

请按照您操作系统的说明进行操作:

另请查看此处提供的可用标志

Linux - Debian 和 Ubuntu

Debian 及其衍生版本(如 Ubuntu)上,下载 .deb 软件包:

wget https://github.com/pouriyajamshidi/tcping/releases/latest/download/tcping_amd64.deb -O /tmp/tcping.deb

并安装它:

sudo apt install -y /tmp/tcping.deb

如果您使用的是其他 Linux 发行版,请继续阅读本节

Linux、BSD 和 mac OS

解压缩文件:

tar -xvf tcping_Linux.tar.gz
#
# 或在 Mac OS 上
#
tar -xvf tcping_MacOS.tar.gz
#
# 在 Mac OS ARM 上
#
tar -xvf tcping_MacOS_ARM.tar.gz
#
# 在 BSD 上
#
tar -xvf tcping_FreeBSD.tar.gz

设置文件为可执行:

chmod +x tcping

将可执行文件复制到您的系统 PATH 中,例如 /usr/local/bin/

sudo cp tcping /usr/local/bin/

运行:

tcping www.example.com 443
#
tcping 10.10.10.1 22

Windows

我们建议使用 Windows 终端 以获得最佳体验和正确的颜色显示。

tcping.exe 复制到您的系统 PATH 中,例如 C:\Windows\System32,然后像这样运行它:

tcping www.example.com 443
# 或提供 -r 标志以
# 在一定次数的失败后启用名称解析重试:
tcping www.example.com 443 -r 10

TCPING 可能会被 Windows Defender 或某些反恶意软件错误地标记。这在 Go 程序中很常见。请查看 Go 的官方文档 此处

Docker

Docker 镜像可以像这样使用:

# 使用 Docker Hub
docker run -it pouriyajamshidi/tcping:latest example.com 443

# 使用 GitHub 容器注册表:
docker run -it ghcr.io/pouriyajamshidi/tcping:latest example.com 443

标志

以下标志可用于控制应用程序的行为:

标志 描述
-h 显示帮助
-4 仅使用 IPv4 地址
-6 仅使用 IPv6 地址
-r <n> 次探测失败后重试解析目标主机名。例如,-r 10 表示在 10 次探测失败后重试
-c <n> 次探测后停止,无论结果如何。默认情况下,不应用限制
-t 等待响应的时间(以秒为单位)。允许使用实数。0 表示无限超时
-D 在探测输出中显示日期和时间。类似于 Linux 的 ping 工具,但更易于阅读
-i 发送探测之间的间隔
-I 用于发送探测的接口名称
-j JSON 格式输出
--pretty 美化 JSON 输出
--no-color 输出不带颜色 (未发布 - 该功能将在 2.7.0 版本发布)
--db 用于存储 tcping 输出到 sqlite 数据库的路径和文件名。例如 --db /tmp/tcping.db
-v 打印版本
-u 检查更新
--show-failures-only 仅显示探测失败,并省略打印探测成功消息
--show-local_address 显示探测所用的本地IP地址及端口 (未发布 - 该功能将在 2.7.0 版本发布)

如果未指定 -4-6 标志,tcping 将根据 DNS 查找随机选择一个 IP 地址。


提示

  • 在程序运行时按 Enter 键,可以在不终止程序的情况下查看所有探测的摘要,如演示部分所示。

检查更新

TCPING 正在不断改进,添加了许多新功能并修复了错误。请务必查看更新的版本。

tcping -u

贡献

欢迎提交拉取请求以解决错误、添加新功能以及帮助解决可以在此处找到的未解决问题

  1. 选择您觉得可以处理的任何问题。
  2. Fork 存储库。
  3. 创建一个分支。
  4. 提交您的工作。
  5. 如果可能,请添加测试。
  6. 运行测试 go testmake test 并确保它们成功。
  7. 创建一个拉取请求

当前未解决问题的数量:GitHub issues

请确保您的拉取请求仅涵盖一个特定的问题/功能,并且不处理两个或多个问题。这使我们更容易检查您的拉取请求,并有助于保持干净的 git 历史记录。

功能请求和问题

如果您需要新功能或发现错误,请随时打开拉取请求或提交问题。

对于较大的功能/贡献,请确保在开始工作之前先在 issue 上进行沟通。

测试平台

Windows、Linux 和 macOS。

帮助项目

如果 tcping 对您有用,请考虑给它一个 ⭐ 以扩大其影响力并帮助其他人也从中受益。

此外,您可以使用以下链接支持该项目。

请我喝杯咖啡:"Buy Me A Coffee"

GitHub 赞助:sponsor

赞助总数:GitHub Sponsor

许可证

License: MIT