錯誤含義
10061 WSAECONNREFUSED:TCP 連接請求到達目標主機,但目標端口無進程監聽,或被防火牆/安全組顯式拒絕(發送 RST 包)。
排查步驟(由近及遠)
- 確認 Teradata 服務是否運行
- Windows:
services.msc 查找 Teradata Database / Teradata Listener 狀態為「運行中」。
- Linux:
systemctl status teradata 或 pdestate -a。
- 確認監聽端口
- 默認端口:1025 (Teradata Director Program) / 23 (Telnet) / 3100 (ODBC/JDBC)。
- 命令:
netstat -an | findstr :1025 (Win) / ss -ltnp | grep 1025 (Linux)。
- 防火牆/安全組
- Windows 防火牆:入站規則允許 TCP 1025/3100。
- 雲服務器安全組:入方向放行對應端口。
- 虛擬機網絡模式:NAT 模式需端口映射;橋接模式需宿主機防火牆放行。
- Teradata 訪問控制
DBC.Hosts 表:檢查客戶端 IP 是否在允許列表。
GRANT LOGON 權限:用戶是否有 LOGON 權限。
- IPv6 vs IPv4:確保客戶端與服務端協議棧一致。
- 客戶端配置
- Teradata Administrator / SQL Assistant → 連接配置:IP/主機名、端口、機制 (TD2/KRB5/LDAP)。
- 驅動版本匹配:JDBC/ODBC 驅動版本與服務端兼容。
虛擬機環境特有檢查
| 項目 | 操作 |
| 網絡模式 |
建議「橋接模式」獲取獨立 IP,或「NAT + 端口轉發」映射 1025/3100 |
| 宿主機防火牆 |
允許 VMware/VirtualBox 進程通信,或關閉宿主機防火牆測試 |
| SELinux/AppArmor |
Linux 客體機:setenforce 0 臨時關閉測試 |
快速驗證命令
# 1. 測試 TCP 連通性
telnet 1025
# 或
nc -zv 1025
# 2. 抓包確認 RST
wireshark -f "tcp.port == 1025"
# 觀察 SYN → RST/ACK 即為服務端拒絕
常見誤區
- 以為是賬號密碼錯誤
- 10061 是連接建立失敗,尚未進入認證階段。認證失敗通常返回 8017/8021。
- 忽視 IPv6
- Teradata 可能只綁定 IPv4,客戶端解析到 IPv6 導致連接失敗 → 在 hosts 強制指定 IPv4 或啟用 IPv6 監聽。