ぶていのログでぶログ

思い出したが吉日

wsshuttleを使ってWindowsとWSLのポートフォワードを行う

Mac環境やLinux環境ではsshuttleを便利に使っていたのだが、Windows/WSL環境になってからはsshuttleがうまく動かずにいた。 正確に書くと、WSLからはポートフォワードできるのだが、Windows側からはポートフォワードできない。 例えばサーバのリモートKVMにアクセスしたいときは、Windowsのブラウザを使うので不便である。 これを解決するのがwsshuttleである。

github.com

使い方は作者の方がQiitaに書かれているのでそちらを参照するとよい。

qiita.com

私の使い方

wsshuttleはWindowsのルーティングテーブルを変更する関係でWindowsの管理者権限が必要になる。 WSL環境から管理者権限でプロセスを実行するのは手間なのでやりたくない*1。 とはいえ wsshuttleのためだけにターミナルを管理者権限で実行するのは過剰すぎる…。

そこで私はWindowsターミナルを使っている。 どういうこと?っと思うかもしれないが、WindowsターミナルではCtrl押しながらクリックして新しいターミナルを開くと、そのターミナルのみ管理者権限で実行されるようになる。

管理者権限で開かれたタグは別プロセスになる関係で別のウインドウとなる。 そのウインドウの左上には管理者権限で開かれたことがわかるように盾のアイコンが表示されている。

このウインドウでwsshuttleを実行すれば権限問題は解決するという感じ*2

おまけ: asdf-wsshuttleを作った

asdfプラグインを作ったのでご活用ください。

github.com

まとめ

wsshuttle便利なのでみんな使ってほしい。 なお、ここ最近使い始めたみたいな書きっぷりになってしまったが、去年くらいから使っていたのであった。

*1:runas.exeとかPowerShellを駆使すればできなくはないけど…

*2:よりセキュアにするならターミナル起動時にシェルを実行せずにwsshuttleのみにしたほうがいいのだが面倒だからやっていない