如何在局域网中通过不同端口访问XAMPP本地站点?

来源:个人站长网作者:缓存小熊猫头衔:程序员
导读:本期聚焦于缓存小熊猫创作的《如何在局域网中通过不同端口访问XAMPP本地站点?》,敬请观看详情。同一台电脑上跑着官网、管理后台和接口服务,XAMPP默认只暴露80端口,局域网里的同事或测试手机每次都要记住不同域名或改动配置,效率很低。其实可以给每个项目分配独立端口,例如8081访问官网、8082访问后台、8083访问API。关键在于让Apache同时监听多个端口,并为每个端口配置对应的虚拟主机目录。这样局域网设备只需输入IP加端口就能直达对应站点,不需要修改hosts文件,也不影响本地已有的localhost访问。本文会从Apache的Listen指令入手,演示如何修改httpd.conf和httpd-vhosts.conf,给出可直接套用的配置片段,并说明Windows防火墙放行、端口占用排查和403权限问题的处理方法。读完以后,你可以用几分钟时间把多个本地站点拆分到不同端口,让局域网访问更加清晰直观。

在同一台开发机上同时调试官网、管理后台和接口服务时,XAMPP默认只使用80端口,局域网里的同事或测试手机想要访问这些项目往往要反复修改配置。更直观的做法是给每个项目分配独立端口,例如8081访问官网、8082访问后台、8083访问API。只要Apache同时监听这些端口,并为每个端口绑定不同的站点目录,局域网设备输入IP加端口就能直达对应项目,既不需要修改hosts文件,也不影响默认的localhost访问。本文围绕XAMPP在局域网内通过不同端口访问本地站点的实现方法展开,涵盖Listen指令、基于端口的虚拟主机配置、防火墙放行以及端口冲突排查。

如何在局域网中通过不同端口访问XAMPP本地站点?

一、让Apache监听多个端口

Apache能否接收某个端口的请求,取决于配置文件中有没有对应的Listen指令。XAMPP安装后,Apache的主配置文件通常位于D:\xampp\apache\conf\httpd.conf,里面默认包含Listen 80这一行。如果希望增加8081、8082等端口,需要在这个文件中添加多行Listen配置。

Listen是全局指令,可以出现多次。默认情况下它不绑定具体IP,表示对所有网卡生效。比如下面的配置会让Apache同时监听80、8081和8082三个端口:

Listen 80
Listen 8081
Listen 8082

修改之前建议先复制一份httpd.conf作为备份。修改完成后必须重启Apache,因为Apache只在启动时读取配置文件。配合XAMPP控制面板的Stop和Start按钮即可完成重启。注意不要把端口设置成已经被其他服务占用的端口,例如3306通常属于MySQL,21属于FTP,3389属于远程桌面。建议把自定义站点端口规划在8000到8999之间,减少与系统常用服务冲突的概率。

二、用虚拟主机把端口映射到不同目录

仅仅添加Listen指令还不够。Apache默认的DocumentRoot指向D:\xampp\htdocs,如果没有进一步的虚拟主机配置,所有端口返回的都是同一个站点目录。要让8081访问后台系统、8082访问接口服务,就必须在虚拟主机配置文件中为每个端口建立独立的VirtualHost块。

首先确认主配置文件httpd.conf中加载虚拟主机配置的Include语句已经启用。找到下面这行,如果行首有#号,需要去掉#号:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

接下来打开D:\xampp\apache\conf\extra\httpd-vhosts.conf,添加基于端口的虚拟主机。Apache 2.4版本不需要NameVirtualHost指令,直接使用端口不同的VirtualHost块即可。下面是一个可参考的配置,分别将8081和8082映射到两个不同项目目录:

<VirtualHost *:8081>
    DocumentRoot "D:\xampp\htdocs\site_admin"
    ServerName localhost
    <Directory "D:\xampp\htdocs\site_admin">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:8082>
    DocumentRoot "D:\xampp\htdocs\site_api"
    ServerName localhost
    <Directory "D:\xampp\htdocs\site_api">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

每个VirtualHost中的端口必须与前面Listen的端口一一对应。如果某个端口没有Listen,Apache启动时可能因为虚拟主机指向不存在的端口而报错。DocumentRoot要填写项目实际路径,目录不存在也会导致启动失败或访问404。Directory块中的Require all granted用于允许Apache 2.4及以上版本访问该目录,如果缺少这行,局域网访问时可能出现403 Forbidden。

配置多个端口时,ServerName可以保持localhost,因为端口已经足够区分虚拟主机。也可以写成不同名称,但要确保局域网请求能匹配到对应主机。如果访问时发现总是命中第一个虚拟主机,多数是因为请求端口没有匹配到任何VirtualHost,或者端口与VirtualHost声明不一致。

三、放行防火墙并完成局域网验证

Apache本身监听多个端口后,本机通过127.0.0.1:8081访问通常不会遇到防火墙问题。但局域网中的其他设备要访问这些端口,Windows防火墙必须放行对应端口的入站连接。可以在控制面板的Windows Defender防火墙中新建入站规则,也可以使用命令行快速添加。下面命令以管理员身份运行,放行8081端口的TCP入站流量:

netsh advfirewall firewall add rule name="Apache 8081" dir=in action=allow protocol=TCP localport=8081

如果项目有多个端口,需要逐个添加规则,或者用端口范围一次放行,例如localport=8081-8089。之后在本机测试时可以先访问127.0.0.1:8081,确认服务已经正常返回页面;再使用本机局域网IP访问,例如http://192.168.1.10:8081/。如果本机通过局域网IP可以打开,而手机或同事仍然无法访问,通常要检查网络隔离、路由器AP隔离以及防火墙规则是否只对专用网络生效。

查看本机局域网IP可以使用ipconfig命令,在命令行中执行:

ipconfig

找到以太网适配器或无线局域网适配器下的IPv4地址,例如192.168.1.10。局域网内其他设备访问时使用http://192.168.1.10:8081/这一格式。端口号前面的冒号不要省略,路径末尾的斜杠可有可无,但带上更规范。

四、端口冲突排查与配置测试

添加Listen后如果Apache无法启动,最常见的原因是端口被占用或配置文件语法错误。可以先用命令查看某个端口是否已经被其他进程监听:

netstat -ano | findstr :8081

如果返回结果包含LISTENING以及对应的PID,说明端口已经被占用。可以使用任务管理器根据PID查看进程名称,或者直接更换一个空闲端口。修改端口后需要同步修改Listen和对应的VirtualHost声明。Apache的错误日志位于D:\xampp\apache\logs\error.log,启动失败时可以查看日志中的具体提示。

在重启Apache前,建议先运行配置语法检查。XAMPP的Apache执行文件位于D:\xampp\apache\bin\httpd.exe,在命令行中执行:

D:\xampp\apache\bin\httpd.exe -t

如果返回Syntax OK,说明配置没有明显语法问题,可以放心重启。如果提示端口重叠或VirtualHost配置错误,需要回到httpd-vhosts.conf中检查是否每个端口都有唯一且明确的主机块。

从长远看,建议为自己的端口规划建立简单记录。比如80保留给默认站点,8081到8089分配给前端页面,8090到8099分配给接口服务。这样团队成员只需记住IP加端口,就能快速访问对应项目。调试结束后如果不再需要局域网访问,可以删除防火墙规则,或将Listen改为仅监听本机地址,例如Listen 127.0.0.1:8081,但此时VirtualHost也要改成对应的地址形式。

XAMPP局域网访问Apache虚拟主机端口访问修改时间:2026-08-27 19:36:13

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。