このガイドは、自宅のプライベートIP環境にあるWindows PCに「7 Days to Die」のサーバーを構築した後、ConoHa VPSのグローバルIPを利用して外部に公開するための手順のまとめです。
※必要最低限の設定のみ行っておりセキュリティに関してはリスクがあるため必要に応じて各自ご対応ください。
全体の構成図
- プレイヤーはVPSの公開IPアドレスに接続します。
- VPSがiptablesを使い、ゲームの通信をVPNトンネルに転送します。
- **VPN (WireGuard)**トンネルを通して、通信が暗号化されて自宅のPCに届きます。
- 自宅のPCで稼働しているゲームサーバーが応答します。
ステップ1:ConoHa VPSの準備とファイアウォール設定
-
VPSを契約し、OSをクリーンインストールします。
- OS: Ubuntu 22.04 LTS
-
ConoHaコントロールパネルでファイアウォールを設定します。
- 左メニュー「ネットワーク」→「ファイアウォール」で新しいセキュリティグループを作成します。(例:
7dtd-vpn
) - 以下の4つの受信(In)ルールを追加します。
- TCPポート
22
(SSH接続用) - UDPポート
51820
(WireGuard用) - TCPポート
26900-26902
(7 Days to Die用) - UDPポート
26900-26902
(7 Days to Die用)
- TCPポート
- 作成したセキュリティグループを、対象のVPSに適用します。
- 左メニュー「ネットワーク」→「ファイアウォール」で新しいセキュリティグループを作成します。(例:
ステップ2:VPS側のWireGuardサーバー構築
VPSにSSHで接続し、以下の設定を順番に行います。
- システムを最新化し、必要ツールをインストールします。
sudo apt update -y && sudo apt upgrade -y
sudo apt install wireguard curl -y
- もし
apt
がロックされているエラーが出た場合は、バックグラウンドの自動更新が終わるまで数分待ってから再試行します。
-
【自動構築スクリプト】WireGuardの全設定を一括で行います。
以下の大きなコードブロックをそのままコピーし、VPSのターミナルに貼り付けてEnterキーを押します。
# === スクリプト開始 ===
IFACE_NAME="eth0"
CLIENT_ID="2"
# 内部ファイアウォール(UFW)を無効化
sudo ufw disable
# IPフォワーディングを有効化
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.conf
sudo sysctl -p
# WireGuardの設定ディレクトリと鍵ペアを作成
sudo mkdir -p /etc/wireguard
cd /etc/wireguard
sudo wg genkey | sudo tee server_private_key | sudo wg pubkey | sudo tee server_public_key
sudo wg genkey | sudo tee client${CLIENT_ID}_private_key | sudo wg pubkey | sudo tee client${CLIENT_ID}_public_key
sudo chmod 600 *_private_key
# サーバー用の設定ファイル (wg0.conf) を作成
sudo tee /etc/wireguard/wg0.conf > /dev/null <<EOF
[Interface]
PrivateKey = $(sudo cat server_private_key)
Address = 10.10.10.1/24
PostUp = iptables -t nat -A POSTROUTING -o ${IFACE_NAME} -j MASQUERADE
ListenPort = 51820
[Peer]
PublicKey = $(sudo cat client${CLIENT_ID}_public_key)
AllowedIPs = 10.10.10.${CLIENT_ID}/32
EOF
# クライアント用の設定ファイル (client2.conf) を作成
sudo tee /etc/wireguard/client${CLIENT_ID}.conf > /dev/null <<EOF
[Interface]
PrivateKey = $(sudo cat client${CLIENT_ID}_private_key)
Address = 10.10.10.${CLIENT_ID}/24
DNS = 1.1.1.1
[Peer]
PublicKey = $(sudo cat server_public_key)
Endpoint = $(curl -4 ifconfig.io):51820
AllowedIPs = 10.10.10.0/24
PersistentKeepalive = 25
EOF
echo "✅ サーバー側のWireGuard設定が完了しました。"
# === スクリプト終了 ===
- WireGuardサービスを起動します。
sudo systemctl enable --now wg-quick@wg0
ステップ3:Windows PC側のクライアント設定
- WireGuard for Windowsをクリーンインストールします。
- もし過去にインストールしている場合は、一度アンインストールしてからPCを再起動します。
- 公式サイト https://www.wireguard.com/install/ から最新版をダウンロードしてインストールします。
- 設定ファイルをVPSから取得し、Windowsにインポートします。
- VPSで以下のコマンドを実行し、クライアント用の設定内容を表示させます。
sudo cat /etc/wireguard/client2.conf
- 表示された内容をすべてコピーし、PCのメモ帳に貼り付けて
my-vps.conf
のような名前で保存します。 - WireGuardアプリを起動し、「トンネルの追加」→「ファイルからトンネルをインポート...」で、保存した
.conf
ファイルを選択します。
AllowedIPs
の設定を修正します。
- インポートしたトンネルを選択し、「編集」ボタンを押します。
-
AllowedIPs
の行を、以下のように修正します。AllowedIPs = 10.10.10.0/24
- 保存して、トンネルを「有効化」します。
- 接続をテストします。
- PCのコマンドプロンプトで
ping 10.10.10.1
を実行し、応答があることを確認します。
ステップ4:VPS側のポートフォワーディング設定(最後の仕上げ)
VPNトンネルが完成したら、最後にゲームの通信をそのトンネルに流すためのルールをVPSに設定します。
-
iptablesルールを設定します。
以下のコマンドをVPSで1行ずつ実行してください。
ゲーム通信の宛先を自宅PC(10.10.10.2)に書き換える (DNAT)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 26900:26902 -j DNAT --to-destination 10.10.10.2
sudo iptables -t nat -A PREROUTING -i eth0 -p udp --dport 26900:26902 -j DNAT --to-destination 10.10.10.2
転送の際の送信元IPをVPSのVPN IP(10.10.10.1)に書き換える (SNAT) - これが最重要
sudo iptables -t nat -I POSTROUTING 1 -o wg0 -j SNAT --to-source 10.10.10.1
上記の転送を許可する (FORWARD)
sudo iptables -F FORWARD
sudo iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT
sudo iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT
- 設定を保存して永続化します。
sudo apt install iptables-persistent -y
インストール中に保存を確認されたら を選択
sudo netfilter-persistent save
ステップ5:ゲームサーバーの起動と接続
- Windows Defender ファイアウォールの設定
- 「セキュリティが強化された Windows Defender ファイアウォール」を開きます。
- 「受信の規則」に、TCPとUDPそれぞれのポート
26900-26902
を許可するルールを手動で作成します。プロファイルは「プライベート」「パブリック」の両方にチェックを入れます。
- サーバーの起動と接続
- ご自宅のWindows PCで7 Days to Dieサーバーを起動します。
- プレイヤーは、ゲームクライアントの「IPで接続」機能で、あなたのVPSの公開IPアドレスを入力して接続します。