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 數據庫端口