导读:本期聚焦于大海创作的《如何让XAMPP允许局域网内其他设备访问本地网站?》,敬请观看详情。XAMPP安装后使用localhost或127.0.0.1访问项目一切正常,换到手机或同一局域网内的另一台电脑访问本机IP却提示拒绝连接或403,通常是Apache访问控制与Windows防火墙共同作用的结果。Apache 2.4使用Require指令进行来源限制,XAMPP默认对面板、phpMyAdmin等路径设置Require local,只允许本机回环地址访问;同时系统防火墙若未放行80端口,也会直接丢弃外部请求。要让局域网设备正常打开本地网站,需要将httpd-xampp.conf中相关LocationMatch块的Require local改为Require all granted,并核对htdocs目录的Directory权限为Require all granted。保存配置后重启Apache,再到Windows防火墙中添加入站规则放行TCP 80端口。最后用ipconfig确认本机局域网IPv4地址,手机连接同一WiFi通过http://192.168.x.x访问验证。修改时建议只开放必要的网站目录,phpMyAdmin等管理入口仍然保持仅本机访问,避免局域网内的误操作或攻击。

XAMPP刚配置好时,用浏览器打开 http://localhost 或者 http://127.0.0.1 能看到项目页面,很容易给人造成一种服务已经就绪的错觉。可一旦把地址换成局域网 IP,例如 http://192.168.1.23,手机或其他电脑却打不开,甚至直接返回 403。这个问题通常不是网络不通,而是 Apache 的访问控制和 Windows 防火墙把来源限制在本机回环地址上。

如何让XAMPP允许局域网内其他设备访问本地网站?

要让局域网设备稳定访问 XAMPP 中的本地网站,需要同时处理两层限制:第一层是 Apache 自身的 Require 指令,它决定了哪些 IP 可以进入对应目录;第二层是系统防火墙的入站规则,它决定了外部请求能不能到达 Apache 监听的端口。下面按照访问控制、防火墙、管理面板安全、常见问题四个部分展开。

一、Apache 访问控制:从 Require local 到 Require all granted

Apache 2.4 版本之后,访问控制语法发生了明显变化。旧的 Allow from all 已经被 Require all granted 替代。XAMPP 为了安全,默认在若干路径上使用了 Require local,它的含义是只允许来自 127.0.0.1 和 ::1 的请求,其他 IP 一律拒绝。所以当手机通过局域网 IP 访问时,请求虽然到达了 Apache,但来源地址不属于 local,就被直接挡在门外。

首先要打开 XAMPP 控制面板,点击 Apache 右侧的 Config 按钮,选择 httpd-xampp.conf,对应的文件路径通常是 C:\xampp\apache\conf\extra\httpd-xampp.conf。在这个文件中可以找到类似下面这样的 <LocationMatch> 块:

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    Require local
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

这段配置限制了 XAMPP 管理面板、phpMyAdmin、安全页面、服务器状态等管理类路径,只允许本机访问。如果希望局域网设备也能打开这些管理页面,可以把 Require local 修改为 Require all granted。修改后的配置如下:

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    Require all granted
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

除了管理页面,还要检查网站根目录对应的 <Directory> 权限。打开 httpd.conf,找到 DocumentRoot 附近的配置,确认 C:\xampp\htdocs 目录的访问控制不是 Require local。通常默认已经是 Require all granted,但如果之前手动修改过,就需要改回来。典型的目录配置如下:

DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

需要特别说明的是,如果只是为了访问普通网站目录,不建议直接开放整个 <LocationMatch> 中列出的所有管理路径。更稳妥的做法是只开放网站根目录,继续保留 phpMyAdmin 和服务器状态页面的 Require local 限制。修改完成后保存文件,在 XAMPP 控制面板中点击 Apache 的 Stop,再点击 Start 重启服务,让配置生效。

二、Windows 防火墙放行 80 端口

Apache 配置修改之后,有时本机用局域网 IP 能打开,但手机仍然无法访问。这时基本可以判断是 Windows 防火墙阻断了入站请求。Windows 默认会拦截来自外部设备的陌生端口连接,XAMPP 安装时添加的防火墙规则通常只允许专用网络,或者根本没有添加 Apache 的入站规则。

最直接的方法是打开控制面板,进入 Windows Defender 防火墙,选择高级设置,在左侧点击入站规则,然后新建规则。规则类型选择端口,协议选择 TCP,特定本地端口填写 80,操作选择允许连接,配置文件可以全部勾选,最后给规则命名例如 Apache80。保存后无需重启系统,规则会立即生效。

