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