我使用 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+C和Ctrl+Z等。 8 位模式应该有帮助。
答案4
我一直在努力解决这个问题,但没有通过谷歌搜索找到答案。这是一个非常古老的线程,但我会留下这个,以防其他人像我一样来这里寻找解决方案。
- Ctrl使用+进入 telnet 命令模式]
- 输入命令:
mode character
。这会将 telnet 放入字符模式,无论出于何种原因,现在它都可以按您的预期工作,Crtl+C等等。