25

netcat を使用してブロードキャスト メッセージを送信しようとしています。

私はファイアウォールを開いており、次のような通常のメッセージを送信しています。

  host: nc -l 192.168.1.121 12101
  client: echo "hello" | nc 192.168.1.121 12100

しかし、私はこのようなものを機能させることはできません。

  host: nc -lu 0.0.0.0 12101
  client: echo "hello" | nc -u 255.255.255.255 12100

正しいフラグを使用していますか? ホストは Mac 上にあり、クライアントは Linux 上にあることに注意してください。メッセージのブロードキャストに有効な例を教えてください。

ありがとう!

4

4 に答える 4

9

ブロードキャストしたいと言っているのではありません。これは/への-bオプションを使用して行われます。ncnetcat

nc -h 2>&1 | grep -- -b
-b          allow broadcasts
于 2016-12-02T21:58:53.960 に答える
3

申し訳ありませんが、私が間違っていると仮定している場合は、ファイアウォールが正しく設定されているとおっしゃいましたので、ホストとクライアントが同じサブネット上にないと推測していますか???

その場合、このファイアウォールがルーターとしても機能している場合 (またはパケットがルーターを通過する必要がある場合)、そのパケットは処理されますが、他のインターフェイスには転送されません。これを実現したい場合は、ダイレクト ブロードキャストを送信する必要があります。例えば; サブネット 192.168.1.0/24 の場合、ダイレクト ブロードキャストはサブネット内の最後の IP である 192.168.1.255 になります。次に、ファイアウォールは、192.168.1.0/24 へのルートがあり、ダイレクト ブロードキャストを転送するように設定されていると仮定して、そのブロードキャストを宛先または次のホップに転送します。ダイレクト ブロードキャストを転送するようにデバイスを構成する...そのドキュメントを参照する必要があります。Cisco IOS の場合、インターフェイスの下に「ipdirected-broadcast」と入力します。

255.255.255.255 は制限されたブロードキャストであり、ルーターを通過することはありません。それが存在するレイヤー 2 リンクのみを対象としています。

netcat の設定方法については、次のとおりです。

-l 0.0.0.0 12101 は、稼働していて IP アドレスが割り当てられているすべてのインターフェイスのポート 12101 でリッスンするように netcat に指示します。-u は必要ありません.netcatにunixドメインソケット、google IPCでリッスンするように指示しているためです:)(これがシナリオが機能しない最大の理由です。)

以下は、netcat 経由でブロードキャストを別のネットワークに転送するために機能するはずです。

サーバー: nc -l 0.0.0.0 12101
ホスト: エコー "こんにちは" | NC 192.168.1.255 12101

それが長引いていたり、探していたものから外れていたら申し訳ありません:)

于 2012-11-09T00:56:22.567 に答える