Tracerouteには-i
ロゴがあります。
-i
インターフェイスは、--interface=interface
Tracerouteがパケットを送信する必要があるインターフェイスを指定します。デフォルトでは、インターフェイスはルーティングテーブルに基づいて選択されます。
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
ことができます(十分な定数で検索した後)。十分な定数以降)ファイルが含まれます。setsockopt
setsockopt-listen