如何访问 VM 中的 Web 服务器?

How to reach web server within a VM?

我正在使用 virtualbox 设置两台虚拟机,一台是 debian,一台是 fedora。 两者都配置了通过网桥访问网络,并且我可以从每个虚拟机通过 mozzila 访问 127.0.0.1

麻烦来了,我可以通过从/sbin/ifconfig -> eth0.

获得的IP 访问debian。

我用 fedora 做了同样的事情(只是第一个字段):

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.21  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 2a01:cb1c:52e:a000:320c:4fe:d697:6b11  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::6594:672d:7f76:4ff7  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:13:19:a2  txqueuelen 1000  (Ethernet)
        RX packets 6339  bytes 4615766 (4.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2762  bytes 355751 (347.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

现在,我在网上看到enp0s3只是一个新的命名规范(https://askubuntu.com/questions/704035/no-eth0-listed-in-ifconfig-a-only-enp0s3-and-lo),应该没问题。

问题是我无法通过主机系统(即 win 10)访问 192.168.1.21,或者至少,它没有给出应该生成的 html。

两个虚拟机都安装了来宾添加,vbox 文件相同(mac 和以太网地址除外)

debian vbox 和 fedora vbox conf 文件的 pastebins:

https://pastebin.com/WuyCTwcndeb

https://pastebin.com/jRDQEwJz软呢帽

(暂时想不出更好的标签,欢迎修改或建议)

最终,是 Fedora 的防火墙在起作用。

为了维护防火墙并继续使用网络服务器,我不得不运行执行以下命令:

# firewall-cmd --add-service=http

然后

# firewall-cmd --add-service=https

以防万一我以后想使用 https。

编辑并注意:如果您希望更改永久生效,则必须添加 --permanent 选项。公平地说,我仍然必须查看 --zone=public 选项,如果您将这些指令用作参考,请在搞砸之前查看它们的作用:)