禁用445端口后,Windows共享如何做?

时间:2025-01-25 15:56:45

昨天提到,因安全原因,在交换机的一些端口上*了445端口,结果问题来了,这个User反应他有个打印机访问不了,是连到其他电脑共享的打印机,而Windows文件及打印机共享所可能采用的端口如下:

1)Port 137 (UDP) - NetBIOS 名字服务 ; nmbd
2)Port 138 (UDP) - NetBIOS 数据报服务
3)Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
4)Port 389 (TCP) - 用于 LDAP (Active Directory Mode)
5)Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)
6)Port 901 (TCP) - 用于 SWAT,用于网页管理Samba  

Windows将445端口用于TCP / IP上的SMB Direct,不支持445/139以外的TCP端口,即默认无法更改端口,如\\127.0.0.1:5445。考虑到当前情况,只能使用端口重定向也就是端口转发功能,以将目标端口445转向为另一个端口允许自定义端口如20445。

原理如下:SMB客户端—连接—>端口转发—连接—>SMB服务端,详细步骤如下:

1,打印机或文件服务器端执行端口转发操作:

SMB/Printer Server(CMD Rus as Administrator):
netsh interface portproxy add v4tov4 listenport=20445 listenaddress=127.0.0.1 connectport=445 connectaddress=127.0.0.1
netsh interface portproxy add v4tov4 listenport=20445 listenaddress=10.0.1.43 connectport=445 connectaddress=127.0.0.1

(说明一下,这里的listenport=20445为自定义的转发端口,listenaddress为打印机服务器IP地址,可以自己情况的实际情况修改)

//查看当前所有的端口转发

netsh interface portproxy show all

//删除自定义端口转发

netsh interface portproxy delete v4tov4 listenport=20445 listenaddress=127.0.0.1
netsh interface portproxy delete v4tov4 listenport=20445 listenaddress=10.0.1.43

客户端上运行以下的命令添加端口转发指向:

2.1 SMB Client( stop server service):
netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=20445 connectaddress=10.0.1.43

//删除自定义转发

netsh interface portproxy delete v4tov4 listenport=445 listenaddress=127.0.0.1

2.2 在客户端上停用server服务(LanmanServer),且将server服务改为手工启动状态。

2.3重启客户端电脑

3.如果是文件服务器,透过开始-->运行-->\\127.0.0.1\就可以访问文件服务器了(注意不是远端服务器的IP地址,因为做端口转发了)。

4.如果访问共享打印机,最好在客户端先将远端打印机添加为本地打印机,然后再添加打印机端口为\\127.0.0.1\PrinterShareName就可以访问了。