4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2 + Nginx 環境構築:Windows からのアクセス設定ガイド(ポートフォワーディングの要否も解説)

Last updated at Posted at 2025-03-19

WSL2 上に構築した Nginx サーバーに、Windows の Web ブラウザからアクセスするための設定手順を、解説します。ポートフォワーディングの必要性についても補足で説明しています。

1. 前提条件

  • WSL2 (Windows Subsystem for Linux 2) が構築済みであること
  • Ubuntu などの Linux ディストリビューションが WSL2 にインストール済みであること
  • 基本的なターミナルの操作ができること

2. Nginx のインストールと起動 (WSL2)

まずは、WSL2 で起動した Linux ディストリビューションのターミナルを開き、Nginx をインストールします。

sudo apt update  # パッケージリストを更新
sudo apt install nginx  # Nginx をインストール

インストール中にパスワードを求められたら、WSL2 に設定したユーザーのパスワードを入力してください。

Nginx のインストールが完了したら、以下のコマンドで起動します。

sudo systemctl start nginx  # Nginx を起動

起動状態を確認するには、次のコマンドを実行します。active (running) と表示されれば正常に起動しています。

sudo systemctl status nginx  # Nginx の状態を確認

3. Windows ファイアウォールの設定

Windows のファイアウォールが Nginx のポート(通常は 80 番ポート)へのアクセスをブロックしている場合、アクセスを許可する必要があります。

  • Windows のスタートメニューから「Windows Defender ファイアウォール」を検索して開きます。
  • 「詳細設定」をクリックします。
  • 左側のメニューから「受信の規則」を選択します。
  • 右側の「操作」ペインから「新しい規則...」をクリックします。
  • 「規則の種類」で「ポート」を選択し、「次へ」をクリックします。
  • 「プロトコルおよびポート」で「TCP」を選択し、「特定のローカルポート」に「80」と入力し、「次へ」をクリックします。
  • 「操作」で「接続を許可する」を選択し、「次へ」をクリックします。
  • 「プロファイル」で、適用するネットワークの種類(通常はすべて)を選択し、「次へ」をクリックします。
  • 「名前」に「Nginx (TCP-In)」など、わかりやすい名前を入力し、「完了」をクリックします。

4. WSL2 の IP アドレスの確認

WSL2 のターミナルで以下のコマンドを実行して、WSL2 の IP アドレスを確認します。

ip addr | grep eth0 | grep inet | awk '{print $2}' | cut -d'/' -f1

出力された IP アドレス(例:172.22.128.1)をメモしておきます。

代替コマンド (上記でIPアドレスが取得できない場合):

hostname -I

スペース区切りでIPアドレスが複数表示される場合があります。基本的に最初のIPアドレスがWSL2のIPアドレスです。

5. Web ブラウザからのアクセス

Windows の Web ブラウザ(Chrome、Edge など)を開き、アドレスバーに以下の URL を入力してアクセスします。

http://[WSL2のIPアドレス]

例えば、WSL2 の IP アドレスが 172.22.128.1 だった場合、http://172.22.128.1 と入力します。

Nginx が正常に動作していれば、Nginx のデフォルトのウェルカムページが表示されるはずです。

6. ポートフォワーディングの要否と設定方法

通常、WSL2 は Windows とネットワークを共有するため、上記の手順でアクセス可能です。しかし、以下のケースではポートフォワーディングが必要になる場合があります。

  • Windows のファイアウォールが厳格に設定されている場合: ファイアウォール設定だけではアクセスできない場合。
  • 複雑なネットワーク構成の場合: VPN やプロキシなどを使用している場合。
  • 特定のポート番号を使用したい場合: Nginx が動作するポートとは異なるポートでアクセスしたい場合。

ポートフォワーディングを行うには、管理者権限で PowerShell を起動し、以下のコマンドを実行します。

# Nginx が WSL2 で 80 番ポートで動作している場合
# Windows の 8080 番ポートへのアクセスを WSL2 の 80 番ポートに転送する例

netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=(wsl ip addr | grep eth0 | grep inet | awk '{print $2}' | cut -d'/' -f1)

この設定を行うと、http://localhost:8080 または http://127.0.0.1:8080 で WSL2 上の Nginx にアクセスできます。

ポートフォワーディングを削除する場合は、以下のコマンドを実行します。

netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=0.0.0.0

7. DNS 設定 (オプション)

上記 IP アドレスでのアクセスに加えて、hosts ファイルを編集して任意のドメイン名(例:mysite.local)でアクセスできるようにすることも可能です。

  • Windows のエディタ(管理者権限で起動)で C:\Windows\System32\drivers\etc\hosts を開きます。
  • ファイルの末尾に [WSL2のIPアドレス] mysite.local のように追記して保存します。
  • ブラウザで http://mysite.local にアクセスします。

8. トラブルシューティング

  • ページが表示されない:
    • Nginx が起動しているか確認。
    • Windows のファイアウォールでポート 80 が許可されているか確認。
    • WSL2 の IP アドレスが正しいか確認。
    • 必要に応じてポートフォワーディングを設定。
  • エラーメッセージが表示される:
    • エラーメッセージの内容をよく読み、原因を特定。
    • Nginx のログファイル(/var/log/nginx/error.log)にエラーの詳細が記録されている場合があります。

まとめ

この記事では、WSL2 上に構築した Nginx サーバーに Windows からアクセスするための手順を詳細に解説しました。通常はポートフォワーディングは不要ですが、必要に応じて設定することで、より柔軟な開発環境を構築できます。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?