2011-02-11 11 views
1

tcpソケットのパラメータを変更する簡単な方法はありますか? 例: Server_programは10.0.0.1でeth0を使用していますが、再起動できません.1919.168.0.1のeth1でソケットを再作成する必要があります。私は他にもいくつかの問題はないと知っていますが、私が今見ているのは、カーネル内でソケットを "オンザフライ"に変更する可能性です。 アドバイスをありがとうございます。LinuxカーネルTCPソケットの変更

+0

プログラムは10.x IPにハードコードされていますか? Linusのようにポート/ IPを変更するためにメモリ内のソケットを変更することはできませんが、おそらくiptablesは内部的にリダイレクトを行うことができます。 –

+0

マークB: しかし、プログラムはinodeと接続します。右?私はプログラムを "保留中"にし、ソケット情報を変更してプログラム –

答えて

2

新しいソケットを開き、接続して同じ状態にするために必要な手順を実行してから、dup2()を使用して新しいファイルディスクリプタを新しいディスクリプタの複製に変換します。

+0

を実行する必要があります。もしこれを外部からやりたいのであれば、 'ptrace()'を使って必要に応じてターゲットプロセスをデバッグしてください。 – caf

関連する問題