我通过路由和远程访问功能在 Windows Server 2008 上设置了 VPN。
我的目标很简单。当我连接到 VPN 时,我应该能够通过服务器名称“\servername\”访问共享,就像我在服务器的 LAN 上一样;当我没有连接到 VPN 时,我应该无法访问它们。
不幸的是,连接到服务器的VPN后,我无法访问它。
附加信息:
- 我的服务器上的用户帐户设置为允许拨入访问;因此我可以成功连接到 VPN。
- VPN 网络在网络和共享中心的服务器上显示为“RAS(拨入)接口(专用网络)”。
- 我不确定客户端上的 VPN 连接是否应该选中“在远程网络上使用默认网关”选项。选中后,我在客户端上无法访问互联网,但我怀疑需要选中它以强制 SMB 流量通过 VPN?
- 仅允许服务器防火墙上的“专用网络”配置文件的“文件和打印机共享”例外是否足够?我不希望在公共网络上启用这些例外,而只想启用“RAS(拨入)接口(专用网络)”。
- 我是否需要静态路由以某种方式将 VPN 流量传送到主 NIC?只有一个 NIC,那么服务绑定会影响这一点吗?
- “路由和远程访问属性”IPv4选项卡中已选中“启用IPv4转发”,IPv4地址分配为“静态地址池”,范围在192.168.1.100至192.168.1.200之间,IP地址为192.168.1.0,掩码为255.255.255.0(与我的主网卡的子网掩码匹配)。
答案1
关闭 VPN 连接上的“在远程网络上使用默认网关”选项(VPN 连接 > 属性 > 网络选项卡 > IPv4(列表项)属性 > 高级按钮)后,您将获得所谓的“拆分隧道”。它的工作方式应该是,您的所有 Internet 流量都会通过您的正常默认网关,而不是所有流量都通过 VPN,只有发送到您的 VPN 服务器或网络的选定流量才会通过 VPN 隧道。
问题是 Windows 7 路由表默认是错误的。失败!!!
它会生成错误的表,因此无法正确路由 VPN 上的流量。例如,我的 VPN 设置为连接到名为“my.domain.com”的服务器。假设 my.domain.com 的 IP 是 1.2.3.4。当我在客户端上运行“route print”命令时,我可以看到 1.2.3.4 的条目指向我的本地网关,而不是 VPN 服务器的网关。可以通过查看连接到 VPN 的客户端上“route print”命令输出中列出的网关来找到 VPN 服务器的网关,或者在 VPN 服务器上转到“服务器管理器 > 角色 > 网络策略和访问服务 > 路由和远程访问 > IPv4 > 常规”,并且“内部”接口的 IP 地址就是您需要的网关。例如,假设它是 1.2.3.100。
表中甚至还有其他条目似乎是循环的。因此,我在客户端上使用如下命令:“route delete 1.2.3.4”删除了 VPN 服务器 IP 的错误路由,并使用如下命令添加了正确的路由:“route add 1.2.3.4 mask 255.255.255.255 1.2.3.100 IF 28”,其中 1.2.3.100 是我的 VPN 服务器的网关,“28”是“route print”命令输出中列出的 VPN 连接的接口 (IF) 编号。
之后,当我在 Explorer 中输入“\my.domain.com\”时,它正确地通过 VPN 隧道路由流量。它到达网络,似乎来自本地 IP(通过“服务器管理器 > 角色 > 网络策略和访问服务 > 路由和远程访问(属性) > IPv4 选项卡 > IPv4 地址分配组 > 静态地址池选项”静态分配),因此它通过了“公共”网络上文件和打印机共享的防火墙例外,该例外将远程地址限制在我指定的静态池范围内。