Saya menggunakan telnet untuk terhubung ke server terminal, yang proksi lalu lintas ke port RS-232.
Sayangnya ketika menggunakan beberapa perangkat tidak mungkin mengirim CTRL+C karakter (0x03). Alih-alih mentransmisikan karakter, sepertinya klien lokal telah menangkap keystroke, dan saya dibiarkan dalam "beberapa-mode-lain". Yang saya inginkan hanyalah mengirim karakter.
Untuk debug ini saya telah bermain-main dengan:
^] toggle termdata
dan
^] toggle options
Inilah yang terjadi ketika saya menekan CTRL+ Cpada server terminal yang tidak berfungsi:
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
Inilah yang terjadi pada server terminal yang berfungsi:
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
Saya sudah mencoba toggle localchars
tetapi tidak ada bedanya.
Saya juga sudah mencoba mode character
yang memungkinkan saya mengirim CTRL+C karakter , tetapi di sini saya tidak mendapatkan output apa pun dari perangkat.
Bagaimana saya bisa mengkonfigurasi klien telnet saya untuk menyelesaikan ini?
Jawaban:
Sudahkah Anda mencoba mematikan localchars di klien telnet Anda?
Anda juga dapat meletakkan perintah ini di
~/.telnetrc
file, tergantung pada versi telnet Anda.sumber
Anda dapat mencoba mode bersih 8-bit ... menghentikan telnet dari menginterpretasikan banyak data
(Ini adalah tembakan dalam gelap)
Sebagian besar, Anda berada di jalur yang benar, mencoba membuat telnet untuk menghentikan penekanan tombol pra-interpretasi ... seperti CTRL-C dan CTRL-Z dan lainnya. Mode 8bit akan membantu.
sumber
Ini mungkin membantu, meskipun menggunakan 3 alat lain alih-alih
telnet
:echo 03 | xxd -r -p | nc host port
sumber
^C
adalah karakter istirahat. Anda dapat mengirimnya dengan telnet escape (standarnya adalah^]
) lalusend brk
.sumber
BRK
Urutan Telnet memiliki signifikansi implementasi khusus pada sisi penerima dan tidak sama dengan mengirim karakterETX
(^C
). Pada sistem Unixy, biasanya berarti melakukanTCSBRK
ioctl
apa pun yang TTYtelnetd
gunakan. Pada perangkat serial, yang sering diterjemahkan sebagai menahan jalur transmisi rendah selama seperempat hingga setengah detik.quit
perintah di telnet yang tersedia.Saya menggunakan 'toggle options' dan 'toggle termdata' untuk memverifikasi situasi di situs saya yang cocok dengan poster asli. Saya dapat mengirim karakter ^ C (control-C) khusus dengan perintah telnet 'send ip' seperti yang dijelaskan dalam dokumentasi. Dalam kasus saya, saya menempatkan semua 3 perintah di ~ / .telnetrc saya
sumber
Menggunakan
jika yang Anda inginkan hanya terhubung ke server-port dan interupsi dengan
Ctrl C
saat diperlukan. Anda dapat menginstalnc
dengannetcat
paket.PS idenya diambil dari jawaban @ bambam-s, tapi saya tidak tahu apa arti dari
xxd
perintah yang digunakan, dan itu berfungsi dengan baik tanpa untuk use case saya.sumber