まず、
システム起動後にコマンドラインからこのコマンドを実行すると、目的のsysctl net.ipv6.conf.all.disable_ipv6=1
結果が得られます。 IPv6は実際に無効になっています。
再起動後もこの動作が続く問題を修正しました。
これを行う方法の提案を見つけるのは簡単です。通常、net.ipv6.conf.all.disable_ipv6=1
ファイルを/etc/sysctl.d/
sysctl自体内のディレクトリまたは設定ファイルに配置することに関連しています。つまり、/etc/sysctl.conf
言及されている他の方法には追加が含まれます。
GRUB_CMDLINE_LINUX="ipv6.disable=1"
到着/etc/default/grub
たとえば、ここで言及した内容は次のとおりです。
https://serverfault.com/questions/660979/how-to-disable-ipv6-support-in-linux-entirely
私はこれらすべてを試しましたが、うまくいきません。ifconfig
インターフェイスが IPv6 を使用するように設定されていることを明確に示します。同様に、起動後にmanualを実行すると、期待sysctl
どおりに無効になります。
sysctl -p
私にとっては何も動作しません。上記のようにコマンドをそのまま作成するだけです。
sysctl
また、にコマンドを入れてみました/etc/rc.local
。そこに置くことができる他のコマンドを観察すると、正しく機能することがわかります。しかし処刑されたにもかかわらず効力を発揮できないようです。
all.disable_ipv6
また、default.disable_ipv6
(enp0s3.disable_ipv6
enp0s3が実際に私のEthernetインターフェイスであることを確認しました)だけでなく、他のコマンドも試しました。
これは少し似ているようです。https://bugs.launchpad.net/ubuntu/+source/linux/+bug/997605私にはなぜこれが起こるのかわかりません。他のシステムで私がしなければならなかったのは、/etc/sysctl.d/にファイルを保存することだけだったと確信しています。
私が試したことに加えて、この機能を無効にする1つの方法は、IPv6サポートなしでカーネルを手動で再コンパイルすることです。しかし、これはあまりにも複雑で信頼できず、実行し維持するためにはあまりにも多くの作業が必要でした。
ベストアンサー1
長い間何百ものDebian仮想マシンを管理してきたDebianシステム管理者として、私はIPv6を無効にするためにsysctl + kernel設定を発行するだけで仮想マシンを殺すのに十分であると確信しています。
あなたのシナリオで問題は、編集だけでは/etc/default/grub
カーネルにパラメータを適用するのに十分ではないということです。
また、次のことを行う必要があります。
sudo update-grub2
次に、再起動し、IPv6を無効にするカーネルパラメータが適用されるようにします。
ところで、実行時にどのパラメータがカーネルに渡されるかを確認できます。
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.10.5-antix.3-amd64-smp root=UUID=00c17984-859f-4197-8bd8-b346ddd092bd ro iommu=1 intel_iommu=on iommu=pt ipv6.disable=1 intremap=no_x2apic_optout radeon.modeset=0
また、@schweikが正しく指摘したように、IPv6を正常に終了した後にコンパイルされた場合、またはIPv6の特定の設定を持つ複数のデーモンの設定を再度訪問する必要があるかもしれません。システムを起動するときは、IPv6関連のエラーメッセージおよび/またはエラーログに注意してください。
PS また、Arm または MIPS アーキテクチャでは通常 grub がなく、他のファイルを編集する必要があります/etc/default/grub
。しかし、編集している場合は、すでにグラブがインストールされているとします。