1

IP_TRANSPARENT ソケット オプションを使用しようとしています。しかし、このスコープでは「IP_TRANSPARENT」が宣言されていませんでした。そのコード (19) をコードで直接使用すると、「無効な引数」としてバインディング エラーが発生しました。このオプションをサポートするには、カーネルを再コンパイルする必要がありますか? その場合、カーネル 2.6.32 を使用します。カーネル パラメータ インターフェイスにオプションが見つかりませんでした。

何かご意見は?

ありがとう、

4

1 に答える 1

2

C ライブラリのヘッダー ファイルで定義されていない場合、値 19 を使用しても問題ありません。これが -EINVAL を返す原因ではありません。

ただし、これを機能させるには、いくつかのカーネル オプションを有効にする必要があります。ドキュメントを引用するには (カーネル ソース内の Documentation/networking/tproxy.txt):

この機能は、Linux 2.2 のような透過プロキシ サポートを現在のカーネルに追加します。これを使用するには、NETFILTER_TPROXY、ソケット マッチ、およびカーネル構成で TPROXY ターゲットを有効にします。ポリシー ルーティングも必要になるため、必ず有効にしてください。

詳細については、そのドキュメントを参照するか、オンラインでこちらを参照してください: http://www.mjmwired.net/kernel/Documentation/networking/tproxy.txt

于 2013-01-25T22:40:14.383 に答える