tcping 与 udping 使用指南
本文适合需要测试服务器端口连通性的运维人员。你会学到:ping(ICMP)、tcping(TCP 端口连通性)和 udping(UDP 端口连通性)三种工具的安装与用法,以及用 socat 监听 UDP 端口配合测试的方法。
本指南介绍三种常用的网络连通性测试工具:ping、tcping 和 udping,适用于常规 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 安装
- 打开 GitHub Release 页面:https://github.com/cloverstd/tcping/releases
- 下载带有
windows的压缩包,解压获得tcping.exe文件 - 将其放入带有环境变量的目录(如
C:\Windows\System32) - 打开 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) |
--post | HTTP 模式中使用 POST 请求 |
--head | HTTP 模式中使用 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 | 间隔时间/超时时间(单位:毫秒) |
四、总结
| 工具 | 协议类型 | 说明 |
|---|---|---|
ping | ICMP | 操作系统自带,适合测试基本连通性 |
tcping | TCP | 可测试指定端口是否可连接,支持 HTTP 模式 |
udping | UDP | 使用 Python 编写,可灵活配置 UDP 测试 |
验证与自查
tcping google.com 443输出open(或成功响应),说明目标 TCP 端口可达tcping对未开放端口输出filtered/closed,能区分防火墙拦截与端口未监听- 对端
socat -v UDP-LISTEN:4000,fork PIPE在终端输出收到的数据包,同时本机./udpping.py有返回,说明 UDP 通路正常 ping通但tcping不通时,优先检查目标防火墙规则