tcping 与 udping 使用指南

本文适合需要测试服务器端口连通性的运维人员。你会学到:ping(ICMP)、tcping(TCP 端口连通性)和 udping(UDP 端口连通性)三种工具的安装与用法,以及用 socat 监听 UDP 端口配合测试的方法。

本指南介绍三种常用的网络连通性测试工具:pingtcpingudping,适用于常规 ICMP 测试、TCP 端口连通性测试、以及 UDP 端口连通性测试。

一、ICMP Ping(操作系统自带)

大多数操作系统都自带 ping 命令,用于测试目标主机是否可达。

ping example.com

二、TCPing(测试 TCP 连通性)

1. Linux 安装

# 从 GitHub 下载
wget https://github.com/cloverstd/tcping/releases/download/v0.1.1/tcping-linux-amd64-v0.1.1.tar.gz

## 国内镜像(更快)
wget https://mirror.ghproxy.com/https://github.com/cloverstd/tcping/releases/download/v0.1.1/tcping-linux-amd64-v0.1.1.tar.gz

## 解压并安装
tar -xzvf tcping-linux-amd64-v0.1.1.tar.gz
sudo install tcping /usr/local/bin

2. Windows 安装

  1. 打开 GitHub Release 页面:https://github.com/cloverstd/tcping/releases
  2. 下载带有 windows 的压缩包,解压获得 tcping.exe 文件
  3. 将其放入带有环境变量的目录(如 C:\Windows\System32
  4. 打开 PowerShell 或 CMD 测试命令

3. TCPing 用法示例

## 默认 TCP ping(端口 80)
tcping google.com

## 指定端口
tcping google.com 443

## HTTP 模式 ping(默认 GET 请求)
tcping -H google.com

## 指定 URI
tcping http://hui.lu

4. 常用参数说明

参数说明
-c指定 ping 次数,默认 4
-I间隔时间,支持单位:ms, s 等(如 -I 500ms
-T连接超时时间(如 -T 1s
-H启用 HTTP 模式(忽略 URI)
--postHTTP 模式中使用 POST 请求
--headHTTP 模式中使用 HEAD 请求
--user-agent自定义 UA 字符串
-v显示版本信息

三、UDPing(测试 UDP 连通性)

1. 下载 UDPing 脚本

## 原始地址
wget https://raw.githubusercontent.com/wangyu-/UDPping/master/udpping.py

## 国内镜像
wget https://mirror.ghproxy.com/https://raw.githubusercontent.com/wangyu-/UDPping/master/udpping.py

2. 配置和安装

## 确保 python3 可用
python3 --version

## 安装(可选)
sudo install udpping.py /usr/local/bin/udping

⚠️ 注意:脚本首行使用的解释器为 python,如需强制使用 python3,请修改为:

#!/usr/bin/env python3

3. 使用 socat 监听 UDP 端口

## 安装 socat
sudo apt install -y socat      # Debian/Ubuntu
sudo yum install -y socat      # RHEL/CentOS

## 监听 UDP 端口(如 4000)
socat -v UDP-LISTEN:4000,fork PIPE

4. 使用 udping 测试

## 最基础用法
./udpping.py 192.168.1.100 4000

## 指定参数
./udpping.py 192.168.1.100 4000 "LEN=400;INTERVAL=2000"

## IPv6 示例
./udpping.py fe80::1a2b:3c4d 4000

参数说明:

参数说明
LEN发送数据长度(字节)
INTERVAL间隔时间/超时时间(单位:毫秒)

四、总结

工具协议类型说明
pingICMP操作系统自带,适合测试基本连通性
tcpingTCP可测试指定端口是否可连接,支持 HTTP 模式
udpingUDP使用 Python 编写,可灵活配置 UDP 测试

验证与自查

  1. tcping google.com 443 输出 open(或成功响应),说明目标 TCP 端口可达
  2. tcping 对未开放端口输出 filtered/closed,能区分防火墙拦截与端口未监听
  3. 对端 socat -v UDP-LISTEN:4000,fork PIPE 在终端输出收到的数据包,同时本机 ./udpping.py 有返回,说明 UDP 通路正常
  4. ping 通但 tcping 不通时,优先检查目标防火墙规则

参考