如果更喜欢命令行操作,可以用管理员身份运行 cmd,执行下面这条命令:

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

放行端口后,还需要确认本机的局域网 IPv4 地址。在命令行中执行 ipconfig,找到无线局域网适配器 WLAN 或以太网适配器,查看 IPv4 地址,通常是 192.168.1.x 或 192.168.0.x 这样的格式。然后在同一局域网内的手机或另一台电脑上访问 http://192.168.x.x/,如果能打开站点首页,说明 Apache 和防火墙的配置已经生效。如果同一台电脑上用局域网 IP 能打开,其他设备不能打开,还要检查路由器是否开启了 AP 隔离。部分路由器默认会阻止无线设备之间互相访问,需要在路由器后台关闭 AP 隔离或无线隔离功能。

三、phpMyAdmin 与 XAMPP 管理面板的安全边界

XAMPP 的设计定位是本地开发环境,它默认把 phpMyAdmin、Webalizer、服务器状态等工具锁在本机,并不是没有原因。phpMyAdmin 一旦对整个局域网开放,任何连接到同一网络的人都可以尝试登录数据库,如果 MySQL 账号使用了弱密码或者空密码,数据库很容易被拖走。XAMPP 控制面板本身也有不少敏感操作,开放后会增加不必要的攻击面。

因此,如果确实需要在局域网中访问这些管理工具,建议同时做好两件事:第一,修改 MySQL 的 root 密码,并且在 phpMyAdmin 的 config.inc.php 中确认认证方式为 cookie 或 http,而不是自动登录;第二,不要长期保持 Require all granted,用完管理工具后可以恢复为 Require local。如果只是想给同事或手机预览网站页面,可以只开放网站根目录,保留管理入口的本机限制。

更细粒度的做法是拆分 <LocationMatch> 规则。比如只开放 XAMPP 面板,但继续锁定 phpMyAdmin:

<LocationMatch "^/(?i:(?:xampp|security|licenses|webalizer|server-status|server-info))">
    Require all granted
</LocationMatch>

<LocationMatch "^/(?i:(?:phpmyadmin))">
    Require local
</LocationMatch>

这样既满足了特定管理页面的局域网访问需求,又避免将数据库管理入口直接暴露出去。需要提醒的是,Apache 的配置规则有优先级,多个 <LocationMatch> 同时匹配时,具体生效结果还要结合 <Directory>、<Files> 等区块综合判断。修改这类配置后最好在局域网设备上逐个路径测试,确认开放范围和预期一致。

四、常见问题排查与替代方案

端口冲突是 XAMPP 局域网访问中最常遇到的问题之一。如果 80 端口被 IIS、SQL Server Reporting Services 或者某些下载工具占用,Apache 启动时就会报错,或者虽然启动成功但外部请求被其他程序接管。可以通过 netstat -ano | findstr :80 查看占用 80 端口的进程 PID,再在任务管理器中确认进程名称。如果确实无法释放 80 端口,可以修改 Apache 的监听端口,在 httpd.conf 中把 Listen 80 改为 Listen 8080,同时把 ServerName localhost:80 修改为 ServerName localhost:8080。之后局域网设备访问的地址也要变成 http://192.168.x.x:8080/,并且在防火墙中放行对应端口。

另一个容易被忽略的问题是虚拟主机配置。如果项目使用 httpd-vhosts.conf 配置了虚拟主机,并且 ServerName 只指向了一个自定义域名,那么通过 IP 访问时可能落入默认站点或者出现 404。此时需要检查虚拟主机配置,确保 ServerAlias 或默认站点能够匹配局域网 IP,或者直接新增一个监听所有地址的虚拟主机。

如果只是临时想让外部设备访问本地站点,又不想修改防火墙和 Apache 配置,可以使用内网穿透工具,例如 ngrok、frp 或者 cloudflared。这些工具会在本机启动一个客户端,把本地端口映射到一个公网地址,手机和外部网络通过公网地址访问。但这种方案会把服务暴露到公网,不适合传输敏感数据,也不建议长期开启。对于稳定开发调试来说,修改 XAMPP 自身配置和防火墙规则仍然是更直接、更可控的方式。

实际配置完成后,建议按顺序验证:先确认 Apache 正常运行且没有配置语法错误;再用本机局域网 IP 访问;接着用其他设备访问同一 IP;最后检查路由器 AP 隔离设置。只要这三层都没有问题,XAMPP 站点就能在局域网内稳定访问。

XAMPP配置局域网访问Apache访问控制修改时间:2026-10-05 23:02:09

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