0
点赞
收藏
分享

微信扫一扫

nano 编辑器快捷键

狐沐说 2024-10-16 阅读 39

在这里插入图片描述

学习目标:

提示:本文主要讲述-本机(物理主机)访问不了虚拟机中的apache服务情况下的解决方案
Linux系统:Ubuntu 23.04
文中提到的“本机”:代表,宿主机物理主机

出现问题之前你的设备是否具备以下几点条件

  1. 您的本机是否可以与虚拟机进行双向互Ping(Ping成功状态);
  2. 虚拟机Ubuntu系统中是否已经安装并正确配置Apache服务;
  3. 在配置并启动Apache服务后,是否可以在虚拟机上正常访问Apache服务;

问题原因分析:

Ubuntu本机无法访问虚拟机中的Apache服务可能是由于以下原因造成的:

  1. Apache服务未正常运行。
  2. 防火墙设置阻止了访问。
  3. Apache配置文件中的监听端口不是80或者被其他服务占用。
  4. Apache没有正确配置为接受外部连接。

方案避坑:

在遇到问题后,先通过百度查询相关解决方案,其中看到最多的一个解决方案如下,亲测解决不了问题
在这里插入图片描述

  1. 上述解决方案的最初版本距离当前时间线 已经很远,可能在多次更新后已经不能解决此类问题。
  2. 上面这个方案的虚拟机是CentOS系统,不确定是否是系统的不同,导致,在执行第一条修改防火墙设置命令的时候,就出现了报错:
#报错信息如下:
iptables v1.8.7 (nf_tables): unknown option "--dport"
Try `iptables -h' or 'iptables --help' for more information.
  1. 在解决以上报错并成功执行第一条修改防火墙设置命令后,发现第二步骤中指定的文件目录不存在。终止当前方案的继续测试。

有效解决方案:

  1. 确认Apache服务运行状态:
sudo systemctl status apache2

—如果服务未运行,启动它:
在这里插入图片描述

sudo systemctl start apache2
  1. 检查防火墙设置;确认是否允许通过80端口::
sudo ufw status

在这里插入图片描述

—如果没有,允许HTTP流量:

sudo ufw allow 'Apache'

在这里插入图片描述

  1. 检查Apache配置;查看Apache配置文件(默认端口80):
cat /etc/apache2/ports.conf

在这里插入图片描述
—如果端口不是80,修改为80或其他未被占用的端口。

  1. 确认Apache配置为监听外部请求:
    —查看/etc/apache2/sites-available/000-default.conf文件确认Listen 80和<VirtualHost *:80>指令。
cat /etc/apache2/sites-available/000-default.conf

在这里插入图片描述

  1. 如果有必要,重新加载Apache配置:
sudo systemctl reload apache2
  1. 如果以上步骤都不能解决问题,请检查是否有其他网络设置(本机防火墙等)或安全软件(如SELinux)导致连接问题。

相关链接:

1.sudo systemctl reload apache2命令的作用
1.Linux:防火墙相关命令使用(Ubuntu)

举报

相关推荐

0 条评论