Telnet 发送 Ctrl-C

Telnet 发送 Ctrl-C

我使用 telnet 连接到终端服务器,该服务器将流量代理到 RS-232 端口。

不幸的是,当使用某些设备时,无法发送CTRL+C字符 (0x03)。本地客户端似乎没有传输字符,而是捕获了击键,并且我处于“其他模式”。我想要的只是发送一个角色。

为了调试这个问题,我一直在尝试:

^] toggle termdata

^] toggle options

当我在不起作用的终端服务器上按CTRL+时,会发生以下情况:C

telnet 10.10.129.101 2012
Trying 10.10.129.101...
Connected to termserv-val3 (10.10.129.101).
Escape character is '^]'.
^]
telnet> toggle options
Will show option processing.
^]
telnet> toggle termdata
Will print hexadecimal representation of terminal traffic.
SENT IAC IP
SENT DO TIMING MARK

以下是正常工作的终端服务器上发生的情况:

telnet termserv-val2 2012
Trying 10.10.128.93...
Connected to termserv-val2 (10.10.128.93).
Escape character is '^]'.

telnet> toggle options
Will show option processing.

telnet> toggle termdata
Will print hexadecimal representation of terminal traffic.
< 0x0   03
^C

我已经尝试过toggle localchars,但没有任何区别。

我也尝试过mode character允许我发送CTRL+C字符,但在这里我没有从设备返回任何输出。

如何配置 telnet 客户端来解决此问题?

答案1

您是否尝试过在 telnet 客户端中关闭 localchars ?

bash$ telnet
telnet> toggle localchars
Won't recognize certain control characters.
telnet> open myhost

您也可以将此命令放入文件中~/.telnetrc,具体取决于您的 telnet 版本。

答案2

这可能会有所帮助,尽管它使用其他 3 个工具而不是telnet

echo 03 | xxd -r -p | nc host port

答案3

您可以尝试 8 位干净模式...它会阻止 telnet 解释大部分数据

telnet -8 host port

(这是在黑暗中拍摄的)

在大多数情况下,您的方向是正确的,尝试让 telnet 停止预解释击键...例如Ctrl+CCtrl+Z等。 8 位模式应该有帮助。

答案4

我一直在努力解决这个问题,但没有通过谷歌搜索找到答案。这是一个非常古老的线程,但我会留下这个,以防其他人像我一样来这里寻找解决方案。

  1. Ctrl使用+进入 telnet 命令模式]
  2. 输入命令:mode character。这会将 telnet 放入字符模式,无论出于何种原因,现在它都可以按您的预期工作,Crtl+C等等。

相关内容