telnet 可以与任何基于 TCP/IP 的应用程序级文本协议一起使用吗?

telnet 可以与任何基于 TCP/IP 的应用程序级文本协议一起使用吗?

telnet 可以与任何应用程序级文本协议(例如 http 或 smtp)一起使用吗?

答案1

它可以与大多数协议一起使用,并且您不会遇到 HTTP 或 SMTP 等常见协议的太多问题,但 Telnet 本身是一种协议,它对一些特殊字符有反应。

来自 Telnet 维基百科文章:

除 0xff 之外的所有数据八位字节都按原样通过 TCP 传输。因此,Telnet 客户端应用程序也可用于建立交互式原始 TCP 会话,并且人们普遍认为,不使用 IAC(0xff,或十进制的 255)的此类会话在功能上是相同的。[需要引证]

但事实并非如此,因为还有其他网络虚拟终端 (NVT) 规则,例如要求裸回车符 (CR,ASCII 13) 后跟 NUL (ASCII 0) 字符,以将 telnet 协议与原始 TCP 会话区分开来。[需要澄清]

另一方面,许多系统现在都拥有真正的原始 TCP 客户端,例如 UNIX 上的 netcat 或 socat 以及 Windows 上的 PuTTY,它们也可用于手动“与其他服务对话”,而无需专门的客户端软件。尽管如此,Telnet 有时仍用于调试网络服务,例如 SMTP、IRC、HTTP、FTP 或 POP3 服务器,以向服务器发出命令并检查响应,但在所有这些协议中,只有 FTP 真正使用 Telnet 数据格式。

Telnet 与原始 TCP 会话的另一个区别是,默认情况下 Telnet 不是 8 位清洁的。8 位模式可以协商,但高位设置八位字节可能会被混淆,直到请求此模式,并且显然不会在非 Telnet 连接中请求此模式。8 位模式(所谓的二进制选项)旨在传输二进制数据,而不是字符。该标准建议将代码 0000–0176 解释为 ASCII,但不为高位设置数据八位字节提供任何含义。曾尝试引入可切换的字符编码支持(如 HTTP 一样),[3] 但对其实际软件支持一无所知。

正如所提到的,nc或者socat是一个更好的工具(并nc允许您通过命令行使用 UDP),尽管大多数时候使用 HTTP 等您都可以使用 telnet。

答案2

是的,绝对如此。而且它也是一款出色的测试工具。

这是一个如何使用 http 执行此操作的示例。

http://www.esqsoft.com/examples/troubleshooting-http-using-telnet.htm

互联网上的旧协议倾向于使用文本进行通信。这包括 FTP 和 SMTP...

此规则的例外是任何加密的内容,因此 SSH 和 SSL 不适用。

相关内容