これをブートローダーのカーネル行に追加して、IPv6を完全に無効にします。
ipv6.disable=1
Grubを使用している場合(独自のブートローダーをインストールしていない場合、Grubを使用している場合)、カーネル行は次のようになります。
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ipv6.disable=1
カーネル行に何かを追加するための推奨されるアプローチGRUB_CMDLINE_LINUX_DEFAULT
は、/etc/default/grub
ファイル内の変数に目的のカーネルパラメーターを追加することです。
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
それをに追加したら/etc/default/grub
、次のコマンドを実行してを再生成しますgrub.cfg
:
sudo grub-mkconfig -o /boot/grub/grub.cfg
または、ipv6.disable_ipv6=1
代わりに追加すると、IPv6スタックは機能し続けますが、IPv6アドレスはネットワークデバイスに割り当てられません。
または
sysctlを介してIPv6を無効にするには、次を/etc/sysctl.conf
ファイルに配置します。
net.ipv6.conf.all.disable_ipv6 = 1
/etc/hosts
ファイル内のIPv6ホストをコメントアウトすることを忘れないでください。
#::1 localhost.localdomain localhost
注意
sysctlメソッドには再起動が必要な場合があり、カーネルラインアプローチには必ず再起動が必要です。
または
ipv6 を一時的に無効にするには:
sysctl -w net.ipv6.conf.all.disable_ipv6 = 1
するために、一時的にそれを有効にします。
sysctl -w net.ipv6.conf.all.disable_ipv6 = 0
したがって、特定の条件でipv6を無効にする必要がある場合は、次の行に沿ってbashスクリプトを作成します。
#!/bin/bash
ipv6_disabled="$(sysctl net.ipv6.conf.all.disable_ipv6 | awk '{print $NF}')"
if (connected_to_vpn &> /dev/null); then
(($ipv6_disabled)) || sysctl -w net.ipv6.conf.all.disable_ipv6=1
else
(($ipv6_disabled)) && sysctl -w net.ipv6.conf.all.disable_ipv6=0
fi
注意
/etc/hosts
前の方法でお勧めしたように、この方法でもファイル内のipv6ホストを無効にする必要があるかもしれません。