Как настроить обратный Telnet в Mac OS X

Я пытаюсь настроить обратный Telnet (Telnet для COM) в Mac OS X 10.9.5 (Mavericks). Mac подключен к последовательному устройству. У меня нет проблем с доступом к последовательному устройству с Mac с помощью экрана:

screen /dev/cu.USBserial

Тем не менее, я хотел бы получить доступ к устройству удаленно, через Telnet.

Я пытался использовать Netcat (nc) и имеют ограниченный успех. Команда, которую я использовал:

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

И тогда я могу Telnet к устройству. Однако это не работает по двум причинам:

  1. Для интерактивного пользовательского интерфейса ввод по существу буферизуется до тех пор, пока я не нажму return.
  2. Весь мой вклад возвращается ко мне. В реальной жизни устройство должно повторять вводимые мной символы.

Как правильно это сделать?

2 ответа

Решение

Я нашел решение. Пакет Python PySerial имеет класс rfc2217. У них есть пример приложения, которое работает как сервер telnet:

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

$ python rfc2217_server.py /dev/tty.serial

открывает порт 2217, который позволяет Telnet для подключения. Это именно то, что я хотел.

Самый простой способ:

  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. Наконец, установите этот скрипт как оболочку входа вашего пользователя. Для этого в Системных настройках> Пользователи и группы в списке пользователей щелкните правой кнопкой мыши пользователя и выберите "Дополнительные параметры". Затем в поле "shell" введите /Users/comport/log2com.shи нажмите ОК.

Вот и все. Теперь вы можете Telnet (я бы рекомендовал ssh!) к этому логину на вашем Mac, чтобы попасть прямо на экран.

Обратите внимание, что для выхода вам нужно сделать это на экране (обычно Ctrl+A, затем :quit Вернуться).

Протестировано это на OSX 10.10.5. Дайте мне знать, если это сработало для вас.

Другие вопросы по тегам