Ifconfigを実行すると、どのインターフェイスにもipv6アドレスが割り当てられていないことがわかります。 AF_INET6ソケットを作成しようとすると、アドレスファミリがサポートされていないというエラーが表示されます。 / proc/sys/net/inet6フォルダがありません。マシンはDebian 10(バスター)を実行します。 / etc/default/grubには、ipv6の無効化に関する行はありません。
$ uname -r
4.19.52.1.AMD64-smp
Ipv6を有効にする方法を教えてください。無効にする方法については多くの記事がありますが、有効にする方法はありません。
LinuxでIPv6を無効にする方法はたくさんあるので、それらすべてをチェックする必要があります。
まず、カーネルのバージョンがDebian10標準のAMD64カーネルとまったく同じようには見えません。カスタムカーネルを使用している場合、カーネルのコンパイル時にIPv6が無効になっている可能性があります。その場合、カーネルを再コンパイル(または別のカーネルに切り替える)して有効にする必要があります。
grep CONFIG_IPV6 /boot/config-$(uname -r)
を実行して、内容を確認してください。応答に行が含まれている場合:
# CONFIG_IPV6 is not set
次に、現在のカーネルでは、コンパイル時にIPv6サポートが無効になっています。
応答に行が含まれている場合:
CONFIG_IPV6=m
次に、IPv6サポートがカーネルモジュールとしてコンパイルされます。
代わりに行がある場合:
CONFIG_IPV6=y
次に、IPv6サポートがメインカーネルにコンパイルされます。この場合、IPv6を無効にする1つの方法は、ブートオプションipv6.disable=1
をカーネルコマンドライン(/etc/default/grub
内)に追加することですが、すでに確認済みであると述べています。
ルートとしてmodprobe -c |grep "options ipv6"
を実行してください。応答に行が含まれている場合:
options ipv6 disable=1
次に、IPv6はカーネルモジュール構成によって無効になり、/etc/modprobe.d
のファイルの1つにその行があります。
この場合にIPv6を再度有効にするには、その行を見つけてコメント化し、ルートとしてupdate-initramfs -u
を実行して、IPv6が初期起動時に無効にならないようにします。 。
(理論的には、無効化オプションをコメントアウトした後にipv6
をアンロードおよび再ロードするだけで十分ですが、モジュール間の依存関係のため、再起動せずに実際に実行するのは難しい場合があります。)
Sysctl設定も確認する必要があります。
grep "disable_ipv6" /etc/sysctl.conf /etc/sysctl.d/*.conf
出力に次のような行が含まれている場合、sysctl設定によってIPv6が無効になっています。
net.ipv6.conf.<something>.disable_ipv6 = 1
ここで、<something>
は、単語all
またはdefault
、あるいは特定のネットワークインターフェースの名前である可能性があります。再度有効にするには、disable_ipv6
行をコメントアウトし、rootとしてsysctl -p
を実行してから、再起動します(またはネットワークインターフェイスを再構成します)。