可以 ssh 到本地网络上的虚拟机但无法打开网站

可以 ssh 到本地网络上的虚拟机但无法打开网站

我有一个采用默认配置的 mikrotik 路由器。
我还有两台计算机连接到路由器。

在计算机 A 上,我安装了 proxmox 并启动了一个 linux 20.04 迷你虚拟机。
在计算机 B 上,我有一个 windows 10

VM(位于计算机 A 内部)和计算机 B 都位于同一个网络 192.168.88.xxx

我的问题是,当我在 VM 上启动 Web 服务器时,我无法使用计算机 B 打开网页,
但我可以通过 SSH 连接到该 VM。

我该怎么做才能在我的虚拟机上打开该网页?

答案1

tldr。对于那些访问此页面并且您拥有从 docker 容器托管的服务的人,请确保在 docker 安装后执行rebootsystemctl restart docker。我以为我遇到了 ufw 问题,但我所需要的只是重新启动。

--

如果有人访问此页面并且您正在使用 Docker 容器内的服务,则应首先通过启动容器外部的服务来测试端口是否打开,例如:

python3 -m http.server 8000

然后检查端口是否在主机中监听:

sudo lsof -i -P -n | grep LISTEN

然后在客户端执行 telnet 检查端口是否可以连接。 telnet $MYHOST 8000

如果 telnet 不起作用,则表明防火墙存在问题。

如果 telnet 有效,则尝试启动容器内的服务(对我来说,我必须重新启动,因为 docker 端口绑定仅在重新启动后才有效!)

docker run -it -p 8000:8000 tensorflow/tensorflow:2.9.1-gpu-jupyter bash
python3 -m http.server 8000

如果 telnet 无法到达容器外的 http.server,那么你可以断定你可能遇到了 ufw/iptables 问题,如果是这样,那么你可以修改ufw/iptables虚拟机中的设置。

如果主机是 proxmox vm,则应验证防火墙是否已在所有级别禁用,或者修改防火墙设置在所有级别——数据中心、节点和虚拟机。

相关内容