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で接続できます。ただし、次の2つの理由で機能しません。
それを行う正しい方法は何ですか?
私は解決策を見つけました。 Python PySerialパッケージにはrfc2217クラスがあり、Telnetサーバーとして機能するサンプルアプリがあります。
https://pyserial.readthedocs.org/en/latest/examples.html
$ python rfc2217_server.py /dev/tty.serial
telnetが接続できるようにするポート2217を開きます。それはまさに私が欲しかったものです。
最も簡単な方法:
telnet
(またはssh
)screen /dev/cu.USBserial
コマンドを入力しますここで、Macに直接comポートに接続したくない場合、または他の人にそれだけを許可したくない場合は、次の方法があります。
このユーザーの接続スクリプトを作成します。 /Users/comport/log2com.sh
という名前のファイルを作成し、次の行をそのファイルに挿入します。
#!/bin/bash
/usr/bin/screen -R /dev/cu.USBserial
ターミナルで次のコマンドを実行して、スクリプトの実行を許可します。
chmod +x /Users/comport/log2com.sh
最後に、このスクリプトをユーザーのログインシェルとして設定します。このためには、[システム環境設定]> [ユーザーとグループ]の[ユーザー]リストで、ユーザーを右クリックして[詳細オプション]を選択します。次に、[シェル]フィールドに/Users/comport/log2com.sh
と入力し、[OK]をクリックします。
それでおしまい。これで、Macでこのログインにtelnet(ssh
!をお勧めします)して直接画面にアクセスできます。
終了するには、画面の方法で行う必要があることに注意してください(通常は Ctrl+A、次に:quit
Return)。
OSX10.10.5でこれをテストしました。それがあなたのために働いたかどうか私に知らせてください。