rt,本人处在校园网中,希望能通过 samba 在实验室访问在宿舍机子上的共享文件目录,但是多番尝试之后都不成功,特来请教大家。
宿舍的网段是 202.XXX.XXX.XXX ,实验室的是 218.XXX.XXX.XXX ,这两个网段能互相 ping,能 ssh,开任意端口的 http 都能连上,这是前提;
宿舍搞了个 openwrt 来发 wifi,samba 机子是放在了 202.XXX.XXX.XXX 这个 ip 段下的一台 windows 服务器,直接开的文件共享(实际上也就是 samba 协议),假设 ip 为 192.168.0.10 ,现在的状况是,192.168.0.11 的机子( windows、手机、win10 下的 ubuntu 子系统)能够正常发现这个共享目录并挂载( win10 下的 ubuntu 子系统使用 sambaclient -L XXX.XXX.XXX.XXX 命令)。为了能让 lan 之外的网络访问这台服务器,路由器开了 DMZ (也就是说设置了所有端口都转发至 DMZ 主机)。这是我的设置;
现在的问题是,我从 218 网段的机子,无法通过路由器 ip ( 202.XXX.XXX.XXX )用 sambaclient 挂载共享目录,而在同一 lan 下(同一 wifi 下)的机子,可以通过路由器 ip ( 202.XXX.XXX.XXX )而不是内网的 ip ( 192.168.0.10 )挂载共享目录。这说明端口的确被转发了;我在路由器上用 tcpdump 抓包,监听 445 窗口,发现来自 218 的请求确实被转发到了路由器下的 samba 主机,但是看起来所有的包都没有“握手”成功,都在重复发送第一个包,218 主机提示了 iotime 错误。
所以在这里请教一下大家,这种情况下要从哪个方面入手解决?
1
hzqim 2018-03-29 09:45:02 +08:00 via Android
之前勒索病毒没能在大陆大规模感染的原因之一就是 ISP 禁用了 samba 协议所用的端口。
samba server 端很容易改端口,但 client 端改端口却麻烦很多,Linux 可以通过 iptables 转发端口;但 Windows 就比较麻烦,网上的方案是 Windows xp 通过注册表修改端口,但 Windows 7 和 Windows 10 好像无效。 希望能有一款可以自定义端口的 client 出现。 |
2
czwstc 2018-03-29 11:42:23 +08:00 via iPhone
路由器转发其他端口到 445,客户端挂载的时候地址加上:端口 。我的情况和 lz 一样。
|
3
andywiny 2018-03-29 16:49:56 +08:00 via Android
架个 VPN 服务不就解决了
|
4
myshzzx 2019-01-27 03:19:31 +08:00 1
这个只是因为 windows 防火墙默认配置的文件共享 445 端口只允许远端 ip 为子网内的 ip, 你只要在高级防火墙设置里加个传入连接本地 tcp445 端口允许所有远端 ip 即可.
|
5
frankzou 2020-02-08 10:54:49 +08:00 1
@hzqim 这种情况可以利用 SSH 隧道功能实现,基本原理是:客户端与服务器通过 SSH 连接(例如 PuTTY)搭建隧道;而客户端主机借助 Windows“环回适配器”(虚拟网卡)重定向 445 端口数据到非 445 端口(例如:44445 ); SSH 链接设置端口映射,将环回适配器非 445 (如上: 44445 )端口映射至服务器的 samba 端口(可以是 445 )。如此:可以绕开路由对 445 端口的封锁,因为在路由看来是 SSH 端口( 22 )间的通信。详细的配置流程可以参考这个连接: https://www.nikhef.nl/~janjust/CifsOverSSH/Win10Loopback.html
|