−25%

Windows 年払い、10月31日まで。 プランを見る

EQVPS

ドメインを VPS に向ける方法(A、AAAA、www)

A と AAAA レコードでドメインを VPS に向け、www を設定し、dig で反映を確認して HTTPS を有効化。NAT プランでサイトを公開できない理由も解説します。

ドメインを買い、VPS もある。それなのにブラウザは「このサイトにアクセスできません」のまま。足りないのはほぼ必ず、2 つの DNS レコードと、正しいアドレスで本当に応答する Web サーバーです。レジストラから、きちんと動く HTTPS の鍵マークまでの道のりを一通り説明します。

始める前に:そのプランは Web のトラフィックを受けられますか?

訪問者はサーバーの 80 番と 443 番ポートに接続します。そのためには専用のパブリック IP を持つプランが必要です。NAT プランが転送するのは個別の SSH ポートだけなので、ドメインでサイトを公開できません。違いは専用 IP と NAT の比較記事で説明しています。小さなサイトなら Nano-IP で問題なく動きます。

1. サーバーのアドレスを確認する

IPv4 と IPv6 のアドレスは、ダッシュボードのサーバーページに表示されています。例ではドキュメント用のアドレスを使います。

2. DNS レコードを作る

ドメインの DNS を管理している場所(たいていはレジストラ)にログインし、次を追加します。

タイプ名前値TTL
A@203.0.113.10300
AAAA@2001:db8::10300
CNAMEwwwexample.com.300

@ はルートドメインを表します。300 秒のような短い TTL にしておけば、間違えても安く直せます。すべて動いたら 3600 に上げて構いません。

まだ IPv6 を使わないなら、AAAA レコードはいったん飛ばしてください。理由はステップ 5 の注意書きのとおりです。

3. DNS が応答するか確かめる

レジストラの「保存しました」を鵜呑みにせず、DNS に直接聞きます。

dig +short example.com A
dig +short example.com AAAA
dig +short www.example.com
dig +short example.com A @1.1.1.1

最後の行は公開リゾルバーに問い合わせるので、訪問者が見る結果に近くなります。自分の IP が返ってくれば DNS は完了です。

4. サーバーに応答させる

nginx をインストールしてポートを開けます。

apt update && apt install -y nginx
ufw allow 80/tcp
ufw allow 443/tcp

http://example.com を開くと、nginx のウェルカムページが表示されるはずです。次に無料の証明書で HTTPS を追加します。

apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com

Certbot は nginx の設定を書き換え、HTTPS へのリダイレクトを設定し、証明書を自動で更新します。nginx の背後に本物のアプリを置くなら、HTTPS 付きリバースプロキシのガイドに従ってください。

5. IPv6 の落とし穴

これに引っかかる人はとても多いです。AAAA レコードを追加したのに、nginx は IPv4 でしか待ち受けていない。IPv6 の訪問者(多くのモバイル回線)はまず IPv6 アドレスを試して失敗します。server ブロックに両方の行があるか確認してください。

listen 80;
listen [::]:80;

Ubuntu の nginx の既定設定には最初から [::] が入っていますが、自作の設定ではよく抜け落ちます。IPv6 が使えるマシンからテストしましょう。

curl -6 -I https://example.com

よくあるトラブル

逆引き DNS について

A と AAAA は名前から IP への対応です。逆引き DNS(PTR)はその逆で、レジストラではなくダッシュボードで設定します。必要になるのはメールや、それをチェックするサービスがある場合だけです。PTR のガイドで扱っています。

初めてサイトを公開するなら、Web サイトの活用例ページがプラン選びの参考になり、ネットワークのドキュメントには各プランに割り当てられるアドレスがまとまっています。

よくある質問

DNS の変更が反映されるまでどのくらいかかりますか?

たいていは数分です。変更したレコードは古い TTL が切れた時点でどこからでも見えるようになり、TTL が 300 なら 5 分です。取得したばかりのドメインは、レジストリがネームサーバーを公開するまでもう少しかかることがあります。

AAAA レコードは必要ですか?

Web サーバーが IPv6 で待ち受けている場合だけです。AAAA を追加したのに nginx が IPv4 でしか待ち受けていないと、IPv6 の訪問者は接続エラーになります。'listen [::]:80' と '[::]:443' を設定するか、AAAA を追加しないかのどちらかにしてください。

www は CNAME と A レコードのどちらにすべきですか?

どちらでも動きます。ルートドメインへの CNAME にしておけば、IP が変わってもレコード 1 つの更新で済みます。証明書が両方の名前をカバーしていることだけ確認してください。

NAT プランでサイトを公開できますか?

直接はできません。NAT プランが転送するのは個別の SSH ポートだけなので、訪問者は 80 番と 443 番ポートに届きません。自分のドメインでサイトを公開するには専用 IP のプランが必要です。

逆引き DNS は同じものですか?

違います。A と AAAA は名前を IP に対応づけ、逆引き DNS(PTR)は IP を名前に対応づけます。PTR が重要なのは主にメールサーバーで、設定はレジストラではなくダッシュボードで行います。

コメント

まだコメントはありません。最初になりましょう。

コメントを残す

コメントは表示される前にモデレートされます。