Skip to content

xlc520/tcping

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

829 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tcping

TCPING

对原项目进行重构,增加i18n多语言,精简输出结果,增加详细输出标志

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)。
  • 在进行维护时计算网络的总正常运行时间或停机时间。
  • 提供彩色、纯文本、JSON、CSV 和 SQLite3 多种输出格式。

目录


演示

基本用法

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.24.10

    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

您还可以使用 主机:端口 格式:

tcping www.example.com:443
# 或使用 IP 地址
tcping 192.168.1.1:80
# IPv6 地址(使用引号防止 shell 解析)
tcping '[2001:db8::1]:443'

Windows

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

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

tcping www.example.com 443
# 或使用 主机:端口 格式
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
# 或使用 主机:端口 格式
docker run -it pouriyajamshidi/tcping:latest example.com:443

# 使用 GitHub 容器注册表:
docker run -it ghcr.io/pouriyajamshidi/tcping:latest example.com 443
# 或使用 主机:端口 格式
docker run -it ghcr.io/pouriyajamshidi/tcping:latest example.com:443

标志

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

标志 描述
-h 显示帮助
-4 仅使用 IPv4 地址
-6 仅使用 IPv6 地址
-r <n> 次探测失败后重试解析目标主机名。例如,-r 10 表示在 10 次探测失败后重试
-c <n> 次探测后停止,无论结果如何。默认为 4 次。设为 0 表示无限探测
-t 等待响应的时间(以秒为单位)。允许使用实数。0 表示无限超时
-D 在探测输出中显示日期和时间。类似于 Linux 的 ping 工具,但更易于阅读
-i 发送探测之间的间隔
-I 用于发送探测的接口名称
--no-color 输出不带颜色
--csv 以 CSV 格式输出到指定的文件路径
-j JSON 格式输出
--pretty 美化 JSON 输出
--db 用于存储 tcping 输出到 sqlite 数据库的路径和文件名。例如 --db /tmp/tcping.db
-v 打印版本
-u 检查更新
--show-failures-only 仅显示探测失败,并省略打印探测成功消息
--show-source-address 显示探测所用的来源IP地址及端口
-V / --verbose 显示详细统计信息(最后探测时间、在线/离线时长、最长连续时段、解析重试次数)
-L / --lang 设置显示语言。支持:en(英文)、zh-CN(简体中文)。默认自动检测系统语言

如果未指定 -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

About

跨平台的 TCP 端口 ping 程序 Ping TCP ports using tcping. Inspired by Linux's ping utility. Written in Go

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 94.8%
  • Makefile 4.8%
  • Dockerfile 0.4%