1. 用bash
原生/dev/tcp
测试端口(无需任何工具)
bash
shell 内置了/dev/tcp
虚拟设备,可直接通过脚本测试端口是否能连接,执行以下命令(替换数据库 IP 和端口):
# 格式:echo > /dev/tcp/数据库IP/数据库端口 2>&1 && echo "连接成功" || echo "连接失败"
echo > /dev/tcp/10.130.0.5/2883 2>&1 && echo "数据库端口连通" || echo "数据库端口不通"
- 结果说明:
- 输出 “数据库端口连通”:说明服务器到数据库的网络路径通畅,端口开放;
- 输出 “数据库端口不通”:可能是网络防火墙拦截、数据库端口未开放,或数据库 IP 错误。
PS:这个太好用了,尤其在不能使用telnet/nc命令时。
2. 用ping
先判断数据库 IP 是否可达(辅助排查)
ping
命令默认测试 IP 是否能连通(基于 ICMP 协议,部分数据库服务器可能禁 ping,但可作为初步排查):
# 测试数据库IP是否能ping通(替换为实际IP)
ping -c 3 数据库IP
# 示例:ping -c 3 0.130.6.xx
- 结果说明:
- 若
ping
失败(输出Request timeout
):说明服务器到数据库的 IP 路由不通(如跨网段无路由、防火墙禁 ICMP),需先解决网络连通性; - 若
ping
成功但端口测试失败:说明 IP 可达,但数据库端口被防火墙拦截(或数据库未监听该端口),需重点排查端口防火墙。
- 若
2.使用telnet命令
2.1. 对于 CentOS/RHEL 系统:
# 安装telnet客户端
yum install -y telnet# 安装完成后测试
telnet 数据库IP地址 数据库端口号
2.2. 对于 Ubuntu/Debian 系统:
# 安装telnet客户端
apt-get update && apt-get install -y telnet# 安装完成后测试
telnet 数据库IP地址 数据库端口号
3.使用nc
命令
nc
(netcat)是 Linux 系统常用的网络测试工具,多数服务器默认安装,用法与 telnet 类似
3.1 若为 CentOS/RHEL 系统
# 1. 先更新yum源(可选,避免安装包版本过旧)
sudo yum update -y
# 2. 安装nc(netcat)
sudo yum install -y nc #
3. 安装后测试(替换为数据库实际IP和端口)
# 测试数据库端口是否可连接(替换为实际IP和端口)
nc -zv 数据库IP地址 数据库端口号
# 示例
nc -zv 10.130.6.xx 2883
- 成功连接:输出类似
Connection to
10.130.6.xx2883 port [tcp/oceanbase] succeeded!
- 连接失败:输出
nc: connect to
10.130.6.xxport 2883 (tcp) failed: Connection timed out
(超时,网络不通)或Connection refused
(端口未开放)
3.2 若为 Ubuntu/Debian 系统
# 1. 更新apt源(必须,否则可能找不到安装包)
sudo apt-get update -y
# 2. 安装nc(netcat-openbsd是常用版本)
sudo apt-get install -y netcat-openbsd
# 3. 安装后测试
nc -zv 数据库IP 数据库端口