機械翻訳について
この記事の一部は DeepSeek の支援を受けて翻訳されています。訳文には不正確な箇所が含まれる場合があり、言語や文化の違いにより、一部の特有の用語や文化的背景が理解しにくいことがあります。正確な表現を確認したい場合は原文をお読みください。文化的背景や内容についてご不明な点があれば、サイドバーの連絡先からお気軽にお問い合わせください。ご説明します。
VPSを使い始めたばかりの多くの初心者が直面する問題があります。プロバイダーの管理画面でIPv4アドレスと/64単位のIPv6アドレスが割り当てられているのに、OSではIPv4だけ、またはIPv6だけしか表示されず、管理パネルに「IPアドレスなし」と表示されることです。ここでは、一台のDebian 12 VPSを「ネットワーク情報なし」の状態からIPv4+IPv6が正常に有効になるまでの過程を、ステップバイステップで記録します。これから始める方の参考になれば幸いです。
事前準備:プロバイダーから提供される情報の確認
作業を始める前に、プロバイダーの管理画面であなたに割り当てられたネットワーク情報を確認しておく必要があります:
- IPv4 アドレスとサブネットマスク(例:
xxx.xxx.xxx.xxx/24)、および対応するデフォルトゲートウェイ。 - IPv6 プレフィックス(通常は
/64、例:2a00:abcd:1234:5678::/64)。これはネットワーク全体であり、直接使えるアドレスではないことに注意してください。
目的は、このIPv6プレフィックスから任意のアドレスを1つ選び(例: 2a00:abcd:1234:5678::1/64)、VPSに割り当てることです。/64 プレフィックスをそのままアドレスとして使わないでください。これは多くの初心者が犯しがちなミスです。
ステップ1:VPSに接続し、ネットワークインターフェイスを確認する
SSH または同等のツールで VPS にログインします。最初にサーバーのネットワークインターフェイス名を確認します:
ip -o link
以下のような出力が表示されます:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
ここで表示されている eth0 がネットワークインターフェイス名です。もし enp1s0 や ens3 など別の名前が表示された場合は、以降の設定をそれに合わせて読み替えてください。
ステップ2:元の Netplan 設定を確認してバックアップする
Debian 12 ではネットワーク設定ツールとして Netplan が使われており、デフォルトの設定ファイルは通常 /etc/netplan/50-cloud-init.yaml にあります。まず内容を確認します:
cat /etc/netplan/50-cloud-init.yaml
ファイルに以下のような内容しか記述されていない場合:
network:
ethernets:
eth0:
dhcp4: true
version: 2
これはシステムが DHCP で IPv4 アドレスを自動取得していることを示しています。静的 IP が必要な VPS には適していないため、cp コマンドで元のファイルをバックアップします:
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
ステップ3:cloud-init のネットワーク設定を無効にする
多くのクラウドイメージでは、cloud-init によって Netplan 設定が自動生成されます。無効化しないと、再起動後にカスタム設定が上書きされる可能性があります。/etc/cloud/cloud.cfg.d/ 内に設定ファイルを作成してネットワーク設定を無効にします:
sudo mkdir -p /etc/cloud/cloud.cfg.d
sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg > /dev/null <<'EOF'
network: {config: disabled}
EOF
このファイルにより、cloud-init はネットワーク設定の自動生成を行わなくなります。
ステップ4:IPv4 と IPv6 を統合した設定を記述する
以前に IPv6 用に一時的に作成した /etc/netplan/90-ipv6.yaml があれば削除します:
sudo rm -f /etc/netplan/90-ipv6.yaml
続いて、/etc/netplan/50-cloud-init.yaml を作成または上書きして、同じインターフェイスに IPv4 と IPv6 の設定をまとめます。ここでは以下のように仮定します。あなたの IPv4 アドレスが 192.0.2.10/24、ゲートウェイが 192.0.2.1、IPv6 アドレスが 2001:db8:abcd:1234::1/64、ゲートウェイが fe80::1 であるとします。
sudo tee /etc/netplan/50-cloud-init.yaml > /dev/null <<'EOF'
network:
version: 2
ethernets:
eth0:
match:
macaddress: aa:bb:cc:dd:ee:ff
set-name: eth0
addresses:
- 192.0.2.10/24
- 2001:db8:abcd:1234::1/64
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
- 2606:4700:4700::1111
- 2001:4860:4860::8888
routes:
- to: default
via: 192.0.2.1
- to: default
via: fe80::1
on-link: true
EOF
いくつか補足します:
match.macaddressにはネットワークインターフェイスの MAC アドレスを指定できますが、省略してset-name: eth0だけを使うこともできます。addressesには IPv4 と IPv6 のアドレスをそれぞれ行を分けて記述します。nameservers.addressesで DNS サーバーを設定します。IPv4 と IPv6 の DNS を混在させることができます。- IPv6 のデフォルトゲートウェイ
fe80::1はリンクローカルアドレスであるため、on-link: trueの指定が必要です。
DHCP から静的設定への変更は、この手順と同様の方法で行えます。多くのオンラインチュートリアルでもよく説明されています。
ステップ5:ファイルのパーミッションを修正して設定を適用する
Netplan では設定ファイルのパーミッションが厳密でなければなりません。以下のコマンドで権限を修正します:
sudo chmod 600 /etc/netplan/*.yaml
次に、設定を生成して適用します:
sudo netplan generate
sudo netplan apply
netplan apply を実行した際に、以下のようなメッセージが表示されることがあります:
Cannot call openvswitch: ovsdb-server.service is not running.
これは Open vSwitch 関連のパッケージがインストールされているものの、サービスが起動していないために表示されます。通常の VPS では、この警告は無視して問題ありません。IP の有効化には影響しません。
ステップ6:アドレスとルーティングを確認する
設定が完了したら、以下のコマンドで IPv4 と IPv6 が読み込まれているか確認します:
ip addr show eth0
ip route
ip -6 route
IPv4 と IPv6 のアドレスがそれぞれ割り当てられ、デフォルトルートが存在することを確認できます。例:
inet 192.0.2.10/24
inet6 2001:db8:abcd:1234::1/64
...
default via 192.0.2.1 dev eth0
...
default via fe80::1 dev eth0 onlink
ステップ7:DNS 解決の問題に対処する
IP 設定後に ping は通るのにドメイン名の解決に失敗する場合があります。例:
curl -4 example.com
curl: (6) Could not resolve host: example.com
これは /etc/resolv.conf が存在しないか、壊れたファイルを指していることが原因かもしれません。手動で修正できます:
sudo rm -f /etc/resolv.conf
sudo tee /etc/resolv.conf > /dev/null <<'EOF'
nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 2606:4700:4700::1111
nameserver 2001:4860:4860::8888
EOF
修正後にテストを行います:
curl -4 ip.sb
curl -6 ip.sb
それぞれのコマンドで、あなたの IPv4 アドレスと IPv6 アドレスが返ってくれば、DNS は正常に動作しています。
ステップ8:パネル/サービスの再起動とまとめ
管理パネル(例: x-ui)を使用している場合、ネットワーク設定と DNS が正しく構成された後に、パネルサービスを再起動します:
sudo systemctl restart x-ui
その後、パネルを更新すると、多くの場合 IPv4 と IPv6 アドレスが正しく表示されるようになります。パネルが外部のインターフェースから位置情報を取得している場合は、DNS が外部ドメインを解決できることを確認してください。
まとめ
以上の手順によって、次の目標を達成しました。
- プロバイダーの管理画面から IPv4 と IPv6 の設定情報を取得し、IPv6 の
/64はネットワークプレフィックスであり、実際に使用するアドレスを選ぶ必要があることを理解した。 ip linkでネットワークインターフェイス名を確認し、状況に合わせて Netplan 設定を修正した。- cloud-init のネットワーク設定を無効にし、再起動による上書きを防止した。
- Netplan で IPv4 と IPv6 のアドレス、ゲートウェイ、DNS を同時に設定し、適切なパーミッションを付与した。
- 設定の適用後にアドレスやルート、接続性を確認し、致命的でないシステム警告は無視した。
- DNS ファイルの欠落による名前解決の失敗を修復し、外部ネットワークへのアクセスを正常化した。
プロセス全体は複雑ではありませんが、各ステップには注意が必要です。たとえば、IPv6 アドレスを選ぶ際に /64 プレフィックスそのものを使用しないこと、Netplan を修正したらまず generate してから apply すること、そしてパーミッションや Open vSwitch の警告が出たときは問題の本質を見極めることです。この記録が、あなたの VPS で IPv4 と IPv6 をスムーズに有効にする助けになれば幸いです。
