Как настроить обратный 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 к устройству. Однако это не работает по двум причинам:
- Для интерактивного пользовательского интерфейса ввод по существу буферизуется до тех пор, пока я не нажму return.
- Весь мой вклад возвращается ко мне. В реальной жизни устройство должно повторять вводимые мной символы.
Как правильно это сделать?
2 ответа
Я нашел решение. Пакет Python PySerial имеет класс rfc2217. У них есть пример приложения, которое работает как сервер telnet:
https://pyserial.readthedocs.org/en/latest/examples.html
$ python rfc2217_server.py /dev/tty.serial
открывает порт 2217, который позволяет Telnet для подключения. Это именно то, что я хотел.
Самый простой способ:
telnet
(или скорееssh
) к вашему Mac- введите свой
screen /dev/cu.USBserial
команда
Теперь, если вы не хотите подключаться к своему компьютеру Mac напрямую через com-порт или разрешать другим делать это и ничего больше, вот способ:
- Создайте выделенного пользователя на вашем Mac. Давайте назовем это "comport" и войдем как этот пользователь.
Создайте скрипт подключения для этого пользователя. Создайте файл с именем
/Users/comport/log2com.sh
и вставьте в него эти строки:#!/bin/bash /usr/bin/screen -R /dev/cu.USBserial
Разрешите выполнение сценария, выполнив эту команду в вашем терминале:
chmod +x /Users/comport/log2com.sh
Наконец, установите этот скрипт как оболочку входа вашего пользователя. Для этого в Системных настройках> Пользователи и группы в списке пользователей щелкните правой кнопкой мыши пользователя и выберите "Дополнительные параметры". Затем в поле "shell" введите
/Users/comport/log2com.sh
и нажмите ОК.
Вот и все. Теперь вы можете Telnet (я бы рекомендовал ssh
!) к этому логину на вашем Mac, чтобы попасть прямо на экран.
Обратите внимание, что для выхода вам нужно сделать это на экране (обычно Ctrl+A, затем :quit
Вернуться).
Протестировано это на OSX 10.10.5. Дайте мне знать, если это сработало для вас.