vm/wsl2に固定IPでssh-server

はじめに

wsl2に外部マシンからssh接続する際に問題になるのが、Windows再起動でwsl2のIPが変わる点です。

そこで発想を変えて、wsl2 にもう一つ固定IPを付与する(wsl2に2つ目のIPアドレスを固定的に振る)方法を紹介します。

準備

Windowsログインで自動起動させるスクリプト

管理者権限でやること:

ユーザー権限でやること:

@rem # Windowsのバッチを、必ず管理者権限で実行させる方法|なにがし|note
@rem # https://note.com/nanigashi/n/nbd9759140047

cd /d %~dp0
set WSL_DISTRIBUTION=Ubuntu-20.04

@rem 管理者特権が必要なコマンドを実行し、エラーだったら promotion に分岐
openfiles > NUL 2>&1
if NOT %ERRORLEVEL% EQU 0 goto promotion

@rem ここから管理者権限で実行させたい処理を記述
netsh interface ip add address "vEthernet (WSL)" 10.255.255.88 255.255.255.0
netsh interface portproxy add v4tov4 listenport=22 connectaddress=10.255.255.16
sc.exe start  iphlpsvc  

@rem 管理者権限のときは promotion 部分をスキップし end に飛ぶ
goto end

:promotion
@rem ここからユーザー権限で実行させたい処理を記述
wsl -d %WSL_DISTRIBUTION% -u root ip addr add 10.255.255.16/24 broadcast 10.255.255.255 dev eth0 label eth0:1
wsl sudo service ssh start

@rem 管理者権限で自分自身を実行(昇格処理)
powershell start-process %~nx0 -verb runas

:end

これを wsl2-ssh-forwarding.bat などの名前で保存し、
スタートアップディレクトリ(shell:startup)にショートカットを作成しておけば準備OKです。

Windowsを再起動し、ログインするとUAEのダイアログが表示されるので、OKをクリックしバッチファイルの実行を続けて下さい。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-03-09 (火) 22:48:13