Telnet kirim Ctrl-C

14

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 localcharstetapi tidak ada bedanya.

Saya juga sudah mencoba mode characteryang 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?

Allan
sumber
2
Server terminal apa ini?
Michael Hampton

Jawaban:

5

Sudahkah Anda mencoba mematikan localchars di klien telnet Anda?

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

Anda juga dapat meletakkan perintah ini di ~/.telnetrcfile, tergantung pada versi telnet Anda.

jlp
sumber
Saya sudah mencobanya (baca bagian terakhir dari pertanyaan)
Allan
3

Anda dapat mencoba mode bersih 8-bit ... menghentikan telnet dari menginterpretasikan banyak data

telnet -8 host port

(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.

lornix
sumber
1
Saya sudah mencoba ini, tidak berhasil. Saya pernah menemukan solusi lain: server terminal dapat dikonfigurasi untuk bertindak sebagai "mode server TCP" (pengaturan default, yang memiliki masalah dengan saya), tetapi jika ini diubah menjadi "mode Real COM" semuanya berfungsi. Saya tidak tahu apa perbedaan sebenarnya ...
Allan
selamat telah menemukan solusi. Selalu bagus untuk memperbaiki masalah.
lornix
Tahun ... Saya tidak terlalu senang dengan solusi ini, saya lebih suka menyelesaikannya dengan membuat perubahan dalam konfigurasi klien telnet saya
Allan
1
@ Semua tolong kirimkan komentar Anda sebagai jawaban pada tanda itu sebagai jawaban yang benar untuk memperbaiki masalah, terima kasih.
Tidak tersedia
3

Ini mungkin membantu, meskipun menggunakan 3 alat lain alih-alih telnet:

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

bambam
sumber
1

^Cadalah karakter istirahat. Anda dapat mengirimnya dengan telnet escape (standarnya adalah ^]) lalu send brk.

ayahinck
sumber
3
BRKUrutan Telnet memiliki signifikansi implementasi khusus pada sisi penerima dan tidak sama dengan mengirim karakter ETX( ^C). Pada sistem Unixy, biasanya berarti melakukan TCSBRK ioctlapa pun yang TTY telnetdgunakan. Pada perangkat serial, yang sering diterjemahkan sebagai menahan jalur transmisi rendah selama seperempat hingga setengah detik.
Blrfl
Tidak yakin apakah itu mengubah apa pun, tetapi ada juga quitperintah di telnet yang tersedia.
VasyaNovikov
0

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

robm
sumber
0

Menggunakan

nc host port

jika yang Anda inginkan hanya terhubung ke server-port dan interupsi dengan Ctrl Csaat diperlukan. Anda dapat menginstal ncdengan netcatpaket.

PS idenya diambil dari jawaban @ bambam-s, tapi saya tidak tahu apa arti dari xxdperintah yang digunakan, dan itu berfungsi dengan baik tanpa untuk use case saya.

VasyaNovikov
sumber