Linuxのシリアルポートを介して通信されるパケットをスニッフィングするにはどうすればよいですか?
いくつかのオプションがあります:
sersniff は、2つのシリアルポート間でトンネリング/スニフする単純なプログラムです。
Serial to Network Proxy(ser2net) は、ユーザーがネットワーク接続からシリアルポートに接続する方法を提供します。
SerialSpy はシリアルパススルーデバイスとして機能します。 2つのシリアルポートで着信データをリッスンして転送し、デバイスが直接接続されているかのように動作します。また、ポートを通過するデータも記録します。
sercd はRFC 2217準拠のシリアルポートリダイレクタです。ネットワークを介してシリアルポートを共有できます。それはsredirdに基づいています。 RFC2217プロトコルはtelnetの拡張機能であり、通信ポートのパラメーターを変更できます。
SerLooK は、シリアル回線を経由するデータを検査するためのKDEアプリケーションです。定義されたポート(ポイントツーポイントモード)を介してデータを送受信し、それらを別々のビューに表示するバイナリターミナルとして機能できます。各ビューは、16進数、10進数、8進数、2進数、および生のASCIIでデータを表示するように構成できます。端末エミュレーションビューを介してI/Oを実行し、セカンダリポートを定義して、「Y」ケーブルを使用して2つの外部ホスト間のトラフィックを監視することもできます(スヌーパーモード)。
nullmodem は、擬似端末の仮想ネットワークを作成します。通常シリアルインターフェイスカードを必要とする2つのプログラムを接続するためのアダプターとして使用できます。
ttywatch 端末I/Oを監視、ログ、および多重化します。完全なログローテーションが組み込まれており、TelnetおよびローカルTTYポートを使用できます。
Serial line sniffer (slsnif)は、シリアルポートログユーティリティです。指定されたシリアルポートをリッスンし、このポートを通過するすべてのデータを双方向で記録します。
私は interceptty ( copy at GitHub )を試してみましたが、使用に成功しました。まず、目的のポートで実行しました。
interceptty /dev/ttyACM0
次に、テスト対象のプログラムを、インターセプトが作成した疑似ターミナル/dev/pts/5
に接続しました。
slsnif を使用しようとしましたが、エラーが発生しました。
Failed to open a pty: No such file or directory
このメーリングリストの項目 は、slsnifが現在のLinuxカーネルではおそらく使用されていない「レガシー」疑似端末(/dev/ttyp0
など)のみをサポートすることを示しています。
jpnevulator (debian packaged)または slsniff を使用してみてください。 slsniffは非推奨の端末エミュレーションモデルを使用していることに注意してください。