텔넷은 Ctrl-C를 보냅니다.


14

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

불행히도 일부 장치를 사용할 때는 CTRL+ C문자 (0x03) 를 보낼 수 없습니다 . 캐릭터를 전송하는 대신 로컬 클라이언트가 키 입력을 포착 한 것처럼 보이며 "some-other-mode"로 남아 있습니다. 내가 원하는 것은 캐릭터를 보내는 것입니다.

이것을 디버깅하기 위해 나는 놀고 있었다 :

^] 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

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


2
이것은 어떤 터미널 서버입니까?
— Michael Hampton

답변:


5

텔넷 클라이언트에서 localchars를 해제 해 보셨습니까?

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

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


나는 그것을 시도했다 (질문의 마지막 부분을 읽으십시오)
— Allan

3

8 비트 클린 모드를 시도 할 수 있습니다. 텔넷이 많은 데이터를 해석하지 못하게합니다.

telnet -8 host port

(이것은 어둠 속에서 촬영 한 것입니다)

대부분 CTRL-C, CTRL-Z 및 기타와 같은 사전 해석 키 스트로크를 중지하기 위해 텔넷을 사용하려고 시도하고 있습니다. 8 비트 모드가 도움이됩니다.


1
나는 이것을 시도했지만 작동하지 않았다. 터미널 서버를 "TCP 서버 모드"(기본 설정, 문제가 있음)로 작동하도록 구성 할 수 있지만 "실제 COM 모드"로 변경되면 문제가 해결됩니다. 나는 실제로 차이점이 무엇인지 전혀 모른다.
— Allan

해결책을 찾은 것을 축하합니다. 항상 문제를 해결하는 것이 좋습니다.
— lornix

연도 ...이 솔루션에 너무 만족하지 않습니다. Telnet 클라이언트 구성을 변경하여 해결할 수 있습니다
— Allan

1
@Allan은 문제를 해결하기위한 정답으로 표시하여 의견을 보내주십시오. 감사합니다.
— 사용할 수 없음

3

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

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


1

^C휴식 문자입니다. 텔넷 이스케이프 (기본값은 ^])와 함께 보낼 수 있습니다 send brk.


3
Telnet의 BRK순서는 수신 측에서 구현에 따라 중요한 의미를 가지며 ETX( ^C) 문자 를 보내는 것과 다릅니다 . Unixy 시스템에서는 일반적으로 TCSBRK ioctlTTY telnetd가 사용 하는 모든 작업을 수행합니다 . 직렬 장치에서는 전송 라인을 1/4에서 0.5 초 동안 낮게 유지하는 경우가 많습니다.
— Blrfl

변경 사항이 있는지 확실하지 않지만 quittelnet에 명령이 있습니다.
— VasyaNovikov

0

'토글 옵션'과 '터미널 데이터 토글'을 사용하여 내 사이트의 상황이 원래 포스터의 상황과 일치하는지 확인했습니다. 설명서에 설명 된대로 telnet 명령 'send ip'와 함께 ^ C (control-C) 문자를 보낼 수있었습니다. 내 경우에는 ~ / .telnetrc에 3 개의 명령을 모두 넣었습니다.


0

사용하다

nc host port

원하는 경우 서버 포트에 연결하고 Ctrl C필요할 때 중단하십시오 . 당신은 nc함께 설치할 수 있습니다netcat패키지 .

추신 : 아이디어는 @ bambam-s 답변에서 가져 왔지만 xxd사용 된 명령 의 의미가 무엇인지 알지 못하며 유스 케이스에 적합하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.