LoginSignup
0
0

More than 1 year has passed since last update.

WSL2コマンドメモ

Posted at

WSL2を使うときにいつも忘れるコマンドメモ

  • wsl --help が分かりやすいのでそれだけで十分だが、結構分量あるのでよく使う奴だけメモ

停止(Linux上でShutdownできないので、PowserShellから実行)

# 起動中のディストリビューション確認
PS C:\Users\xxxx.xxx> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop-data    Stopped         2
  docker-desktop         Stopped         2
  Ubuntu-20.04           Running         2

# 停止(ディストリビューションを指定して停止)
PS C:\Users\xxxx.xxx> wsl -t Ubuntu-20.04 

# 停止確認
PS C:\Users\xxxx.xxx> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop-data    Stopped         2
  docker-desktop         Stopped         2
  Ubuntu-20.04           Stopped         2 

Linuxのコマンド実行 (今回はUbuntu)

  • Linuxコマンド使いたい時に
    • exec使う: wsl -d Ubuntu-20.04 exec $cmd
    • 例: wsl -d Ubuntu-20.04 exec hostname -I

PortForwardするとき

  • WSL2上で立ち上げたサービスを、「外部から使用するとき」「内部のDockerContainerから使用するとき」に使用
  • Windows側のポートを開放し、通信されたらWSL2のポートへと転送する
  • 手順 (netsh.exeを使用する為、管理者権限で起動したPowerShell上から実行)
    • 1.古いIPへの転送を停止
    • 2.WSL2側のIPを取得(WSL2を起動するたびにPort変わるので、毎回取得
    • 3.2で取得したIPへPortFoward
# 1.古いIPへの転送停止
PS C:\Users\xxxx.xxx>
$ netsh.exe interface portproxy delete v4tov4 listenport=312

# 2.WSL2側のIPを取得(ipを複数取得されるときのためぬい)
PS C:\Users\xxxx.xxx>
$ $IP=wsl -d Ubuntu-20.04 exec hostname -I | %{ $_.Split(" ")[0] }

# 3.2で取得したIPへPortFoward
PS C:\Users\xxxx.xxx>
$ $PORT=3128
PS C:\Users\xxxx.xxx>
$ netsh.exe interface portproxy add v4tov4 listenaddress=* listenport=$PORT connectaddress=$IP connectport=$PORT

# おまけ 監視中のPortFoward設定確認
PS C:\Users\xxxx.xxx>
$ netsh interface portproxy show all
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