Я использую 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
Вы пробовали отключить localchars в вашем клиенте Telnet?
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
Я боролся с этим и не нашел ответа в Google. Это очень старая тема, но я оставлю ее на случай, если кто-то еще придет сюда в поисках решения, как и я.
- Перейдите в командный режим telnet с помощью Ctrl+]
- Введите команду:
mode character
Это переведет telnet в режимрежим персонажа, который по какой-то причине теперь работает так, как и ожидалось, Crtl+ Cи все такое.