解決策 1:
IRC で少し話し合った結果、Linux カーネルは ipv4 と ipv6 の間で一部のコードを共有しているため、ipv4 を完全に無効にすることは完全に不可能になる可能性があるというのが一般的な意見です。 試すことができます ipv4 部分なしでカーネルをコンパイルしますが、この場合 ipv6 はコンパイルされない可能性があります (しかし、試してみるのを妨げるものは何もありません!)。
私の知る限り、インターフェイスからipv4アドレスを削除できますが、現時点ではipv4を完全に無効にすることはできないと思います。
編集: make menuconfig
を簡単にチェックした後 カーネル 2.6.36 では、TCP/IP スタック全体 (つまり ipv6) を無効にせずに ipv4 を無効にする方法を見つけることができませんでした。
解決策 2:
これが開発者向けである場合は、LD_PRELOAD を使用して、単純にエラーを返す (または、曜日やその他の外部基準に応じて実際のエラーを呼び出す) スタブ関数を含む改ざんされたライブラリを使用して、「ライブラリ介入」を使用できます。
解決策 3:
IPv4 を完全に無効にすることはできないと思いますが、目的によっては、iptables
を使用してすべての IPv4 トラフィックをドロップします。 十分でしょう?
このようなものがうまくいくはずです。 IPv4 経由でアクセスしているため、どのマシンでもテストしていません。
sudo iptables -I INPUT -j DROP
sudo iptables -O OUTPUT -j DROP