このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
wsl2:interop [2020/12/27 11:56] y2sunlight [WLS2の仮想ネットワーク] |
wsl2:interop [2020/12/27 20:17] (現在) y2sunlight [WLS2の仮想ネットワーク] |
||
---|---|---|---|
行 79: | 行 79: | ||
{{ : | {{ : | ||
- | * TODO1 | + | WSL2は、[[https:// |
- | * TODO2 | + | |
- | * TODO3 | + | |
- | * TODO4 | + | |
- | WSL2は、[[https:// | + | ホストマシンとゲストマシンの間にはHyper-Vの仮想ネットワークが構築されます。この仮想的ネットワークは、ホストマシンと仮想マシンが共に接続した状態を作ります。 |
- | この仮想的ネットワークには、仮想マシンとホストOSが共に接続した状態を作る。また、Windows NAT(WinNAT)機能を設定することで、仮想マシン側からホストWindowsのインターネット接続を利用することも可能だ。 | + | WSL2を起動すると、「vEthernet(WSL)」という仮想ネットワークに接続するホスト側のネットワークアダプター(NIC)が作られますが、仮想ネットワークを構成している仮想スイッチは、ホストOSのネットワーク機能で見ることはできません。 |
- | WSL 2を起動すると、[コントールパネル]-[ネットワークと共有センター]-[アダプター設定の変更]に、「vEthernet(WSL)」という「Hyper-V Virtual Ethernet Adapter」が表示されるようになる。これがWSL 2用の内部ネットワークに接続するホストWindows側のネットワークアダプターになる。 | + | 仮想ネットワークのIPアドレスはプライベートアドレスが割り当てられ、ホストOSの再起動によって変更されます。 |
- | WSL 2を起動するとWin32側(ホストWindows側)に「vEthernet(WSL)」という仮想ネットワークアダプターが表示されるようになる。 | + | > 複数のWSL2ディストリビューションは同じネットワーク名前空間を使用し、ネットワークの分離はありません。'' |
- | Hyper-Vの仮想ネットワークや仮想スイッチ自体は、ホストWindowsのネットワーク関連の機能では見ることができない。そもそもWindows 10には、Windows VistaやWindows 7にあったネットワーク(ネットワークフルマップ)を表示させる機能がなく、ネットワークに接続しているNIC(ネットワークアダプター)のみが見える状態だ。 | + | |
- | また、内部ネットワークに関しては、Windows NAT(WinNAT)を設定することで、仮想マシンからのインターネットアクセスが可能になる。 | + | === WSL2のリスニングポート |
- | なお、Hyper-Vの仮想ネットワークでは、デフォルトで「プライベートアドレス」が割り当てられる。プライベートアドレスとは、インターネット側には参加できないものの、社内LANのような組織内部のネットワークで自由に使用できる、特別なIPアドレスである。複数の仮想マシンが個別の仮想スイッチを使う可能性があるため、Windows 10のHyper-Vでは、IPv4アドレスとして「172.16.0.0~172.31.255.255」までのプライベートアドレスを使い、これを複数に分割して利用している。 | + | WSL2では、仮想マシン側でリスニングされているポート番号と同じポート番号を、ホスト側で動作しているwslhost.exeがリスニングします。 |
+ | 例えば、仮想マシン側でポート80をリスニングしていると、ホスト側でも wslhost.exe がポート80をリスニングします。そして、 wslhost.exe は、受け取ったパケットを仮想ホスト側の同じポート番号に転送します。つまり、ホスト側がlocalhostの(仮想ホスト側がリスニングしていると同じ)ポート番号にアクセスすると、仮想ホスト側のネットワークサービスからは、eth0からのアクセスのように見えます。 | ||
- | > 複数のWSL2ディストリビューションは同じネットワーク名前空間を使用し、ネットワークの分離はありません。'' | + | === localhost === |
+ | |||
+ | IPv4では、ネットワークアドレス '' | ||
+ | |||
+ | WSL2が稼働しているとき、仮想マシン上の特定のポート番号をリスニングしている、HTTPサーバなどのTCP/ | ||
\\ | \\ | ||
+ | |||
+ | |||
==== WLS2側からWindows側のネットワークにアクセスする ==== | ==== WLS2側からWindows側のネットワークにアクセスする ==== | ||
行 114: | 行 117: | ||
\\ | \\ | ||
- | ==== localhost ==== | ||
- | |||
- | > TODO: | ||
- | |||
- | \\ | ||
===== WindowsからのLinuxコマンドを実行する ===== | ===== WindowsからのLinuxコマンドを実行する ===== |