텔넷은 Ctrl-C를 보냅니다

텔넷은 Ctrl-C를 보냅니다

저는 텔넷을 사용하여 트래픽을 RS-232 포트로 프록시하는 터미널 서버에 연결합니다.

CTRL불행하게도 일부 장치를 사용하는 경우 + 문자(0x03) 를 보낼 수 없습니다 C. 문자를 전송하는 대신 로컬 클라이언트가 키 입력을 포착한 것처럼 보이며 "다른 모드"에 남아 있습니다. 내가 원했던 것은 단지 캐릭터를 보내는 것뿐이었습니다.

이것을 디버깅하기 위해 나는 다음과 같이 놀았습니다.

^] 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를 보낼 수 있도록 시도했지만 여기서는 장치에서 어떤 출력도 다시 얻지 못했습니다.CTRLC

이 문제를 해결하려면 텔넷 클라이언트를 어떻게 구성해야 합니까?

답변1

텔넷 클라이언트에서 localchars를 꺼 보셨나요?

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

~/.telnetrc텔넷 버전에 따라 이 명령을 파일에 넣을 수도 있습니다 .

답변2

다음 대신 3가지 다른 도구를 사용하지만 도움이 될 수 있습니다 telnet.

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

답변3

8비트 정리 모드를 시도해 볼 수도 있습니다. 이는 텔넷이 많은 데이터를 해석하는 것을 중지합니다.

telnet -8 host port

(어두운 곳에서 찍은 사진입니다)

대부분의 경우 Ctrl+ C, Ctrl+ Z및 기타 키 입력을 미리 해석하는 것을 텔넷에서 중지하도록 시도하는 올바른 방향으로 가고 있습니다. 8비트 모드가 도움이 될 것입니다.

답변4

이것저것 고민하다가 구글링해도 답이 안나오더라구요. 이것은 매우 오래된 스레드이지만 다른 사람이 나처럼 해결책을 찾기 위해 여기에 올 경우를 대비해 남겨두겠습니다.

  1. Ctrl+를 사용하여 텔넷 명령 모드로 이동합니다 .]
  2. 다음 명령을 입력하십시오: mode character. 이것은 텔넷을캐릭터 모드, 어떤 이유로든 이제 예상대로 작동합니다. Crtl+ C그리고 모두.

관련 정보