はじめに

PVE のデフォルトポートは 8006 ですが、これではドメイン名でアクセスする際に不便です。そのため、iptables ルールを追加して、443 ポートでリッスンし、8006 ポートへトラフィックを転送する方法を紹介します。

この方法により、システム設定を変更することなく、PVE を 443 ポートで動作させることができ、システムの安定性に影響を与えません。

iptables ルールの追加

Linux はネットワークサービスの起動時にネットワークインターフェースの設定を読み込み、if-pre-up.dif-post-up.d というフックを提供しています。

ここでは、if-post-up.d を選択し、ネットワークインターフェースが起動した後にカスタムルールを実行することで、ネットワークサービスの正常な起動を妨げないようにします。

手順

  1. 以下のファイルを編集します:
    vim /etc/network/if-post-up.d/iptables
  2. 以下の内容を追加します:
    #!/bin/bash iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8006
  3. 保存して終了後、networking サービスを再起動してルールを適用します。
    systemctl restart networking

ACME 自動証明書の設定

PVE には acme.sh コンポーネントが組み込まれており、少し設定するだけで使用可能です。

  1. データセンター -> ACME に進み、DNS 認証プラグインを追加します。
    例えば、ドメインプロバイダが Cloudflare の場合、CF の管理画面で Token を生成し、ここに入力します。
  2. データセンター -> NODE -> 証明書 に進み、ドメインを追加します。
    例として、PVE のドメイン名を pve.otokaze.me に設定します。

ドメインのバインド

この手順は簡単です。Cloudflare の管理画面で、pve.otokaze.me を PVE のローカル IP アドレスに向ける設定を行います。

数分待って設定が反映された後、ローカルネットワーク内で https://pve.otokaze.me にアクセスすることで PVE に接続できるようになります。


生きて生きて生きて生きて生きて。