通过局域网从另一台计算机访问本地主机(xampp)-如何?


150

我刚刚在家中建立了Wi-Fi网络。我将所有文件都放在台式计算机(192.168.1.56)上,并希望从另一台计算机(192.168.1.2)访问本地主机。

在我的桌面上,我可以通过普通的http:// localhost访问localhost。Apache照常在端口80上运行。

究竟我该怎么做才能做到这一点?网上有文档,但是它们要么不起作用,要么太零散,令人难以理解。

我认为我必须对我的Apache的httpd.conf文件和hosts文件进行更改。关于进行哪些更改有任何想法吗?



1
这是我在Windows 10上为我工作的内容:转到cmd并键入ipconfig,然后找到您的ipv4地址并将您的网站URL重命名为该ip,例如:192.168.0.2/example。然后在Windows上搜索“允许通过Windows防火墙的应用程序”,在其上单击,然后单击更改设置,并确保已选中http apache服务器。希望对您
有所

我有一个名为app.sitename.com的网站。现在,我可以使用IP地址访问同一网络中另一台PC中的站点。如何使用Subdomian访问。app.ipaddress.com无法正常工作。我该怎么做才能在远程PC中添加子域?
3

Answers:


112

Localhost只是用于回送的名称,例如,将其称为“我”。

要从其他计算机查看它,您可能仅需要http://192.168.1.56http:// myPcsName即可,如果这不起作用,则可能是您的计算机或httpd.conf上运行了防火墙只听127.0.0.1


httpd.conf:如果需要对此进行更改,请听80,您会建议什么?
bcosynot 2011年

1
就是说在端口80上监听,很有可能它已经在监听了。netstat -a,查找端口80上的项目,它将告诉您其侦听的IP
BugFinder 2011年

1
到了那里,这意味着它侦听端口80上的任何请求,而不仅仅是本地主机,因此,如果您的PC被称为vr3609,则http指向它应将您带到您的网站。
BugFinder 2011年

1
如果您从服务器http到服务器的IP地址,它能正常工作吗?如果是这样,则表明服务器上有防火墙阻止其他计算机访问它。
BugFinder 2011年

1
好吧,192.168.1.56,多数民众赞成在网站右边的那个?您需要查看它的配置。它运行什么操作系统?随带的防火墙软件会有所不同。您需要找出上面装有什么防火墙软件,然后找出如何向其添加端口80,以使其他计算机进入。如果它的窗口是您的防病毒软件的一部分,或者甚至可能是Microsoft的一部分。 。如果它的linux机会是它的ipchains,但是,它是一个全新的问题领域。
BugFinder 2011年

46

感谢您的详细解释。

为了详细说明,在Windows中,转到“控制面板”->“防火墙”,例外情况是“添加http和端口80”。然后,在需要https才能工作时,在“服务”中选中“ http(Web服务器端口80)”和“ https(Web服务器端口443)” 。好好好关闭

然后转到网络上的任何计算机,并在网络浏览器中键入http:// computer-name(在其中更改防火墙并运行xampp的位置),祝您开心:


7
我去了控制面板> Windows防火墙>允许通过Windows防火墙的应用程序>允许另一个应用程序>浏览到:XAMPP / apache / bin / httpd.exe并允许它。现在正在工作!
shasi kanth 2016-2-18

谢谢。工作正常。
jewelhuq

要添加到Windows防火墙例外,您可以访问该学习如何:tomshardware.com/news/...
亚历杭德罗·纳瓦

36

