😸
PC起動時にWSL2の自動起動【ログインすらしたくない場合】
課題となっていたこと
- WSLは、PCを起動しただけでは、起動しない
- PCを起動し、ログイン後、WSLのターミナルを立ち上げて初めて起動する
- WSLのターミナルを終了させるとWSLも停止となる
- 電源ONのみでSSHが起動するような、あたかもサーバーのような動作を期待、Windowsへログインすらしたくないので、スタートアップにWSL起動プログラムの登録もしたくない
(スタートアップだとサインイン時で自動で起動になってしまうため)
やりたいこと
- 普段使っていないノートPCのWSLを外部からSSH接続させたい
- SSHサーバはノートPCのWSL2環境を使い、ノートPC起動時にWSLのSSHが自動起動してほしい
- ノートPCは電源ONだけで、ログインはさせたくない
- WSLの自動停止を回避したい
WSL上の自動停止について
動かし続けるには ターミナル ウィンドウを開い ておけば良いってことらしい.
なるほどです!
パソコン起動時に、WSLウインドウを立ち上げる
WSLの場所
WSLを起動する実行ファイルは以下にありました。
C:\Program Files\WSL\wsl.exe
タスクスケジューラでシステム起動時に設定
- タスクスケジューラの起動
- [コントロールパネル]の[システムとセキュリティ]-[管理ツール]をクリックし、[タスクスケジューラ]をダブルクリックする
- トリガー
- スタートアップ時
- 操作
- プログラムの開始
- プログラム/スクリプト "C:\Program Files\WSL\wsl.exe"
タスクスケジューラだと、%userprofile%\AppData\Local\Microsoft\WindowsApps\wsl.exeにはアクセスできなかった
- 条件
- 「コンピューターをAC電源で使用している場合のみタスクを開始する」のチェックを外す
SSH Serverのインストール
sudo apt install openssh-server
sudo systemctl enable ssh
sudo service ssh restart
sudo systemctl status ssh
ファイアーウォールの設定
IPアドレスの確認(Win側)
ipconfig
IPアドレスの確認(wsl側)
ifconfig
ポートフォワーディング設定
netsh interface portproxy add v4tov4 listenaddress=<WindowsのIPアドレス> listenport=22 connectaddress=<WSLのIPアドレス> connectport=22
ポートフォワーディング確認
netsh interface portproxy show v4tov4
ファイアウォールの22番ポート開放
New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Outbound -LocalPort 22 -Action Allow -Protocol TCP
New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort 22 -Action Allow -Protocol TCP
ファイアウォール確認
Get-NetFirewallRule -DisplayName 'WSL 2 Firewall Unlock' | Get-NetFirewallPortFilter | Format-Table
ノートPCの画面を閉じてもスリープさせないようにしておく
スリープ状態に入るとWSLも止まってしまうようです。(多分)
- 「コントロールパネル」を開く。
- 「電源オプション」をクリックする。
- 左側のナビゲーションペインで、「カバーを閉めたときの動作」をクリックする。
- 「カバーを閉じたときの動作」を設定する。
「バッテリ駆動」と「電源に接続」の2つの場合があるので、どちらか、または両方を「何もしない」に設定する。
コンピュータのスリープ状態を変更する
スリープ状態に入るとWSLも止まってしまうようです。(多分)
コントロール パネル→すべてのコントロール パネル項目→電源オプション→プラン設定の編集
私の場合は、電源に接続した場合だけ、スリープ状態を「適用しない」にしました。
ssh接続
念のため、ssh接続する際に、keepaliveをしておく
ssh -o ServerAliveInterval=60 -l username host.example.com
参考にさせていただいたページ
- https://zenn.dev/quantum/articles/b1de629aca3cf0
- https://qiita.com/yabeenico/items/15532c703974dc40a7f5
- https://zenn.dev/kkj/scraps/3ef8a8f6fd8152
- https://mulberrytassel.com/wsl-ssh1/
- https://scratchpad.jp/ubuntu-on-windows11-13/
- https://www.businessinsider.jp/post-254949
- https://netmark.jp/2008/11/sshkeepalive.html
- https://infinity-i.co.jp/support/1460/
Discussion