LoginSignup
0
0

Windows (WSL)で動いているpodmanマシンにポートフォワード

Last updated at Posted at 2023-12-03

目次

  1. はじめに
  2. 前提
  3. 手順
    3.1 Windows Defenderファイアウォールに受信の規則を追加
    3.2 Podmanマシンにポート転送
  4. 参考資料

1. はじめに

Windows環境にインストールされたPodmanのコンテナに対して、リモート端末からアクセスするために、ポートフォワードを設定します。本記事ではコンテナがポート8443と9443でhttpリクエストを待ち受けている場合の設定例を紹介します。

2. 前提

本記事で使った環境は次の通りです。

  • Windows 11 22H2(OSビルド 22621.2715)
  • WSL 2.0.9.0
  • Podman 4.8.0

3. 手順1) Windows Defenderファイアウォールに受信の規則を追加

検索窓にファイアウォールと入力してWindows Defenderファイアウォールを検索し、アプリを起動します。
image.png
画面左の受信の規則をクリックし、画面右の新しい規則をクリックします。
image.png
表示されたポップアップでポートをクリックします。
image.png
TCPをクリックし、特定のロカールポートをクリックしてWeb画面の待ち受けポート84439443を入力します。
image.png
接続を許可するをクリックします。
image.png
リモート端末の場所に応じてドメインプライベートパブリックをクリックします。(本記事ではプライベートが該当)
image.png
規則に名前を付けます。(本記事ではwatsonx.dataポート開放
image.png
受信の規則を登録できました。
image.png

3. 手順2) Podmanマシンにポート転送

PowerShellを起動し、Podmanマシンのシェルを起動します。そこでPodmanマシンのIPアドレスを確認します。本記事の環境では172.20.233.109でした。

PS C:\Users\xxxx> wsl -d podman-machine-default
[user@DESKTOP-XXXXXXX ~]$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:c3:ff:9d brd ff:ff:ff:ff:ff:ff
    inet 172.20.233.109/20 brd 172.20.239.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fec3:ff9d/64 scope link
       valid_lft forever preferred_lft forever

PowerShellを管理者として起動し、Windowsマシン(ホストOS)からPodmanマシン(ゲストOS)へのポートフォワードを設定します。下の実行例においてlistenaddressconnectaddressにそれぞれWindowsマシンのIPアドレス192.168.0.77とPodmanマシンのIPアドレス172.20.233.109を設定していますが、環境に合わせてIPアドレスやポート番号を読み替えてください。

PS C:\Windows\System32> netsh.exe interface portproxy add v4tov4 listenaddress=192.168.0.77 listenport=9443 connectaddress=172.20.233.109 connectport=9443
PS C:\Windows\System32> netsh.exe interface portproxy add v4tov4 listenaddress=192.168.0.77 listenport=8443 connectaddress=172.20.233.109 connectport=8443
PS C:\Windows\System32> netsh.exe interface portproxy show all
ipv4 をリッスンする:         ipv4 に接続する:
Address         Port        Address         Port
--------------- ----------  --------------- ----------
192.168.0.77    9443        172.20.233.109  9443
192.168.0.77    8443        172.20.233.109  8443

PS C:\Windows\System32> Test-NetConnection -ComputerName 192.168.0.77 -Port 9443
ComputerName     : 192.168.0.77
RemoteAddress    : 192.168.0.77
RemotePort       : 9443
InterfaceAlias   : イーサネット
SourceAddress    : 192.168.0.77
TcpTestSucceeded : True

PS C:\Windows\System32> Test-NetConnection -ComputerName 192.168.0.77 -Port 8443
ComputerName     : 192.168.0.77
RemoteAddress    : 192.168.0.77
RemotePort       : 8443
InterfaceAlias   : イーサネット
SourceAddress    : 192.168.0.77
TcpTestSucceeded : True

4. 参考資料

0
0
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
0
0