这很容易

  1. 转到“ XAMPP控制面板”
  2. 单击apache>配置> Apache(httpd.conf) 在此处输入图片说明
  3. 搜索Listen 80并替换为Listen 8080
  4. 之后,使用ipconfig命令检查您的本地ip (cmd控制台)
  5. 搜索ServerName localhost:80并替换为您的本地ip:8080(例如192.168.1.156:8080)
  6. 之后,打开apache> config> Apache(httpd-xampp.conf) 在此处输入图片说明
  7. 搜索

       <Directory "C:/xampp/phpMyAdmin">
           AllowOverride AuthConfig
           **Require local**   Replace with   **Require all granted**
           ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
       </Directory>```
    
    
  8. 转到xampp>配置>单击服务和端口设置并更改apache端口8080

  9. 重新启动xampp
  10. 然后从另一台计算机打您的IP:8080(例如192.168.1.156:8080)

如果不是全部,则为静态IP。会怎么样?
亚历杭德罗·马里亚奇·金塔纳

不工作。在我的电脑上可以正常工作,但不能在另一台电脑上工作。
MH Fuad19年

这对我不起作用。我收到证书错误:服务器证书不包含与服务器名称匹配的ID
Jon Vote

18

这些是当您希望将PHP应用程序安装在LAN服务器(而不是Web)上时要遵循的步骤。

  1. 获取服务器的内部IP或静态IP(例如:192.168.1.193)
  2. 在记事本中打开XAMPP> apache> conf> httpd.conf文件
  3. 搜索听80
  4. 上面的行看起来像-#Listen 0.0.0.0:80 / 12.34.56.78:80
  5. 更改IP地址并将其替换为静态IP
  6. 保存httpd.conf文件,确保服务器指向#Listen 192.168.1.193:80
  7. 在应用程序根config.php(数据库连接)中,将localhost替换为服务器的IP地址

注意:如果已安装防火墙,请确保将http端口80和8080添加到例外中并允许监听。转到控制面板> Windows防火墙>允许程序通过Windows防火墙进行通信>添加另一个程序名称:http端口:80再添加一个作为http-8080

如果IIS(Microsoft .Net应用程序Internet信息服务器)与服务器上已经安装的任何Microsoft .Net应用程序一起安装,则它已经占用了80个端口。在这种情况下,将#Listen 192.168.1.193:80更改为#Listen 192.168.1.193:8080

希望这可以帮助!:)


这为我解决了。好东西!我一直都删除了#本地IP地址前面的,并且它不起作用,当我包含注释哈希时,#它可以直接使用而无需重新启动来宾VM,只需XAMPP Apache服务并在其中即可。好一个。现在如何获取它以链接到主机上分配的VirutalHosts?
lowtechsun

要从来宾访问主机计算机上分配的VirtualHost,我只需要在来宾的HOSTS文件中输入主机的IP和VirtualHost服务器的名称。做完了 任何人都知道如何使用Fiddler从来宾的浏览器获取到Hosts Apache服务器的流量。在主机上工作,但未从访客获得流量。
lowtechsun

您好,例如192.168.1-100的IP地址范围如何。如何设置?
dkjain

6

这应该是基本设置所需的一切

这种配置不会破坏localhost上的phpMyAdmin

建议在运行服务器的设备上使用静态IP

本示例使用192.168.1.x IP。您的网络配置可能使用其他IP

在Apache的httpd.conf中,您应该具有:

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80

我将名称保留为空白,以便获得默认值:

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#

允许来宾计算机和您自己使用。为安全起见,您可能会避免全部使用“ 允许”,而应使用特定的来宾IP,例如“ 允许来自192.168.1.xxx的允许,其中xxx是来宾计算机的IP”。在这种情况下,您可能还需要考虑访客计算机上的静态IP

# Controls who can get stuff from this server.
#
#    Require all granted
#   onlineoffline tag - don't remove
     Order Deny,Allow
#     Deny from all
     Allow from all 
     Allow from 127.0.0.1
     Allow from ::1
     Allow from localhost
     Allow from 192.168.1.*YOURguestIP*
     Allow from 192.168.1.*YOURselfIP*
</Directory>

重新启动所有服务,并放到网上,从托盘图标



5

转到任务栏中的xampp-control

xampp-control -> Apache --> Config --> httpd.conf

记事本将随配置文件一起打开

搜索

听80

在其上方的一行中,将显示以下内容:12.34.56:80

更改

12.34.56:80 --> <your_ip_address eg:192.168.1.5>:80

重新启动apache服务并检查它,希望它能正常工作...


4

如果您使用的是XAMPP 1.8.3,请导航至文件httpd-xampp.conf并搜索“##新的XAMPP安全概念#server-status | server-info)))“>

     Require local
     ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
     </LocationMatch>

剪切此代码并将其保存在以后使用的位置,即恢复此功能(记住删除此代码会使您的计算机容易受到攻击)。将更改保存在httpd-xampp.conf上,重新启动XAMPP上的服务即可。


对于XAMPP版本7,“要求本地”位于文件apache / conf / extra / httpd-vhosts.conf中
vivanov

3

如果您已连接到Wi-Fi网络,则它会简单得多。只需找到您连接到Wi-Fi的IP。例如:

您的IP是“ 10.10.55.67”。

然后在您的计算机中启动xampp服务器。

然后在连接到同一Wi-Fi n / w的任何其他计算机上,键入

http://your-ip

例如:http://10.10.55.67


3

该工具为我节省了很多,因为我的计算机没有管理员权限,并且已经安装了nodejs。由于某些原因,我网络上的配置无法使我访问其他计算机,而只是指向浏览器上的IP。

# Using a local.dev vhost
$ browser-sync start --proxy

# Using a local.dev vhost with PORT
$ browser-sync start --proxy local.dev:8001

# Using a localhost address
$ browser-sync start --proxy localhost:8001

# Using a localhost address in a sub-dir
$ browser-sync start --proxy localhost:8080/site1

http://www.browsersync.io/docs/command-line/


3

从远程设备访问本地主机

先决条件:您的网站当前正在使用实时服务器之类的工具http://localhost:8081/

a)在同一网络上发布

在同一网络中,您可以使用当前的IP地址或主机名访问计算机。您可以ipconfig | grep IPv4通过发送IP地址到该IP地址来查找正在运行的IP地址或主机名ping -a

http://192.128.1.18:80/
http://hostname:80/

注意:为获得最佳结果,请使用端口80,在专用网络上连接,然后检查防火墙设置。

b)在任何网络上发布(更轻松)

  1. 选项1-您可以使用ngrok在ngrok面向公众的端口上提供端口转发

    下载ngrok并运行以下命令:

    $ ./ngrok http 8081
    

  2. 选项2-您可以使用localhost.run通过以下命令创建ssh隧道:

    ssh -R 80:localhost:8081 kylemit@ssh.localhost.run
    


从本地开发工具访问远程设备

要将浏览器开发工具与连接的设备连接,请按照“ 远程调试Android设备入门”中的说明进行操作。

  1. 在手机上,启用开发人员选项和USB调试
  2. 通过USB将手机插入计算机并设置协议(而非文件/媒体传输)
  3. 打开开发工具>更多工具>远程调试(如果未检测到设备,请在此处尝试)

  4. 找到您的站点,然后单击“检查”,这将打开一个新的检查器窗口


进一步阅读:



1

这是我在Windows 10上为我所做的工作:

1)点击Windows + r并输入cmd。在命令提示符下,键入ipconfig
2)找到您的ipv4地址,并将您的网站URL重命名为该ip,例如:http : //192.168.0.2/example
3)现在,确保您的防火墙可以访问Apache HTTP Server。在Windows上搜索“ 允许应用程序通过Windows防火墙 ”,然后在其上单击鼠标右键,然后在右上角单击更改设置 ,并确保Apache HTTP Server左侧有一个勾号,私有或公共有一个勾号。希望能帮助到你

现在,您可以从局域网中的其他PC访问该网站


1

首先转到Windows机器的网络和共享中心。只需执行一些步骤即可获取IPv4地址。 只看图像图

将IPv4地址放在另一台计算机浏览器上。例如,http // 192.168.0.102

注意

  • 开启Windows防火墙(如果不起作用,否则为可选)

0

首先,您进入命令提示符并键入

Notepad C:/windows/system32/drivers/etc/hosts

然后在您的网站网址下方添加您的IP地址。

其次,您进入命令提示符并输入 notepad c:/xampp/bin/apache/apache2.4.18/conf/extra/httpd-vhosts.conf

然后在下面添加

documentroot "Directory of your site"
Allow from all
Require all granted

0
<Files ".ht*">
 Require all denied
</Files>

 replace to

<Files ".ht*">
 Require local
</Files>

<文件“.HT *”>需要本地#Require都否认</文件>
ASD

3
欢迎使用Stack Overflow!尽管此代码段可以解决问题,但提供说明确实有助于提高您的帖子质量。请记住,您将来会为读者回答这个问题,而这些人可能不知道您提出代码建议的原因。也请尽量不要在代码中加入解释性注释,这会降低代码和解释的可读性!
kayess 2016年

0

在文件中替换 Require Local为。Require all grantedxampp\apache\conf\extra\httpd-xampp.conf



0

托管在本地IP中,

打开CMD:ipconfig

无线局域网适配器Wi-Fi:IPv4地址。。。。。。。。。。。:xx.xxx.xx.xxx



0

如果有人仍然觉得困难,那么这个简单的事情对我有用:

  1. 在您的主系统上,假设托管PC ...转到控制面板> Windows Defender防火墙>允许通过Windows Defender防火墙使用应用程序或功能>更改设置>查找“ Apache HTTP Server”>选中两个复选框(在“私有和上市)。 见截图

    • 就我而言,有两个“ Apache HTTP Server”条目,因此我选中了两个条目的两个复选框。
  2. 在通过同一网络连接的任何其他系统上...打开浏览器>键入:主机PC的IP地址,然后在URL栏中输入项目名称。例如:192.168.72.111/example.com/

希望能帮助到你!谢谢。


-1

因此,我试图通过连接到我自己的LAN上完全不同的服务器来解决类似的问题,以便在断电然后恢复供电时恢复服务器的联机状态,并且其他系统仍可以与自动化进行连接。但是,我的问题是DHCP有时会为服务器提供一个差异IP。该线程回答了Windows本身具有的NAMESERVER的问题。我通过一个批处理文件直接连接到我的服务器IP地址添加http://192.168.1.5来初始化连接,但是当电源出现问题时它将无法连接。我将.bat文件更改为指向http:// DESKTOP-actualnamewhereserver:port并做了。问题解决了。如果我不更改计算机名称,则当DHCP将DESKTOP-actualnamewherewhere服务器分配给新的IP地址时,它仍将在LAN上标识为其自己的名称,因此无论其IP地址如何都可以接受连接。只需为您的无线局域网中的其他用户提供托管Apache服务器的PC的名称,然后说它的名称为DESKTOP-DOUGHFACTORYHUT,他们将输入http:// DOUGHFACTORYHUT:80或您的apache配置设置为托管的任何端口号,例如LOCALHOST:80本质上是与您为服务器设置的DHCP或STATIC IP分配的本地动态IP地址连接的相同对象。


-2

我完全同意BugFinder。

简而言之,只需在运行192.168.1.2的浏览器中输入IP地址192.168.1.56即可!

如果它不起作用,则可能有以下原因:

  1. 网络连接问题:

    • 首先,在192.168.1.2计算机的命令提示符/终端中使用ping 192.168.1.56命令检查网络连接。
  2. 防火墙问题:您的Windows防火墙设置没有XAMPP(apache)的允许规则。(最可能的问题)

    • (解决方案)转到高级防火墙设置,并为Apache可执行文件添加入站和出站规则。
  3. Apache配置问题。:您的apache配置为仅侦听本地请求。

    • (解决方案)您可以通过打开httpd.conf文件,并将Listen 127.0.0.1:80替换 为Listen 80或* Listen :80来实现
  4. 与其他服务器(IIS等)的端口冲突

    • (解决方案)关闭apache服务器,然后在浏览器中打开本地主机。如果获得任何响应,则关闭该服务器,然后启动Apache。

如果以上所有方法都不起作用,则可能是您的apache服务器上存在一些配置问题。尝试找出它,否则,只需重新安装它,然后将所有php文件(htdocs)转移到XAMPP / WAMP的新安装中即可。


1
首先,此职位已有5年历史,因此此答案可能对OP没有帮助。其次,您可以使用Markdown改善答案的格式,使其更易读且易于理解。相信我,这是一件好事。:-)
Isiah Meadows

-3

通过网络运行Node.js服务器

const port = process.env.PORT || 3000; 
const server = http.createServer( 
server.listen(port, '0.0.0.0', ()  => console.log(`Server started on port ${port}`)
));

运行http:// yournetworkipaddress:3000通过局域网(LAN)访问您的应用程序

查找您的网络IP的步骤。

苹果系统

  1. 转到系统偏好设置>网络
  2. 检查所连接的网络IP地址。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.