我在 Windows 10 虚拟机中安装了 xampp Web 服务器。我已检查服务器是否可以从本地主机访问,我已下载 NoIP 软件来刷新 IP。然后我尝试使用 NoIP 提供的 NoIP 访问 Web 服务器,但不起作用,它显示:“http://192.168.0.1/interception.html没有互联网连接”我的互联网提供商是沃达丰。Apache 端口是 80 和 443。
任何帮助将不胜感激。
答案1
我将这个问题理解为“我希望其他网络上的其他人能够访问我的服务器”。如果我理解错了,请告诉我。
1) 检查xampp\apache\conf\httpd.conf
并确保以 开头的行Listen
不包含 localhost 或 127.0.0.1。如果包含,则 Apache 仅在本地主机上侦听,因此无论我们是否正确转发端口都无关紧要,Apache 只会接受来自 127.0.0.1 的连接。如果它包含 IP,请将其更改为仅包含端口(例如Listen 80
:)
2a)(如果您的虚拟机使用 NAT 来共享其主机的 IP 地址)找出虚拟机的本地 IP。您可以通过在虚拟机上的命令提示符中运行 ipconfig 来执行此操作。在虚拟化软件中将端口 80 和 443 转发到此 IP。执行此操作的方法因您用于运行虚拟机的软件而异。获得该 IP 后,通过在主机上运行 ipconfig 获取主机 IP。您将在步骤 3 中使用此 IP。
2b)(如果您的 VM 网络与主机网络桥接)。找出 VM 的本地 IP。您可以通过在 VM 上的命令提示符中运行 ipconfig 来执行此操作。您将在步骤 3 中使用此 IP。
3) 将路由器上的端口 80 和 443 转发至步骤 2 中的 IP。
4) 您的网站现在应该可以通过您的公共 IP 访问。您可以在以下位置找到您的公共 IP:whatismyip.host。不幸的是,如果涉及的任何 IP 发生变化,这将中断。此外,许多家用路由器无法正确处理您尝试从网络内部访问公共 IP 的情况,因此您可能必须离开自己的网络,看看它是否有效。
2a 在我的经验中总是很麻烦,所以如果可能的话,我会考虑将您的虚拟机配置为使用桥接网络。但请注意,如果您通过 WiFi 连接,某些虚拟化软件无法处理这种情况,因为 WiFi 要求每个客户端只有一个 mac 地址。
如果这是为了帮助您学习如何运行自己的服务器,那么您将获得更多功能。不过,我建议从在物理机器上运行 XAMPP 开始,因为它省去了 1 层网络。如果这是以 0 成本运行 PHP 站点,那么有免费的地方可以托管 PHP/MySQL 站点。正常运行时间并不长,但运行家用路由器的正常运行时间也不会很长。