Arch Linuxにて検証した手順になります。
なお、network管理には systemd-networkd を利用しています。
※「{{ }}」にて囲まれている部分は変数を表します(Jinja2などのテンプレートエンジンでもレンダリング可能なようにしてあります)。
-
root になる
$ su root
-
ipv6 を処理しない設定を行う
# echo -e "# Disable IPv6\nnet.ipv6.conf.default.disable_ipv6 = 1\nnet.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.{{ NICName }}.disable_ipv6 = 1\nnet.ipv6.conf.lo.disable_ipv6 = 1" > /etc/sysctl.d/50-ipv6-disabled.conf
-
hosts ファイルの ipv6 の設定をコメントアウト
# sed -i -r -e 's/^(::1)/# \1/' /etc/hosts
-
NICの設定ファイルに、ipv4 のみに制限する設定を行う
# echo -e "LinkLocalAddressing=ipv4\n" >> /etc/systemd/network/{{ NICName }}.network
-
再起動する
# reboot
ip a
を実行して inet6 の項目がなくなっていることを確認する。