シャットダウンや再起動の後、WSL はデフォルトで IP アドレスを自動的に変更します。これはリモートアクセスのプログラミングにとって非常に不便です。
以下は、WSL 内の Ubuntu 20.04 システムのホストマッピングを自動的に変更する手順です:
-
以下の内容を /etc/profile または~/.bashrc にコピーします。
ipaddr=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}') sed -i '/wslhost/d' /mnt/c/Windows/System32/drivers/etc/hosts echo "$ipaddr wslhost" >> /mnt/c/Windows/System32/drivers/etc/hosts
Ubuntu を再度開くと、パーミッションが拒否されるというメッセージが表示される場合は、Windows で hosts ファイルを見つけて右クリックし、プロパティ、セキュリティ、ユーザーに権限を付与してください。
-
SSH がデフォルトで自動的に有効になっていないことに気付きました。以下のコマンドを実行して SSH サービスを自動的に起動するように設定します。
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
-
vim /etc/rc.local を編集し、次の内容を追加します。
#!/bin/bash service ssh start exit 0
-
権限を設定します。
chmod 755 /etc/rc.local
唯一の追加要件は、WSL を起動する際に管理者権限を使用することです。そうしないとエラーが発生します。
-
SSH リモートアクセスが必要なアプリケーションでは、元の IP アドレスの代わりに wslhost を使用してください。