telnet 测试端口连通性

telnet 测试端口连通性telnet 命令是 TELNET 协议的用户接口 它支持两种模式 命令模式和会话模式 虽然 telnet 支持许多命令 但大部分情况下 我们只是使用它查看目标主机是否打开了某端口 默认是 23 端口未打开 telnet101 199 97 Trying101 199 97 65 telnet connecttoadd 199 97 65 Connectionre 此时 命令已退出 端口已打开 telnet101 199 9

目录

端口未打开

端口已打开

方案

输出结果后立即退出

输出结果后延迟退出


telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式和会话模式,虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23)。

端口未打开

$ telnet 101.199.97.65 62715 Trying 101.199.97.65... telnet: connect to address 101.199.97.65: Connection refused

此时,命令已退出。

端口已打开

$ telnet 101.199.97.65 62715 Trying 101.199.97.65... Connected to 101.199.97.65. Escape character is '^]'.
^] telnet>

此时再运行quit才会真正退出。

telnet> quit Connection closed.

其中,Escape character可以自定义,使用参数-e:

$ telnet -e p 101.199.97.65 62715 #使用p字符 Telnet escape character is 'p'. Trying 101.199.97.65... Connected to 101.199.97.65. Escape character is 'p'. p telnet> quit Connection closed.

即便如此,退出telnet还是麻烦。那么,更进一步,如果出现在脚本中应该如何(优雅地)退出telnet呢?

方案

其实可以这样:

输出结果后立即退出

$ echo "" | telnet 101.199.97.65 62715 Trying 101.199.97.65... Connected to 101.199.97.65. Escape character is '^]'. Connection closed by foreign host. #已成功连通端口并自动退出
$ echo "" | telnet 101.199.97.65 62715 Trying 101.199.97.65... telnet: connect to address 101.199.97.65: Connection refused #端口未开放

输出结果后延迟退出

sleep 2使得telnet输出结果后,停留2秒后退出命令模式。

$ sleep 2 | telnet 101.199.97.65 62715 Trying 101.199.97.65... Connected to 101.199.97.65. Escape character is '^]'. Connection closed by foreign host.

使用这种方式可以将标准输出和标准错误重定向到文件中,通过分析文件的内容来判断端口打开状态。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207968.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午12:40
下一篇 2026年3月19日 下午12:41


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号