我目前正在开发一个项目(使用 C# 开发),需要通过 VPN 访问一个网站才能访问该网站的数据服务。我们将此应用程序托管在通过 VPN 连接到客户网络的服务器上,并且有一个工具确保此 VPN 连接也在后台建立。
因此,该应用程序通过 VPN 访问数据服务网站,处理这些数据,并在指定端口范围内托管一个 Web 服务,以便快速访问这些数据。
然后我们有一个前端页面,也是我们开发的,但托管在互联网上的另一台服务器上,因为这个前端页面需要公开访问。这个前端页面现在必须访问我们应用程序托管的 Web 服务。
所以现在的问题是我们不能这样做,因为如果托管 webservice 应用程序的服务器连接到 VPN,那么从公司工作外部就无法访问它。
因此,如果我们想要访问此 Web 服务,我们是否有机会通过路由器设置来实现?我老板的一个想法是访问 VPN 服务器的 IP,在那里启用端口范围,然后通过 VPN 服务器 IP 访问 Web 服务。我对网络人员不是很专业,但在我看来,唯一的机会就是使用端口转发到 Web 服务服务器。这可能吗?该公司的网络团队说端口转发不是必需的,但这对我来说很难相信,因为我无法想象网络数据包如何通过 VPN 服务器找到我的 Web 服务。是否有可能从 VPN 外部访问此 Web 服务?
答案1
如上所述的某种形式的端口转发会可以工作,尽管感觉有点不太好。
我建议重点关注“如果服务器连接到 VPN,则无法从公司工作之外访问”。这是您客户(或您自己的)网络团队需要解决的问题。不要让他们告诉您 VPN 的工作原理,因为它们不必那样工作:完全可以只通过 VPN 路由公司拥有的前缀,其余的则直接路由。
也许问题的一部分在于 VPN 服务器对来自 Web 服务器的连接应用与来自员工 PC 的连接相同的策略。我认为它们应该有单独的不同规则,例如各种各样的原因。(例如,假设 VPN 管理员决定要求智能卡身份验证...您的服务器连接中断。如果他们决定要求 PC 具有特定的 Windows 版本或特定的防病毒系统...您的服务器连接中断。)