我有一个SSH 隧道从我的 Windows 10 机器到 Linux 服务器(192.168.10.2
在 LAN 中,端口 22 公开在 Internet 上并转发到那里),该服务器也提供 SMB 服务。
我尝试将本地文件转发127.0.0.3:445
到该服务器并映射\\127.0.0.3
。此操作失败,并显示“Windows 无法访问\\127.0.0.3
。
另一方面,当我在网络中时192.168.10.2
,映射没有任何问题\\192.168.10.2
。
这表明,为了映射共享,我需要的不仅仅是访问端口445
。对吗?
编辑:顺便说一句,通过该隧道的其他端口都没有问题(HTTPS,MQTT,...)
答案1
是的,现代 SMB(尤其是 v2/v3)仅在 TCP 端口 445 上运行。但是,Windows 客户端在尝试 SMB 连接之前可能还希望服务器能够 ping 通,即响应 ICMP Echo。
此外,它 可以是 Windows 隐式地将所有本地地址映射到一个神奇的环回连接,该连接完全绕过 TCP/IP 堆栈,因此不知道您的 SSH 隧道。我绝对会推荐使用 IP 级 VPN。
只有非常老的客户端,Windows 9x 时代及更早的版本,才会使用 TCP 端口 139(并且可能UDP 137-138 上的 NetBIOS 数据报服务)。
最近,微软宣布了一项实验性的 SMB-over-QUIC,可以使用 UDP 端口 443 作为替代方案。目前尚未公开发布。