SSH tunnel on Windows 10 to Linux Samba
how to proxy smb to a windows 10 client:
short description with ssh n stuff for tunneling
launch hdwwiz.exe
network adapters -> Microsoft KM-TEST Loopback Adapter -> finish
disable everything except ipv4 in that new network sink
inside the ipv4 settings set up a ip, 255.255.255.255 as subnet mask and disable netbios
- if you cannot decide on an ip simply use 192.168.2.123.
sadly it's impossible to use 127.0.0.2 or similar for this. windows for some unknown reason will not connect to it.
- if you cannot decide on an ip simply use 192.168.2.123.
elevated windows shell
- run
sc config lanmanserver start= delayed-auto
this is sadly required since microsoft will bind it's smb bullshit to 0.0.0.0:445 thus making it impossible to listen to that port yourself.
microsoft also does not want you to use smb on a port different than 445. - run
netsh interface portproxy add v4tov4 listenaddress=192.168.2.123 listenport=445 connectaddress=192.168.2.123 connectport=44445
this will ensure that 445 stays bound as soon as lanmanserver starts. thus making it possible for you to just spawn a listener onto 44445 to listen to 445 without eaddrinuse errors etc.
- run
edit
%windir%\system32\drivers\etc\hosts
and add an appropriate mapping like:
192.168.2.123 smbproxy
reboot
just use
ssh -L 192.168.2.123:44445:internalsmbhost:445 sshuser@publicjumphost
open explorer and navigate to
\\smbproxy
you can also create multiple mappings in your hosts file for that.
the benefit would be that multiple users of your laptop / pc could access your nas with different usernames / sessions without windows annoying you that someone else is already using that resource.
feel free to open the task creation tool of windows to start this on system startup.
this was taken from my readme.md i made for my websocket proxy https://gitfap.de/GottZ/websocketproxy
EDIT: we are in 2020 now. use wireguard for this. it's much more reliable than ssh.
You should only need to forward port 445. In putty the local port should be loopbackIP:44445(or any other unused port) and the forward destination should be localhost:445 or 127.0.0.1:445.
It worked for me follow the procedure in this link: http://how-to.cc/setup-windows-filesharing-over-ssh
Note that all reference to the service 'smb' needs to be changed to the service 'server'.
If it still doesn't work you can try disabling samba v3 on the windows box or try upgrading samba on the linux server. See this link https://it.awroblew.biz/windows-10-and-problems-accessing-smb-shares/