Telnet 发送 Ctrl-C

All*_*lan 14 terminal-emulator terminal signals telnet serial-port

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

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

为了调试这个,我一直在玩:

^] toggle termdata
Run Code Online (Sandbox Code Playgroud)

^] toggle options
Run Code Online (Sandbox Code Playgroud)

当我在无法工作的终端服务器上按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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

我试过了,toggle localchars但没有任何区别。

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

如何配置我的 telnet 客户端来解决这个问题?

jlp*_*jlp 5

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

bash$ telnet
telnet> toggle localchars
Won't recognize certain control characters.
telnet> open myhost
Run Code Online (Sandbox Code Playgroud)

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


lor*_*nix 3

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

telnet -8 host port
Run Code Online (Sandbox Code Playgroud)

(这是在黑暗中拍摄的)

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