Mac OS X에서 역방향 Telnet을 설정하는 방법

Mac OS X에서 역방향 Telnet을 설정하는 방법

Mac OS X 10.9.5(Mavericks)에서 역방향 Telnet(Telnet to COM)을 설정하려고 합니다. Mac이 직렬 장치에 연결되어 있습니다. 화면을 사용하여 Mac에서 직렬 장치에 액세스하는 데 문제가 없습니다.

screen /dev/cu.USBserial

하지만 Telnet을 통해 원격으로 장치에 액세스하고 싶습니다.

Netcat( )을 사용해 보았지만 nc성공이 제한적이었습니다. 내가 사용한 명령은 다음과 같습니다.

nc -l 9999 > /dev/cu.USBserial < /dev/cu.USBserial

그런 다음 장치에 Telnet을 연결할 수 있습니다. 그러나 다음 두 가지 이유로 작동하지 않습니다.

  1. 대화형 사용자 인터페이스의 경우 입력은 기본적으로 를 칠 때까지 라인 버퍼링됩니다 return.
  2. 내가 입력한 내용은 모두 나에게 다시 반영됩니다. 실제 생활에서 장치는 내가 입력한 문자를 반영하는 장치여야 합니다.

올바른 방법은 무엇입니까?

답변1

가장 간단한 방법:

  1. telnet(또는 오히려 ssh) Mac에
  2. screen /dev/cu.USBserial명령을 입력하세요

이제 Mac을 COM 포트에 직접 연결하고 싶지 않거나 다른 사람이 연결하도록 허용하고 싶지 않다면 다음 방법을 따르세요.

  1. Mac에서 전용 사용자를 만듭니다. 이를 "comport"라고 부르고 이 사용자로 로그인해 보겠습니다.
  2. 이 사용자에 대한 연결 스크립트를 만듭니다. 이름이 지정된 파일을 만들고 /Users/comport/log2com.sh다음 줄을 삽입합니다.

    #!/bin/bash
    /usr/bin/screen -R /dev/cu.USBserial
    
  3. 터미널에서 다음 명령을 실행하여 스크립트가 실행되도록 허용합니다.

    chmod +x /Users/comport/log2com.sh
    
  4. 마지막으로 이 스크립트를 사용자의 로그인 셸로 설정합니다. 이를 위해 시스템 환경설정 > 사용자 및 그룹의 사용자 목록에서 해당 사용자를 마우스 오른쪽 버튼으로 클릭하고 "고급 옵션"을 선택하세요. 그런 다음 "쉘" 필드에 를 입력하고 /Users/comport/log2com.sh확인을 클릭합니다.

그게 다야. 이제 sshMac에서 이 로그인에 텔넷(권장하고 싶습니다!)을 통해 화면에 직접 접속할 수 있습니다.

종료하려면 화면 방식(보통 Ctrl+ A, 그 다음 :quit Return)을 수행해야 합니다.

OSX 10.10.5에서 테스트했습니다. 그것이 당신에게 도움이 되었는지 알려주세요.

답변2

해결책을 찾았습니다. Python PySerial 패키지에는 rfc2217 클래스가 있습니다. 텔넷 서버로 작동하는 샘플 앱이 있습니다.

https://pyserial.readthedocs.org/en/latest/examples.html

$ python rfc2217_server.py /dev/tty.serial

텔넷 연결을 허용하는 포트 2217을 엽니다. 그것은 바로 내가 원했던 것이다.

관련 정보