WSL2のIPアドレスは再起動すると変わってしまうため、疑似的に固定IPを使用する方法を備忘録として残しておく。
IP追加手順(手動)
以下の手順をPowerShellで実行する。(PowerShellは管理者として実行すること。)
まず、InterfaceIndexの確認。
Get-NetAdapter -IncludeHidden
結果から以下の行を見つける。ifIndexが必要。
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
vEthernet (WSL) Hyper-V Virtual Ethernet Adapter 20 Up xx-xx-xx-xx-xx-xx 10 Gbps
以下のコマンドでIPアドレスを追加する。IPアドレスは任意でOK。InterfaceIndexは上で確認したものを設定する。
New-NetIPAddress -IPAddress 172.29.3.50 -PrefixLength 24 -InterfaceIndex 20
IPAddress : 172.29.3.50
InterfaceIndex : 20
InterfaceAlias : vEthernet (WSL)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Tentative
ValidLifetime :
PreferredLifetime :
SkipAsSource : False
PolicyStore : ActiveStore
IPAddress : 172.29.3.50
InterfaceIndex : 20
InterfaceAlias : vEthernet (WSL)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Invalid
ValidLifetime :
PreferredLifetime :
SkipAsSource : False
PolicyStore : PersistentStore
ipconfigで確認。IPv4 アドレスが追加されている。
ipconfig
Windows IP 構成
イーサネット アダプター vEthernet (WSL):
接続固有の DNS サフィックス . . . . .:
リンクローカル IPv6 アドレス. . . . .: fe80::97d2:449d:4467:e66c%20
IPv4 アドレス . . . . . . . . . . . .: 172.29.3.50
サブネット マスク . . . . . . . . . .: 255.255.255.0
IPv4 アドレス . . . . . . . . . . . .: 172.29.48.1
サブネット マスク . . . . . . . . . .: 255.255.240.0
デフォルト ゲートウェイ . . . . . . .:
IP追加手順(自動)
上記手順を以下のようなps1ファイルとして保存し、タスクスケジューラなどでPC起動時に自動実行するように設定する。
こうすることで"172.29.3.50"を固定IPのように使用することが可能となる。
(タスクスケジューラへの設定は「タスクスケジューラ ps1」などでググれば出てくる。)
AddIPAddress.ps1
New-NetIPAddress -InterfaceIndex 20 -IPAddress 172.29.3.50 -PrefixLength 24
削除手順
ちなみに、再起動しなくとも以下のコマンドで追加したIPを削除できる。
Get-NetIPAddress -IPAddress 172.29.3.50 | Remove-NetIPAddress