我曾于 1998 年尝试在 NT3.51 上使文件和打印机共享在互联网上开放,但它根本无法工作。
是否必须进行端口转发才能在互联网上实现文件和打印机共享?
阅读KB298804 - 互联网防火墙可以阻止浏览和文件共享,它表示有两个端口范围:
- Microsoft 文件共享 SMB:端口 135-139(TCP 和 UDP)
- 无 NetBIOS 的直接托管 SMB 流量:端口 445(TCP 和 UPD)
迄今为止尝试
我在路由器上打开了这些端口范围,并将它们 NAT 到我的台式机,但我无法从外部访问它们:
LAN 上的其他机器能访问共享。
路由器上的数据包捕获显示流量正在到达我的家用机器。我的工作机器正在尝试直接连接(不使用 NetBIOS)。然后它发出 ping 信号,然后疯狂地继续尝试其他端口:
IP/TCP 69.59.196.211:445 <== 216.8.139.6:59763 tcp 0
IP/ICMP 69.59.196.211 <== 216.8.139.6 ICMP echo request
IP/ICMP 69.59.196.211 ==> 216.8.139.6 ICMP echo reply
IP/TCP 69.59.196.211:139 <== 216.8.139.6:59764 tcp 0
IP/TCP 69.59.196.211:445 <== 216.8.139.6:59763 tcp 0
IP/TCP 69.59.196.211:139 <== 216.8.139.6:59764 tcp 0
IP/TCP 69.59.196.211:445 <== 216.8.139.6:59763 tcp 0
IP/TCP 69.59.196.211:139 <== 216.8.139.6:59764 tcp 0
然后我尝试完全禁用 Windows 防火墙,看看它是否是罪魁祸首:
并且禁用防火墙完全有效。
那么 Windows 防火墙上的哪些设置可以允许所有网络(而不仅仅是本地网络)共享文件和打印机?
我偶然发现了一个列出所有规则的页面。端口445流量仅允许来自本地子网。 ID喜欢将其更改为任何,但规则看起来不可编辑:
所以问题变成了如何允许来自端口 445 的流量任何远程地址,不仅仅是本地子网?
回答
我找到了可以启用直接托管的 SMB 流量以允许来自任何远程主机的流量的位置(默认情况下它限制为本地子网):
要点如下:
- 传入规则
- 文件和打印机共享 (SMB-in) (私人资料)
- 范围。远程地址: 任何
有多个称为“文件和打印机共享(SMB-in)”的规则:
- 文件和打印机共享 (SMB-in) (私人资料)
- 文件和打印机共享 (SMB-in) (公开资料)
- 文件和打印机共享 (SMB-in) (域名简介)
这些配置文件与您选择的网络位置相对应:
- 主页 ==> 私人资料
- 工作 ==> 私人资料
- 公开 ==> 公开个人资料
如果你加入了域,那么配置文件将通过域管理员进行配置
- 域 ==> 域配置文件
自学者。这里为任何想要将自己机器的文件共享开放到互联网的人提供了指南(是的)。
答案1
看看我的机器(不幸的是 XP,所以不可否认不一样),如果我进入防火墙设置中的例外选项卡,并编辑“文件和打印机共享”条目,就会出现“更改范围”选项。这将为您提供以下三个选项:
- 任何计算机(包括互联网上的计算机)
- 仅限我的网络(子网)
- 自定义列表
您能否确认在编辑文件和打印机共享条目时您提到的端口范围都存在于列表中,并且它们的范围都设置为任意?
更新:如果您通过单击控制面板中防火墙主页左侧栏中的“高级设置”转到“高级安全 Windows 防火墙”,您可能能够找到相关规则并从那里编辑其范围。
更新 2:刚刚看到你的新截图,你能不能从其他选项卡更改规则?它们听起来都很有用!
答案2
向互联网开放端口 135、139 和 445 是我见过的最大的安全漏洞。SMB 服务极易受到攻击,有多种漏洞可让黑客直接进入并在您的机器上为所欲为。对于通过互联网共享,我建议使用 FTP 或 SSH。