我使用 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等等。