iptablesでRTSPを有効にする

iptablesでRTSPを有効にする

VLCを介してRTSPストリームを受信したいが実行しようとすると

sudo -u non_root_user cvlc -vvv -I dummy rtsp://ip:port/x.sdp 

私は得る:

Unable to determine our source address: This computer has an invalid IP    address: 0x0

ファイアウォールを無効にするとストリームをリッスンできるため、ポートが閉じているようです。 RTSPを受信できるようにiptablesの設定方法を問い合わせたいと思います。ありがとうございます。

ベストアンサー1

あなたは会ったことがありますか?醜いハッカー存在するライブ555、VLCライブラリはRTSPクライアント機能を提供するために使用されます。 (VLCのRTSPサーバーコードはVLCによって異なります。)ハッカーは、コンピュータがLAN上でどのIPを使用しているかを調べようとします。 (このハッキングは見苦しいですが、Live555がこれを行うより良い方法がわかりません。)

発生したエラーを修正するには、ファイアウォールでUDPポート15947を開く必要があります。これは、今回のハッキングにLive555が使用する「テストポート」です。

これを完了したら、ファイアウォールの動作方法に応じてストリームを受信するために別のポートを開く必要があります。 RTSPは単なるストリームです。コントロールストリームではないプロトコル物を配達する規約。 RTSPを実際のストリーミングプロトコルの「VCRボタン」(再生、停止、一時停止、早送り、巻き戻し...)と考えてください。 RTSP クライアントはストリームをネゴシエートします。物を配達する「再生」操作の一部としてサーバーに接続するポート。

その結果、クライアント(この場合はVLC)はSETUPRTSPコマンドの特定のポートにメディアを送信するようにサーバーに要求します。

SETUP rtsp://192.168.0.1:8554/42.ts/track1 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/2.0.2 (LIVE555 Streaming Media v2011.12.23)
Transport: RTP/AVP;unicast;client_port=60860-60861

つまり、VLC はポート 60860 および 60861 で RTP 経由でメディアを転送しようと RTSP サーバーに通知します。クライアントはこれらのポートをランダムに選択します。ファイアウォールがそれをブロックすると、RTSPネゴシエーションが成功してもストリーミングがブロックされます。

最良のシナリオでは、ファイアウォールがこのように高いポートをブロックしない場合、またはこの RTSP ネゴシエーションが検出された場合、ブロックを解除できるステートフルチェック機能があります。

ファイアウォールがそれをブロックしている場合は、次のようにデバッグできます。ワイヤーシャーク。 RTSPプロトコルを理解します。 RTSPストリームでパケットを右クリックし、「TCPストリームに従う」と言います。ポップアップウィンドウでRTSPSETUPコマンドを探します。次にWiresharkを再起動し、今回はこのポートでUDPトラフィックを見つけます。 (これはすべてRTSPクライアントがストリームをダウンロードし続けるか、ストリームをダウンロードしようとしている間に発生します。)

おすすめ記事