Winows通过非445端口远程访问公网Samba

本人家里用的软路由,虚拟安装了CentOS,并安装了Samba服务,在家庭局域网访问和共享文件很方便,但如果想在公司电脑和手机也能随时随地访问资源,就需要实现公网访问,但 Samba 的默认端口是445,公网因为 smb1 漏洞等安全原因445端口全部禁封了;但 Windows 系统默认不提供非445端口的samba访问,所以需要用端口转发实现访问。

前提:

有内建 Samba 的服务器(电脑),有公网IP,路由器做了端口转发,并对域名做好DDNS,也可以直接IP访问,但一旦路由器重新拨号,IP变化之后,需要重新设置;没有公网IP的需要用到其他内网穿透如frp等,本文暂不涉及。

假设:

1、内网samba服务端口:445

2、公网IP:123.123.123.123

3、公网端口:44500

4、做好DDNS的域名:smb.domain.com

流程:

1、用管理员账号打开CMD,以下命令查询445端口占用情况

netstat -ano | findstr 445

可以看出是pid为4的进程进行监听,从任务管理器上看是名叫System,备注"NT Kernel&System"。

Winows通过非445端口远程访问公网Samba 

2、本地 Windows 电脑打开:控制面板-所有控制面板选项-Windows工具-服务-Server,启动类型改为“禁用”,并停止服务,如下图:

Winows通过非445端口远程访问公网Samba 

3、重启机器,再次用步骤1种命令查看445端口占用情况,应该是无占用信息(没有返回信息)。

4、利用 Windows 自带的端口转发 netsh interface portproxy 命令,修改端口转发(如果使用IPV6网络,也需要进行端口转发,具体的参照 netsh interface portproxy 使用帮助)

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=445 connectaddress=smb.domain.com connectport=44500

5、用以下命令查询端口转发是否设置成功(IPV6 同理)

netsh interface portproxy show all

应该可以看到相关转发信息,说明转发成功。

6、用步骤1中命令,查看445端口占用情况,此时的进程ID应该不是4,说明成功了。

7、磁盘挂载(注意,IP地址为本机地址127.0.0.1)。

上一篇:samba


下一篇:Linux 搭建服务