◆

Mac 用 Homebrew 安装 telnet

2023-02-02 01:370

为什么 macOS 没有 telnet

从 macOS High Sierra(10.13)开始,系统不再自带 telnet 和 ftp 客户端,执行 telnet 只会得到 command not found。苹果移除它们的理由是安全——telnet 协议传输完全不加密,账号密码在网络上是明文,早就该被 SSH 取代了。

但 telnet 作为排查工具依然很有用,这也是我还要装它的原因。它能建立一个裸 TCP 连接,什么协议逻辑都不加,所以特别适合验证「某个端口到底通不通」:telnet 目标地址 端口,能连上说明网络可达且端口在监听,连不上说明中间有防火墙或者服务没起。比对着一堆日志猜快得多。

安装方法

直接借助 homebrew

brew install telnet

装完 telnet 就在 PATH 里了。Homebrew 装的是 inetutils 里的 telnet 实现,功能和原来系统自带的一致。

用法和替代方案

最常用的就是探测端口:

telnet 192.168.1.100 3306

连接成功会显示 Connected to ...,失败则是 Connection refused(端口没监听)或者长时间无响应直到超时(被防火墙丢包)。这两种失败的区别很有价值——refused 说明能到达主机但服务没起,超时说明包压根没到。

退出 telnet 会话按 Control + ] 进入命令模式,再输入 quit 回车。这个操作不直观,很多人卡在里面出不来只能关终端窗口。

其实纯粹测端口的话,nc(netcat)更合适而且系统自带,不用装任何东西:

nc -zv 192.168.1.100 3306

-z 表示只扫描不发数据,-v 打印结果。加 -w 3 可以设置超时秒数,避免卡太久。测一批端口也方便:nc -zv host 80 443 3306。

想看 HTTP 响应用 curl -v 比 telnet 手敲请求方便得多。所以我现在装 telnet 主要是为了对付一些老设备的管理接口——有些网络设备、打印机的配置界面只提供 telnet 入口,没得选。

💬留言板0

还没有留言,来发表第一条吧~

PAGE LOAD / LIVEMac 用 Homebrew 安装 telnet加载中