お金をかけずにサーバーの勉強をしよう

Ubuntu 22.04の IPv6無効化

2022年11月1日

メニューへ戻る

こんにちは。

Ubuntu Server 22.04.1に Node.js 18.12.0をインストールしたのですが、npm install で npmリポジトリからモジュールを取り込もうとすると、時間がかかった上にエラーになってしまいます。

調べたところ事例はあって IPv6でリポジトリにアクセスした際に起きる問題のようでした。

私のISPが IPv6に対応していないからかも知れないし、Ubuntu 22.04だからかも知れないし、Node.js 18だからかも知れません。

ただ上記の事例の結論は、どうやら利用者側の OSかネットワークインフラを起因にしていて、Node.js側では何をできるものでもないということのようです。


というわけで、Ubuntu Server 22.04.1 で IPv6を恒久的に無効にするようにします。

元々 IPv6を使っていないので問題は無いはずなんですがね。


やり方は GRUBで初期値を与えるのと、systemctlコマンドでやる方法の2つらしいので GRUBでやります。

こちらの海外ブログのやり方でやりました。
How to Disable IPv6 on Ubuntu 22.04 LTS Jammy Jellyfish


/etc/default/grub ファイルを以下の通り編集します。

GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""
  ↓
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"

編集できたら、設定を有効化します。

subro@UbuntuServer2204:~$ sudo update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-52-generic
Found initrd image: /boot/initrd.img-5.15.0-52-generic
Found linux image: /boot/vmlinuz-5.15.0-48-generic
Found initrd image: /boot/initrd.img-5.15.0-48-generic
Found linux image: /boot/vmlinuz-5.15.0-47-generic
Found initrd image: /boot/initrd.img-5.15.0-47-generic
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
done

OSを再起動するとIPv6が使えなくなっています。

作業前後で ipコマンドの結果を取っておきました。

作業前

subro@UbuntuServer2204:~$ ip -6 address
1: lo:  mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens32:  mtu 1500 state UP qlen 1000
    inet6 2408:82:a8:0:20c:29ff:fe16:2222/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 14169sec preferred_lft 12369sec
    inet6 fe80::20c:29ff:fe16:2222/64 scope link
       valid_lft forever preferred_lft foreve

作業後

subro@UbuntuServer2204:~$ ip -6 address

何も出なくなりました。


なお、この後 Node.jsの npm install を試した所、上手く行くようになりました。


自宅環境で遊んでいる時は、使っていない IPv6が有効になっていてもどうでも良いのですが、仕事環境で明らかに IPv6がいらないということであれば、止めておいた方が良いのかも知れませんね。
この辺はネットワークに詳しい人に聞いてみないと何とも言えませんが。