数据库连不上,报的是连接超时。不知道是服务没起,还是中间被防火墙挡了。这时候最省事的办法,是拿 telnet 敲一下那个端口。

Win10 和 Win11 默认没装

系统里早就不带 telnet 客户端了,得手动启用。控制面板,程序,启用或关闭 Windows 功能,在列表里找到 Telnet 客户端,勾上确定,等进度条跑完就行,一般不用重启。

用管理员身份的 PowerShell 也能装,执行 Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient,跑完提示需要重启就重启。装好之后在命令提示符里敲 telnet,出现欢迎提示就是生效了。

测端口的写法

命令是 telnet 空格 主机 空格 端口,比如 telnet 192.168.1.10 3306。三种结果对应三种情况:屏幕变黑、光标在闪,说明端口通了,只是对面在等你说协议;提示无法打开到主机的连接,说明端口不通,或者被防火墙、安全组挡住了;提示找不到主机,那是域名解析或者地址写错了。

退出别直接关窗口。先按 Ctrl 加右方括号进到 telnet 提示符,再输 quit 回车。关窗口有时会留下半开的连接,服务端的连接数会被占一会儿。

它为什么不该用来登录设备

telnet 协议本身不加密,包括登录时的账号和密码,全程明文在网上跑。同一个局域网里,别人抓个包就能看到你敲的每一个字符。公网上用它登录路由器、交换机,等于把密码写在明信片上寄出去。

远程管理一律用 SSH,网页管理走 https。老设备只支持 telnet 的,把管理口限制在内网,别映射到公网。这类事故出过太多次,代价都不小。

还有更快的替代

Windows 上有 Test-NetConnection,PowerShell 里敲 Test-NetConnection 加主机名 加 -Port 端口,直接返回 TcpTestSucceeded 的真假,比 telnet 干净,也不用装组件。Linux 上习惯用 nc 加 -zv,效果一样。

telnet 客户端留着当个轻量探测工具没问题,登录这件事交给 SSH,别混着用。