Telnet gửi Ctrl-C


14

Tôi sử dụng telnet để kết nối với một máy chủ đầu cuối, nơi lưu lượng truy cập đến cổng RS-232.

Thật không may khi sử dụng một số thiết bị không thể gửi ký tự CTRL+ C(0x03). Thay vì truyền ký tự, có vẻ như máy khách cục bộ đã bắt được tổ hợp phím và tôi bị bỏ lại trong "chế độ khác". Điều tôi muốn chỉ là gửi một nhân vật.

Để gỡ lỗi này, tôi đã chơi xung quanh với:

^] toggle termdata

^] toggle options

Đây là những gì xảy ra khi tôi nhấn CTRL+ Ctrên máy chủ đầu cuối không hoạt động:

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

Đây là những gì xảy ra trên các máy chủ đầu cuối hoạt động:

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

Tôi đã thử toggle localcharsnhưng nó không tạo ra sự khác biệt nào.

Tôi cũng đã thử mode charactercho phép tôi gửi ký tự CTRL+ C, nhưng ở đây tôi không nhận được bất kỳ đầu ra nào từ thiết bị.

Làm thế nào tôi có thể cấu hình máy khách telnet của tôi để giải quyết điều này?


2
Máy chủ đầu cuối này là gì?
Michael Hampton

Câu trả lời:


5

Bạn đã thử tắt localchars trong máy khách telnet của mình chưa?

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

Bạn cũng có thể đặt lệnh này trong ~/.telnetrctệp, tùy thuộc vào phiên bản telnet của bạn.


Tôi đã thử điều đó (đọc phần cuối của câu hỏi)
Allan

3

Bạn có thể thử chế độ dọn dẹp 8 bit ... nó dừng telnet để giải thích nhiều dữ liệu

telnet -8 host port

(Đây là một shot trong bóng tối)

Đối với hầu hết các phần, bạn đang đi đúng hướng, cố gắng lấy telnet để dừng các lần nhấn phím diễn giải trước ... chẳng hạn như CTRL-C và CTRL-Z và những người khác. Chế độ 8 bit sẽ giúp.


1
Tôi đã thử điều này, nó đã không hoạt động. Tôi đã tìm cách giải quyết khác: máy chủ đầu cuối có thể được cấu hình để hoạt động như "chế độ máy chủ TCP" (cài đặt mặc định mà tôi gặp vấn đề), nhưng nếu điều này được thay đổi thành "Chế độ COM thực" thì mọi thứ đang hoạt động. Tôi không biết sự khác biệt thực sự là gì ...
Allan

chúc mừng bạn đã tìm ra giải pháp Luôn luôn tốt để có được một vấn đề cố định.
lornix

Năm ... Tôi không quá hài lòng với giải pháp này, tôi muốn giải quyết nó bằng cách thay đổi cấu hình máy khách telnet của mình
Allan

1
@ ALLan vui lòng gửi nhận xét của bạn dưới dạng câu trả lời đánh dấu là câu trả lời chính xác để khắc phục sự cố, cảm ơn.
Không có sẵn

3

Điều này có thể giúp ích, mặc dù nó sử dụng 3 công cụ khác thay vì telnet:

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


1

^Clà một nhân vật phá vỡ. Bạn có thể gửi nó với một lối thoát telnet (mặc định là ^]) và sau đó send brk.


3
BRKChuỗi của Telnet có ý nghĩa cụ thể về triển khai ở đầu nhận và không giống như gửi ký tự ETX( ^C). Trên các hệ thống Unixy, thường có nghĩa là thực hiện TCSBRK ioctlbất cứ điều gì TTY telnetdđang sử dụng. Trên các thiết bị nối tiếp, điều đó thường chuyển sang giữ đường truyền ở mức thấp trong một phần tư đến nửa giây.
Blrfl

Không chắc nó có thay đổi gì không, nhưng cũng có quitlệnh trong telnet.
VasyaNovikov

0

Tôi đã sử dụng 'tùy chọn chuyển đổi' và 'chuyển đổi thuật ngữ' để xác minh tình huống tại trang web của mình phù hợp với tình huống của áp phích gốc. Tôi đã có thể gửi ký tự ^ C (control-C) bằng lệnh telnet 'send ip' như được mô tả trong tài liệu. Trong trường hợp của tôi, tôi đặt cả 3 lệnh trong ~ / .telnetrc


0

Sử dụng

nc host port

nếu những gì bạn muốn chỉ là kết nối với một cổng máy chủ và ngắt với Ctrl Ckhi cần thiết. Bạn có thể cài đặt ncvới netcatgói.

PS ý tưởng được lấy từ câu trả lời của @ bambam-s, nhưng tôi không biết ý nghĩa của xxdlệnh được sử dụng là gì và nó hoạt động tốt mà không cần sử dụng cho trường hợp sử dụng của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.