デバイスまたはインターフェイスフラグを持つNetcatはありますか?

デバイスまたはインターフェイスフラグを持つNetcatはありますか?

Tracerouteには-iロゴがあります。

-iインターフェイスは、--interface=interfaceTracerouteがパケットを送信する必要があるインターフェイスを指定します。デフォルトでは、インターフェイスはルーティングテーブルに基づいて選択されます。

pingこれも提供されます-I。 Netcatにはそのようなフラグはありません。簡単な解決策はありますかnc

ベストアンサー1

良い解決策インターネット猫:socat。このツールは何でもできますインターネット猫できることははるかに多いです。

Linuxでは、socatソケットオプションso-bindtodevice=と一致するオプションが提供されますSO_BINDTODEVICE

たとえば、インターフェイスにバインドされたTCPポート4444をリッスンします。veth0(オペレーティングシステムがこのインタフェースに関連するパスを使用するように強制します。)他のオプションは(OpenBSDバリアント)を使用するのと似ていますnc -k -l -p 4444

socat tcp4-listen:4444,so-bindtodevice=veth0,reuseaddr,fork -

たとえば、次のように確認できます。

$ ss -tln sport == 4444
State    Recv-Q   Send-Q     Local Address:Port      Peer Address:Port   
LISTEN   0        5          0.0.0.0%veth0:4444           0.0.0.0:*     

必要に応じてクライアントにバインドすることも、2つのソケットをパラメータとして使用する場合は、左右のソケットに別々にバインドすることもできます。


他の* NIX様オペレーティングシステムで同じ機能を達成する他の同等のソケットオプションがあることが知られており、明示的に実装されていない場合でも、通常とオプションを使用して有効にするsocatことができます(十分な定数で検索した後)。十分な定数以降)ファイルが含まれます。setsockoptsetsockopt-listen

おすすめ記事