通过 VPN 连接时无法访问 IIS 上的第二个站点

通过 VPN 连接时无法访问 IIS 上的第二个站点

我有一台 Windows Server,上面有我的开发网站,可以通过http://servername实际服务器上的 IP 或服务器名称访问,也可以http://servername.org.com通过通过 VPN 连接到同一网络的家用电脑访问。

我在 IIS 上创建了一个附加站点test1,它使用与默认端口相同的端口。未分配的 IP 地址和主机名test1.com。在我的 hosts 文件中,我还添加了:

127.0.0.1 test1.com

在我通过 RDP 连接的实际服务器上,我可以通过 Web 浏览器上的 URL 访问第二个网站,test1.com并且运行正常,但当我在家用电脑上执行相同操作时,即使我通过 VPN 连接到同一网络,它也无法正常工作。我尝试了不同的 URL 组合,但http://servername.org.com./test1.com无济于事。

我需要做什么才能实现这一点?另外,只需对此问题进行标记。假设我的默认网站是该网站的第 1 版,而我想创建第 2 版。在我的服务器上管理它的最佳方法是什么?

  1. http://servername.org.com/v1/index.html对于版本 1 和 v2 也一样,但是目录不同。
  2. 或者在我的 IIS 上每次迭代创建一个新网站,http://servername-v1.org.com然后http://servername-v2.org.com

或者这真的不重要?那些不同的版本只是开发版本。我目前采用第一种方式,但想知道是否有一种真正正确的方法可以做到这一点。

答案1

如果我理解正确的话:

Windows 开发服务器位于 servername.org.com:80 您在 Windows 开发服务器上创建了第二个网站,并将其添加到 Windows 开发服务器主机文件 127.0.0.1 test1.com

当你连接到该服务器并在该服务器浏览器中访问 test1.com 时,它会从其 hosts 文件中看到 test1.com 位于 127.0.0.1,这是本地的(即你所在的服务器),并且你成功了

当你使用家用电脑时,如果主机文件中没有 test1.com 条目,则无法正常工作

这是预期

您需要有一个指向 servername.org.com 的 IP 地址的实际 test1.com DNS 条目,或者您的 PC 上的 hosts 文件条目包含一个条目

$servername.org.comsIP地址 test1.com

如果没有上述任何一个,这将不起作用,因为您的浏览器无法解析 test1.com。

即使您的计算机位于同一个虚拟网络上,它也不知道 test1.com 位于何处。

如果您想同时托管同一个网站的多个版本,最简单的方法可能是在不同的端口上创建它们,或者将配置存储在 GIT 或其他存储库中。有很多方法可以做到这一点,这实际上取决于你想做什么。

答案2

正如蒂米·布朗所指示的那样,这就是我最终做的事情。

我的设置是,在家用电脑上连接 VPN。我远程桌面连接到我的网络服务器,在那里我可以做任何事情。如果我没有连接到 VPN,我就无法远程登录。基本上在同一个网络上。

在我的 IIS 上,我有一个“默认网站”,我可以在 Web 服务器上的浏览器上以localhost或 的形式访问via IP or server name它。正如预期的那样,这会将我带到 IIS 启动页面。如果我在自己的 PC 上执行此操作,但仍连接到 VPN,我显然无法使用,localhost因为即使我连接到 VPN,它在我的家用 PC 上也是不同的。因此,如果我想在我的家用 PC 上访问相同的 IIS 启动页面,那么我需要输入servername.org.com或 我也可以使用服务器的 IP。

在我的 IIS 上,我创建了一个名为“测试”的附加网站。在我的绑定中这网站,我将其移植到 8080。这意味着如果我在 Web 服务器上的浏览器上使用localhost:8080IP:8080或。这将带我到“测试”网站的启动页面。现在,如果我在家用电脑上执行同样的事情,我需要指定端口以获取“测试”网站启动页面,即或,否则它只会将我引导到与我的 Web 服务器无关的现有实时网站。但是,我不想使用来访问我的测试网站。我想通过 访问它。这是我修改 Web 服务器的主机文件并添加的地方:hostname:8080servername.org.com:8080IP:8080test.comservername.org.com:8080test.com

127.0.0.1 test.com

因此现在,在 Web 服务器上的浏览器上,我可以通过 访问“测试”网站,test.com但如果我真的想访问,我仍然可以通过localhost:8080或访问IP:8080,但我更喜欢使用test.com。但是,如果我在自己的 PC 上访问test.com,同时仍然连接到 VPN,则无法访问。但正如 Timmy 所说,这是意料之中的,从他的回答来看,我最终修改了自己 PC 的主机文件以包含以下内容:

IPofServer test.com

现在,如果我尝试在我的 PC 上访问test.com,它会带我进入 IIS 启动页面,但这不是我想要的,我希望它会带我进入“测试”网站启动页面。但我确实尝试了,test.com:8080它带我进入了我想要的页面,但我仍然不想在 URL 中包含端口,所以我修改了我自己的 PC 的主机文件以包含一个端口,如下所示:

IPofServer:8080 test.com

但我发现这样做不行,hosts 文件不支持端口。所以如果我test.com在自己的电脑上再次尝试访问,它会带我进入一个test.com与我的网络服务器无关的实时网站。所以我最终使用 ngrok 生成一个 URL,我可以使用这个 URL 指向test.com:8080它,如下所示:

ngrok http http://test.com:8080

这会生成一个我可以使用的指向页面test.com:8080启动页的 URL。

更新

此时我意识到,由于我现在正在使用 ngrok,我甚至不需要更改我自己的 PC 的主机文件。我理想情况下希望使用我自己的 URL,test.com但这可能不可行,但由于 ngrok 会生成 URL,我可以使用:

ngrok http http://servername.org.com:8080

本质上工作原理相同。ngrok 确实有一个付费计划,我可以使用子域名,但目前免费选项对我来说是最好的。

相关内容