텔넷은 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.