WSL2 で Ubuntu サーバーを構築し、外部から SSH 接続する方法

Windows 11 なら数分で完了! この記事では 「WSL2 とは何か」 という基本から、Ubuntu インストール → OpenSSH サーバー構築 → ポート転送 まで、すべてコマンド付きで解説します。


1. WSL2 とは?(1 分で理解)

  • WSL=Windows Subsystem for Linux の略。Windows 上で Linux をネイティブ実行できる公式機能。
  • WSL 2 は第 2 世代で、実際には軽量 VM(Hyper‑V)を裏側で動かすため 本物の Linux カーネル が動く。
  • WSL1 との違いは「完全なシステムコール互換」「I/O 性能が大幅向上」「Docker もそのまま動く」など。
  • VMware や VirtualBox と比べると、高速起動・低メモリ・簡単共有フォルダ が魅力。

2. 事前準備

  1. Windows 11 / Windows 10 22H2 以降。
  2. 管理者権限の PowerShell または Windows Terminal。

3. WSL2 と Ubuntu のインストール

PowerShell で実行

wsl --install                          # WSL 本体 + WSL2 カーネルを導入
wsl --install -d Ubuntu               # Ubuntu LTS を一発インストール
wsl -d Ubuntu                         # 手動起動(自動で開かない場合)

初回起動時のセットアップ

Ubuntu コンソールが開いたら、ユーザー名パスワード を 1 回だけ設定します。


4. OpenSSH サーバーをインストール&有効化

# Ubuntu 側
sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable ssh      # 再起動後も自動起動
sudo service ssh start         # SSHを起動

5. Windows 側でポート転送

Ubuntuに設定されているIPはWindowsからしかアクセスができないため、Windows PCのIPの特定のポートにアクセスしたらUbuntuのIPのSSHポートに転送して上げる必要があります。
ここでは、Windows PC の 2222/TCP に接続がきたら WSL 内の 22/TCP へ転送するようにします。

① WSL の IP を確認

wsl hostname -I    # 例: 172.20.76.253

② portproxy を作成

netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=22 connectaddress=172.20.76.253

これでWindows PC の 2222/TCP → WSL 内の 22/TCP へ転送されます。

③ ファイアウォールを解放

最後に、2222へのアクセスを許可します。

New-NetFirewallRule -DisplayName "WSL SSH" `
  -Direction Inbound -Protocol TCP -LocalPort 2222 -Action Allow

6. 接続テスト

LAN 内の別 PC から:

ssh <Ubuntu_user>@<Windows_IP> -p 2222

接続できればセットアップ完了です 🎉


7. まとめ

  1. WSL2 は “ほぼネイティブ” に Linux を動かせる Windows 標準機能。
  2. wsl --install で WSL2 + Ubuntu を一撃導入。
  3. Ubuntu 内で openssh-server を有効化。
  4. Windows の portproxyNew‑NetFirewallRule で 2222 ↔ 22 を橋渡し。
  5. ssh -p 2222 でどこからでも接続可能。

これで、従来の VMware や VirtualBox より軽量に Linux 開発環境を運用できます。ぜひお試しください!

コメント

タイトルとURLをコピーしました