カテゴリー
SMB Windows Windows 10

Windows 10 SMB proxy

原理

一つ目の理由、Windows は TCP/139,445 を 0.0.0.0 で listen するため、どうにかしてポートが占有される前に proxy IP のポートで listen する必要がある。これは確かサービス名 LanmanServer のプロセスが行っていることだったと思う。netstat やリソースモニターで確認できる。

二つ目の理由、Windows の SMB client はポートが固定であり、TCP/445、TCP/139 の順に叩いてダメなら諦める。このため TCP/445 の空いた IP アドレスが必要である。TCP/139 は 0.0.0.0 で listen しないが、割り当ててもプロキシーとして機能しないことが多い。

IP アドレスを作る

ポートフォーワードを設定する

netsh interface portproxy add v4tov4 listenaddress=10.4.4.5 listenport=445 connectaddress=10.4.4.5 connectport=44445

Windows を再起動する

この例では TCP/10.4.4.5:44445 に ssh portforward などでリモートマシンの TCP/445 をつなぐと \\10.4.4.5 で共有ファイルにアクセスできるようになる。

Windows 10 の大型アップデートで中途半端にこの設定が消されるので初めからやり直す必要がある。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です