honsoa 2024-09-11 22:25 采纳率: 0%
浏览 142
已结题

本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)

使用VM装了ubuntu服务器并安装了PHPstudy部署了网站,在VM主机上本地测试访问http://127.0.0.1:8080提示“无法访问此页面 127.0.0.1 已拒绝连接。”,ssh能可正常访问服务器,查看防火墙状态也已关闭,可是本地测试就是不能访问,这个如何处理?

img

img

img

img

更正下测试是8081端口,8080端口是打错了,使用Nginx环境。

  • 写回答

33条回答 默认 最新

  • caozhenyu650 2024-09-11 22:30
    关注

    此答案是由GPT4和本人亲自作答,如有帮助,还请采纳!
    针对你在VM中安装Ubuntu服务器,并通过PHPstudy部署网站后,在本地测试时遇到127.0.0.1:8080 已拒绝连接的问题,可能的原因及解决方案如下。通过提供详细的分析,结合问题截图进行指导,确保你可以成功访问网站。

    1. 问题分析

    根据你的描述,VM主机上能通过SSH访问服务器,且防火墙已关闭,但通过浏览器访问 127.0.0.1:8080 时提示“连接被拒绝”。从这个情况来看,问题可能出现在以下几个方面:

    • PHPstudy配置问题:服务器上配置的服务可能没有正常启动或绑定在错误的地址或端口上。
    • Web服务器监听问题:可能Web服务器没有监听 127.0.0.1 或者正确的端口(如8080)。
    • 网络转发问题:VM中的网络配置可能导致宿主机无法访问虚拟机中的服务。
    • 权限或端口占用问题:服务器可能有端口被占用或没有足够权限绑定到某些端口。

    2. 检查步骤及解决方案

    2.1. 确认Web服务器是否启动

    首先确认你的Web服务器(Apache或Nginx等)是否正常启动。如果你用的是Apache,可以使用以下命令:

    sudo systemctl status apache2
    

    如果使用的是Nginx:

    sudo systemctl status nginx
    

    确保服务处于“active (running)”状态。如果服务没有运行,可以使用以下命令启动:

    sudo systemctl start apache2  # 或 nginx
    

    2.2. 检查监听端口

    确保服务器在正确的IP和端口上监听。执行以下命令查看监听状态:

    sudo netstat -tulnp | grep 8080
    

    如果Web服务器没有监听 127.0.0.1:8080,需要修改配置文件。例如,修改Apache的配置文件 /etc/apache2/ports.conf,确保有如下内容:

    Listen 127.0.0.1:8080
    

    Nginx的配置文件 /etc/nginx/sites-enabled/default 中也应包含类似配置:

    server {
        listen 127.0.0.1:8080;
        server_name localhost;
    }
    

    修改完后重启服务:

    sudo systemctl restart apache2  # 或 nginx
    

    2.3. 检查VM网络设置

    虚拟机的网络配置有可能导致宿主机无法访问VM中的服务。可以采用以下两种方式:

    1. NAT模式(Network Address Translation):宿主机通常不能直接访问VM中的网络端口,需要通过端口转发机制将VM的端口映射到宿主机。例如,如果虚拟机的8080端口无法直接被访问,可以将该端口映射到宿主机的8080端口。具体步骤如下:

      • 通过VM软件的网络设置(如VirtualBox或VMware)将虚拟机的8080端口转发到宿主机。比如VirtualBox中:
        • 打开虚拟机设置,选择网络。
        • 选择“高级” -> “端口转发”。
        • 新建规则,将宿主机的8080端口转发到虚拟机的8080端口。

      这样,宿主机就可以通过 http://localhost:8080 访问虚拟机的Web服务。

    2. 桥接模式(Bridged Adapter):此模式下,VM与宿主机共享相同的局域网,虚拟机会有自己的IP地址,可以直接通过这个IP地址访问虚拟机中的服务。你可以通过以下命令在虚拟机中查看其IP地址:

      ip addr show
      

      例如,如果虚拟机的IP地址是 192.168.1.100,你可以在宿主机浏览器中访问 http://192.168.1.100:8080

    2.4. 检查防火墙及SELinux

    虽然你提到防火墙已关闭,但还是建议再次确认虚拟机的防火墙是否完全关闭。使用以下命令检查防火墙状态:

    sudo ufw status
    

    如果发现防火墙正在运行,可以先禁用它:

    sudo ufw disable
    

    如果你使用的是CentOS或Red Hat系统,还需检查SELinux状态:

    sestatus
    

    如果SELinux处于“Enforcing”模式,可能会阻止网络连接,可以将其设置为“Permissive”:

    sudo setenforce 0
    

    2.5. 检查PHPstudy配置

    确认PHPstudy是否正确配置了Web服务并监听了指定端口。如果你使用的PHPstudy自带的服务,可以在其配置面板中确认端口和IP绑定是否正确。

    你可以进入PHPstudy的配置界面,确保Web服务器(如Apache或Nginx)配置了正确的监听IP和端口。通常应该配置为 127.0.0.1:80800.0.0.0:8080 来确保所有接口的访问权限。

    2.6. 检查日志文件

    查看Web服务器的日志文件可能会给出有用的信息。Apache的日志通常位于 /var/log/apache2/ 目录下,Nginx的日志则在 /var/log/nginx/

    例如,可以查看Apache的错误日志:

    sudo tail -f /var/log/apache2/error.log
    

    这有助于确定是否有配置错误或其他问题阻止服务正常运行。

    2.7. 本地主机访问虚拟机的配置(hosts文件)

    如果你想通过宿主机的localhost访问虚拟机中的服务,可以编辑宿主机的 hosts 文件,将虚拟机的IP地址映射为localhost,例如:

    sudo nano /etc/hosts
    

    添加一行:

    192.168.1.100 localhost
    

    192.168.1.100 替换为虚拟机的实际IP地址。

    3. 总结

    从你提供的信息来看,连接被拒绝的可能原因很多,建议依次检查以下几项:

    1. 确保Web服务已经启动并监听正确的端口和IP地址
    2. 检查虚拟机的网络模式,推荐使用桥接模式或者设置端口转发。
    3. 确保防火墙、SELinux等安全机制没有阻止连接
    4. 检查PHPstudy配置和服务器日志,排查是否有配置错误或端口占用问题。

    希望通过这些步骤能够解决你遇到的本地测试无法访问的问题。如有进一步的错误信息,欢迎提供更多细节以便深入排查。

    评论

报告相同问题?

问题事件

  • 系统已结题 9月19日
  • 修改了问题 9月12日
  • 创建了问题 9月11日

悬赏问题

  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 Ubuntu开机显示器只显示kernel,是没操作系统(相关搜索:显卡驱动)
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用