![通过 PPTP VPN 实现 SMB 文件共享](https://linux22.com/image/1281122/%E9%80%9A%E8%BF%87%20PPTP%20VPN%20%E5%AE%9E%E7%8E%B0%20SMB%20%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB.png)
我在通过 PPTP VPN 运行 SMB 文件共享时遇到了问题。
服务器设置包括一个安全设备(DrayTek V3300),它将 PPTP 身份验证传递到运行 RRAS 的 SBS2003 服务器。该服务器是 DC,提供 DNS 和 WINS,单个 NIC 的名称服务器设置为 NIC 的 IP(192.168...),DrayTek 上的 DHCP 将服务器 IP 设置为 DNS。
如果我在 Win7 中创建一个新的 VPN 连接,除服务器、用户名、密码和域之外,其他一切都保留默认设置,那么我可以:
- 通过 IP 地址 ping 所有东西
- 使用其完全限定名称来解析 IP
nslookup
,例如nslookup fileserver.mydomain.local
- 通过完全限定名称 ping 计算机,例如
ping fileserver.mydomain.local
但是如果我尝试访问文件共享:
- 在资源管理器中,我收到“Windows 无法访问...”和“错误代码:0x80004005 未指定的错误”,
- 使用时
net use z: \\fileserver.mydomain.local\share
,我收到“发生系统错误 53。未找到网络路径。”
如果我将机器名称添加到我的 HOSTS 文件中,我就可以使用文件共享,这是我的最后解决方法,但我有许多 VPN 用户,并且更希望找到一种不需要我尝试手动编辑远在半个国家之外的计算机上的系统文件的解决方案。
如果我在连接的 IPv4 设置中明确设置 WINS 服务器,我就不必使用 FQN 来 ping 机器,但这不会改变其他任何内容。
编辑:我遇到问题的 PC 运行的是 Win 7 Home Premium。经过更多测试后,我实际上有另外两台可以正常工作的 PC,一台是 W7HP,一台是 XP Home,还有一台 Vista PC没有工作正常(没有像其他产品那样进行过测试),所有四个都使用相同的互联网连接(在同一个路由器后面)。所有产品都使用直接、所有默认、新的 VPN 配置进行了测试。
答案1
我会尝试将 VPN 连接移至绑定顺序的顶部:
您没有说明 Windows 的版本,因此只需转到网络连接,然后单击“高级”>“高级设置”,并将 [远程访问连接] 移至顶部。在我看来,这始终是解决 VPN 解析问题的第一步。
我讨厌那些网络未找到错误。它们非常烦人。如果你使用 XP,你也可以尝试这个
http://compnetworking.about.com/b/2005/10/02/the-network-path-was-not-found.htm
http://randomtech.blogspot.com/2007/07/network-path-was-not-found-error-on-win.html
需要说明的是,您服务器上的 DNS 设置不应指向 127.0.0.1,而应指向其实际 IP 地址。坦白说,我仍然看不出有什么区别,而且多年来我也一直这样做,但微软技术人员告诉我将其设置为实际 IP 地址。
答案2
您可能需要使用 DC 作为本地系统的 VPN 连接 DNS 服务器。这样,它就可以解析 VPN 上的主机名,而不必依赖 Windows 在没有 DNS 的情况下发现主机的方式。您可以手动尝试此操作,方法是进入ncpa.cpl
,选择您的 PPTP VPN 虚拟网络适配器,然后修改 DNS 服务器以指向您的 DC 的 DNS 服务器。
我不太熟悉如何在服务器端设置 PPTP 连接,但基本上您希望启用将此 DNS 地址“推送”到客户端的任何选项。
这会产生副作用,即在 VPN 启动时将所有本地系统 DNS 流量路由到您的 DC。
答案3
对于我们来说,我们必须禁用“路由和远程访问”配置,然后再次启用它。之后,所有流量都会正常流动,并且名称解析将适用于 netbios 和 DNS。
我们也必须更改服务器上的 DNS 设置 - 我们将其设置为:
Pri:另一个 DC 的 IP 地址 Sec:172.0.0.1
这必须改为
Pri:此 DC 的 IP 地址 Sec:另一个 DC 的 IP 地址
禁用配置通常不是什么大问题,大多数情况下它都是使用默认设置。