You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在局域网内其他电脑访问多台XAMPP/Apache虚拟主机且无需修改hosts文件

解决局域网内无需修改hosts访问多台XAMPP/Apache虚拟主机的方案

如果你不想让局域网内其他电脑修改hosts文件就能访问你配置的多个虚拟主机,有两种实用的方案可以选择,我会结合你的现有配置详细说明:

方案一:基于端口的虚拟主机配置(最直接适配现有设置)

这种方法是给每个虚拟主机分配独立的端口,局域网内其他电脑通过「主机IP+端口号」的方式访问,完全不需要修改hosts。

步骤1:让Apache监听多个端口

打开XAMPP的Apache主配置文件httpd.conf,找到Listen 80这一行,在它下面添加额外的监听端口,比如:

Listen 80
Listen 8080
Listen 8081

这里的80是你现有第一个虚拟主机的端口,8080、8081分配给另外两个虚拟主机,端口号可以自定义(只要不被其他程序占用)。

步骤2:修改vhosts.conf中的虚拟主机配置

针对你现有的三个<VirtualHost>配置,分别修改端口号:

  • 第一个虚拟主机(原localhost)保持80端口:
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "C:/xampp/htdocs/AFNet"
    ServerName localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
    <Directory "C:/xampp/htdocs/AFNet">
        Require all granted
        AllowOverride All
        Options Indexes FollowSymLinks
    </Directory>
</VirtualHost>
  • 第二个虚拟主机改成8080端口:
<VirtualHost *:8080>
    ServerAdmin webmaster@localhost
    DocumentRoot "C:/xampp/htdocs/你的第二个站点目录"
    ServerName localhost  # 这里ServerName可以保留,不影响局域网访问
    ErrorLog "logs/site2-error.log"
    CustomLog "logs/site2-access.log" common
    <Directory "C:/xampp/htdocs/你的第二个站点目录">
        Require all granted
        AllowOverride All
        Options Indexes FollowSymLinks
    </Directory>
</VirtualHost>
  • 第三个虚拟主机改成8081端口,配置逻辑和上面一致,替换对应的目录和日志路径即可。

步骤3:验证配置并重启Apache

在XAMPP控制面板中,点击Apache模块的「Config」→「Check config」,确认配置没有语法错误后,重启Apache服务。

访问方式

局域网内其他电脑直接通过你的主机局域网IP加端口访问:

  • 访问第一个站点:http://192.168.x.x(默认80端口可以省略)
  • 访问第二个站点:http://192.168.x.x:8080
  • 访问第三个站点:http://192.168.x.x:8081

方案二:利用mod_vhost_alias实现动态路径访问(适合站点目录有规律的场景)

如果你的三个站点目录命名有规律(比如AFNet、SiteB、SiteC),可以用Apache的mod_vhost_alias模块实现通过「主机IP/站点目录名」的方式访问,同样不需要修改hosts。

步骤1:启用mod_vhost_alias模块

打开httpd.conf,找到下面这一行,去掉前面的#注释:

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

改成:

LoadModule vhost_alias_module modules/mod_vhost_alias.so

步骤2:修改vhosts.conf配置

删除原来的三个<VirtualHost>配置,替换成如下动态虚拟主机配置:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "C:/xampp/htdocs"
    ServerName 192.168.x.x  # 替换成你的主机局域网IP
    UseCanonicalName Off
    # 自动映射URL中的路径到对应的站点目录
    AliasMatch ^/([^/]+)(.*) "C:/xampp/htdocs/$1$2"
    <Directory "C:/xampp/htdocs/*">
        Require all granted
        AllowOverride All
        Options Indexes FollowSymLinks
    </Directory>
</VirtualHost>

步骤3:重启Apache并访问

重启Apache后,局域网内其他电脑可以这样访问:

  • 访问AFNet站点:http://192.168.x.x/AFNet
  • 访问第二个站点:http://192.168.x.x/你的第二个站点目录名
  • 访问第三个站点:http://192.168.x.x/你的第三个站点目录名

关键注意事项

  • 防火墙设置:确保你的主机防火墙开放了对应的端口(80、8080、8081等),否则局域网内其他电脑无法连接。
  • 固定局域网IP:建议给运行XAMPP的主机设置固定的局域网IP,避免IP变动导致访问失败。
  • 配置验证:每次修改配置后,一定要用Apache的配置检查工具验证语法,避免重启失败。

内容的提问来源于stack exchange,提问作者Pawtang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:47:58