【Ubuntu・Debian】強制的にIPv4もしくはIPv6でパッケージをダウンロードさせる方法

UbuntuやDebianでは、APTが自動で必要なパッケージをダウンロードしてくれます。このとき、グローバルIPv6アドレスが割り当てられていれば、IPv6での接続が優先されます。

しかし、IPv6ではインターネットに接続できないネットワークに接続している場合、IPv6でのダウンロードが失敗してしまい、IPv4でリトライするまで余計な時間がかかってしまいます。このような場合、この記事で解説する方法でIPプロトコルを強制すると良いでしょう。

IPプロトコルを強制するコマンドラインオプション

aptコマンドのオプションに「-o Acquire::ForceIPv4=true」を指定することで、強制的にIPv4だけを使わせることができます。以下は、パッケージ情報を更新する場合の例です。

sudo apt -o Acquire::ForceIPv4=true update

逆に、IPv6接続を強制することもできます。以下のように実行します。ただし、IPv4にのみ対応しているアーカイブサーバーが設定されている場合はエラーとなります。

sudo apt -o Acquire::ForceIPv6=true update

設定ファイルでIPプロトコルを強制する

毎回オプションを入力するのは面倒なので、常にIPv4を強制したい場合は、以下のコマンドを実行して「/etc/apt/apt.conf.d/99force-ipv4」に設定を書き込むと良いでしょう。

echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

このファイルを作成することで、aptコマンドを実行するたびに長いオプションを指定する必要がなくなります。