使用Telnet连接到Linux Prompt

时间:2017-08-03 09:30:49

标签: linux arduino

我有一个Arduino和Ethernet Shield编码来创建一个简单的串口到telnet客户端。这适用于将串行终端程序连接到Telnet BBS类型系统,例如使用端口23在bbs.thebytexchange.com上的系统。

当我使用同一个客户端与我的Arch盒子进行通信时,它连接OK,但是,我立即从Arch盒子里收到5个字节,一切都停止了。无论我发送到Arch盒子,都不会返回任何内容。 五个字节(十六进制)如下。 18 20 23 27 24.如果我连接到运行Raspian的Raspberry Pi,我会返回四个字节(18 20 23 27)并具有相同的症状。

我很高兴每个Telnet服务器运行正常,因为我可以使用标准Telnet应用程序从我的Mac使用Telnet连接并登录到这两个盒子,我也可以在每台机器上Telnet到localhost。我很高兴Telnet Arduino的串口很好,因为我可以使用串行终端(任意)Telnet到Internet Telnet资源,但是,当连接到Linux登录提示时,我显然遗漏了什么,任何想法可能是什么?< / p>

亲切的问候

约翰

更新:进一步的调查表明,我所看到的是服务器尝试让我谈判几个选项。我看到的字节每个都以FF开头(最初没有注意到这是因为FF从监控中滤除)。这些字节是Telnet协议的一部分,意思如下:

  • FF FD 18注销
  • FF FD 20数据输入终端
  • FF FD 27输出标记
  • FF FD 24端子类型

现在的问题是,我该如何回应呢?

1 个答案:

答案 0 :(得分:0)

JimmyB的帮助下,我发现了所需的方法,所以我会回答我自己的问题。

如前所述,来自Telnet服务器的接收序列是服务器尝试协商连接的一些选项。这些选项旨在增强每端的网络虚拟终端(NVT)的默认配置。这些选项请求只需按照JimmyB的建议进行确认。

该过程在RFC854中定义,明确表示我应该使用WILL或WONT响应DO请求,并使用DO或DONT请求。

在我的情况下,我不需要这些增强功能,因为我对连接的默认NVT感到满意。因此,为了进入Linux登录提示,我使用WONT响应每个DO请求,例如;

当收到以下DO请求时(FD表示选项18的DO)

FF FD 18

我回复WONT响应(由FC表示)

FF FC 18

同样,如果我收到了一个WILL请求(FB)

FF FB 18

我会回复DONT(FE)

FF FE 18

我希望这会有所帮助。