这是一个跨平台的 TCP
端口 ping 程序,灵感来自 Linux 的 ping 工具。此程序将向您指定的 IP 地址
或 主机名
发送 TCP
探测,并打印结果。它支持 IPv4
和 IPv6
。
TCPING 对 成功 和 不成功 的探测使用不同的 TCP 序列号
,因此当您查看结果并发现探测失败时,可以很容易地推断出到该点为止的总丢包数。
以下是 TCPING 的一些功能:
- 在
ICMP
被阻止的环境中替代ping
。 - 监控您的网络连接。
- 确定丢包率。
- 分析网络延迟。
- 计算网络探测的
最小
、平均
和最大
延迟。 - 按下
Enter
键即可打印连接统计信息,而无需停止程序。 - 使用
-r
标志在预定次数的探测失败后重试主机名解析。适用于测试您的DNS
负载均衡或全局服务器负载均衡器(GSLB)
。 - 强制使用
IPv4
或IPv6
。 - 显示遇到的最长
停机时间
和正常运行时间
持续时间和时间。 - 监控和审计您的对等网络 (SLA)。
- 在进行维护时计算网络的总正常运行时间或停机时间。
-
macOS - 也可通过
brew
获得 -
macOS M1 - ARM - 也可通过
brew
获得
下载完成后,请转到用法部分。
或者,您可以:
-
使用
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-cmd 中,无需安装即可直接使用 tcping 命令:
x tcping bing.com 80
或者,你也可以选择将 tcping 安装到用户空间,不需 root 特权,亦不影响全局依赖:
x env use tcping tcping bing.com 80
-
或者通过在
tcping
目录中运行make
命令来自行编译代码:make build
这将在
executables
文件夹中为您提供一个压缩文件,其中包含所有受支持操作系统的可执行文件。
请按照您操作系统的说明进行操作:
另请查看此处提供的可用标志。
在 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 发行版,请继续阅读本节。
解压缩文件:
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 终端 以获得最佳体验和正确的颜色显示。
将 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 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
欢迎提交拉取请求以解决错误、添加新功能以及帮助解决可以在此处找到的未解决问题
- 选择您觉得可以处理的任何问题。
- Fork 存储库。
- 创建一个分支。
- 提交您的工作。
- 如果可能,请添加测试。
- 运行测试
go test
或make test
并确保它们成功。 - 创建一个拉取请求
请确保您的拉取请求仅涵盖一个特定的问题/功能,并且不处理两个或多个问题。这使我们更容易检查您的拉取请求,并有助于保持干净的 git 历史记录。
如果您需要新功能或发现错误,请随时打开拉取请求或提交问题。
对于较大的功能/贡献,请确保在开始工作之前先在
issue
上进行沟通。
Windows、Linux 和 macOS。
如果 tcping 对您有用,请考虑给它一个 ⭐ 以扩大其影响力并帮助其他人也从中受益。
此外,您可以使用以下链接支持该项目。