Telnet надсилає Ctrl-C


14

Я використовую 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 для вирішення цього питання?


2
Що це за термінальний сервер?
Майкл Хемптон

Відповіді:


5

Ви намагалися вимкнути локальні канали свого клієнта telnet?

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

Ви також можете ввести цю команду у ~/.telnetrcфайл, залежно від вашої версії telnet.


Я спробував це (прочитайте останню частину питання)
Аллан

3

Ви можете спробувати 8-розрядний чистий режим ... він не перешкоджає telnet інтерпретувати велику частину даних

telnet -8 host port

(Це постріл у темряві)

Здебільшого ви на правильному шляху, намагаючись змусити telnet зупинити попереднє тлумачення натискань клавіш ... таких як CTRL-C і CTRL-Z та інші. 8-бітний режим повинен допомогти.


1
Я спробував це, не вийшло. Як я колись знайшов інше рішення: термінальний сервер можна налаштувати так, щоб він працював як "режим сервера TCP" (налаштування за замовчуванням, з якими у мене проблеми), але якщо це змінити на "Реальний режим COM", все працює. Я поняття не маю, що насправді відрізняються ...
Аллан

поздоровлення з пошуком рішення. Завжди добре вирішити проблему.
lornix

Рік ... Я не надто задоволений цим рішенням, я вважаю за краще його вирішити, змінивши конфігурацію свого клієнта telnet
Алан

1
@Allan, будь ласка, надішліть ваш коментар як відповідь, і позначте його як правильну відповідь для вирішення проблеми, дякую.
Недоступно

3

Це може допомогти, хоча він використовує 3 інші інструменти замість telnet:

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


1

^C- характер перерви. Ви можете надіслати його за допомогою втечі telnet (за замовчуванням ^]), а потім send brk.


3
BRKПослідовність Telnet має специфічне значення для приймаючого кінця і не є такою ж, як надсилання символу ETX( ^C). У системах Unixy зазвичай означає робити те, TCSBRK ioctlщо telnetdвикористовується TTY . На послідовних пристроях, що часто перекладається на низьке утримування лінії передачі протягом чверті до половини секунди.
Blrfl

Не впевнений, чи це щось змінить, але також є quitкоманда в telnet.
VasyaNovikov

0

Я використовував "параметри перемикання" та "перемикання термінних даних", щоб перевірити, чи ситуація на моєму сайті відповідає цій оригінальній афіші. Мені вдалося надіслати символ ^ C (control-C) спеціально за допомогою команди telnet 'send ip', як описано в документації. У моєму випадку я помістив усі 3 команди в мій ~ / .telnetrc


0

Використовуйте

nc host port

якщо ви хочете, просто підключіться до порту сервера і перервіться з Ctrl Cнеобхідністю. Ви можете встановити ncразом з netcatпакетом.

PS ідея взята з відповіді @ bambam-s, але я не знаю, в чому сенс використовуваної xxdкоманди, і вона відмінно працює без неї для мого випадку використання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.