COMポートをリダイレクトする方法:完全なシリアルポート転送ガイド

このガイドでは、TCP/IPネットワーク経由でCOMポートをリダイレクトし、シリアルデバイスをコンピューターに直接接続されているかのようにリモートからアクセスする方法を学びます。物理および仮想COMポートを共有し、WindowsおよびLinuxシステム間でそれらを転送する方法を含め、サーバーとクライアントの両方の接続を設定するための明確なステップバイステップの手順が見つかります。最後まで読むと、シリアルポートフォワーディングの仕組み、シリアルハードウェアの到達範囲を拡張する方法、そしてこれがネットワーク化された環境でのリモートアクセスとデバイス管理をどのように簡素化できるかを理解できるようになります。

TCP/IP 経由で COM ポートをリダイレクト(Windows および Linux OS 用)

リモートでシリアルポートデバイスにアクセスするために、専用のCOM Port Redirectorソフトウェア(LinuxおよびWindowsオペレーティングシステム)を使用するシナリオは数多くあります。例えば、PC間の直接接続が不可能な場合に、ネットワーク経由でRS232ポートをリモートコンピュータへリダイレクトすることが挙げられます。

PCの近くにデバイスが物理的に存在しないものの、Telnetプロトコル(RFC 2217)をサポートするシリアルデバイスを使用する必要がある場合、プロ仕様のSerial Port Redirectorの助けを借りて、インターネットまたはLAN経由で共有した後、リモートで接続できます。

COMポートをTCP/IPに転送する方法を知りたいですか?以下はシンプルなステップバイステップガイドです:

ローカル(サーバー)コンピューターのCOMポートをリダイレクトする:

1. インストールしてCOM Port Redirectorアプリを起動します。メインメニューで[接続]>[新しいサーバー接続]を選択するか、ホームウィンドウで[サーバー接続]をクリックします。

新しいサーバー接続を選択

2. 接続の名前を選択します。

3. リモートクライアントPCと共有する必要があるCOMポートを選択します。

4. ネットワーク設定で:

  • クライアント接続を待ち受けるために使用するTCPポートを指定します。
  • このポートがファイアウォールで許可されており、他のアプリケーションによって使用されていないことを確認します。
  • COMデータをリダイレクトするプロトコルを選択します。Rawデータ伝送プロトコルまたはRFC 2217拡張付きTelnetプロトコルのいずれかです。

5. 作成ボタンをクリックしてください!

サーバー接続を作成

6. これを完了すると、TCP/IP ネットワーク経由でリモートクライアント接続に利用できるようにシリアルポートが利用可能になります。

リモート(クライアント)コンピューター上の COM ポートをリダイレクト:

1. プログラムを起動し、メインメニューで[接続]>[新規クライアント接続]を選択します。

接続を選択 > 新しいクライアント接続を選択

2. 作成する接続の名前を指定します。

3. 接続に使用するローカル COM ポートを選択します。

4. 仮想COMポートをシステムに作成するには、仮想ポートとして作成]オプションを有効にします。このポートは実際のCOMインターフェイスの動作をエミュレートし、クライアント側でリモートサーバーのポートとデータを交換するために使用されます。

注: 仮想シリアルポートを使用することにした場合は、実際のシリアルインターフェイスと通信する際の潜在的なデータ損失を防ぐために、厳密なボーレートエミュレーションオプションを有効にすることを推奨します。

5. データ伝送プロトコルを選択します。

6. 接続先のサーバーのコンピューター名または IP アドレスと、サーバー接続の作成時に選択した TCP ポートを入力します。

7. 「作成!をクリックしてください

クライアント接続を作成しています

これで完了です!これで、クライアントコンピューターは TCP/IP チャネルを介してサーバー PC に接続されました。つまり、サーバー側で共有されている COM ポートに接続したシリアルデバイスはどんなものでも、周辺機器がそのマシンに直接接続されているかのように、クライアントコンピューター上に表示されます。したがって、COM ポートリダイレクターはリモートマシンにシリアルポートを追加します。

ser2net を使用して Linux の COM ポートをリダイレクトする方法

注: Linux マシンでシリアルポートフォワーディングを簡単にセットアップする方法は、Serial Port Redirector を使うことです。.deb および .rpm パッケージで提供される GUI ソリューションで、インストールが簡単ですぐに使えます。このアプリは完全なクロスプラットフォームで、Windows から Linux へ、またその逆にもポートを共有できます。さらに、追加設定なしで Citrix 仮想環境でも動作します。

リポジトリですでに利用可能なフリーかつオープンソースの ser2net を使用して、2台のLinuxマシン間でCOMポートを転送する方法もあります。これは少し複雑です。

  1. 受信側デバイスに ser2net をインストールすることから始めます
    apt install ser2net
  2. /etc/ser2net.conf に次の行を追加して ser2net を設定します。
    受信ポートを指定します。また、/dev/ttyS0」は必要に応じて任意のシリアルポートに置き換えられます。
    <receiver port>:raw:400:/dev/ttyS0:57600 8DATABITS NONE 1STOPBIT
  3. これで、引数なしで ser2net を起動し、送信側コンピューターで作業を開始できます。socat をインストールします。
    apt install socat
  4. 受信側にリンクされる仮想デバイスを格納するディレクトリを作成します。
    mkdir ~/dev/ttyV0
  5. 次の引数で socat を実行します。
    socat pty,link=$HOME/dev/ttyV0,waitslave tcp:<receiver IP address>:<receiver port>
  6. 接続は minicom でテストできます。
    minicom $HOME/dev/ttyV0
  7. 開くと、minicom はコンソールのように動作し、リモートデバイスにテキストを送信します。


リモートシリアルポートを扱う方法はいくつかあります。1つの選択肢は、Linuxマシン上のCOMポートをマッピングし、Serial to Ethernet Connector を使用してネットワーク越しにリダイレクトすることです。前述のとおり、Electronic Team の COM ポートリダイレクタソフトウェアは、使用中に問題なく Windows と Linux の両方で利用できます。そのため、日常的な用途にはより優れていて、しかもよりシンプルな選択肢です。