如何从同一networking上的另一台计算机连接到本地主机?

我目前正在一个项目上工作,我想在家里的两台笔记本电脑上testing一台笔记本电脑连接到另一台笔记本电脑的本地主机。 我正在使用XAMPP。 我该怎么做呢?

这绝对有可能。 我们将在这里介绍一下Apache的一般情况。

比方说,你是一个Symfony2的粉丝,你想从4台不同的计算机上访问你的symfony网站http://symfony.local/ (主网站托pipe你的网站,还有Mac,Windows和Linux发行连接(无线与否)到主电脑。

一般素描:

在这里输入图像说明


1 设置一个虚拟主机

您首先需要在您的apache httpd-vhosts.conf文件中设置一个虚拟主机。 在XAMP上 ,你可以在这里find这个文件: C:\xampp\apache\conf\extra\httpd-vhosts.conf 。 在MAMP上 ,你可以在这里find这个文件: Applications/MAMP/conf/apache/extra/httpd-vhosts.conf 。 这一步准备在您的计算机上处​​理symfony.local请求的Web服务器。 您需要提供虚拟主机的名称以及您的网站的根目录/主文件夹。 为此,请在该文件的末尾添加以下行。 您需要将DocumentRoot更改为主文件夹所在的位置。 这里我把/Applications/MAMP/htdocs/Symfony/作为我的网站的根。

 <VirtualHost *:80> DocumentRoot "/Applications/MAMP/htdocs/Symfony/" ServerName symfony.local </VirtualHost> 

2 configuration您的主机文件

对于客户端(您的浏览器)来理解symfony.local究竟是什么意思,您需要在您的计算机上编辑主机文件。 每当您在浏览器中inputurl时,您的电脑就会试图了解它的含义! symfony.local对于电脑symfony.local并不意味着什么。 所以它会尝试将名称symfony.local为一个IP地址。 这将通过首先查看计算机上的hosts文件来查看是否可以将IP地址与您在地址栏中键入的内容进行匹配。 如果不能,那么它会问DNS服务器 。 这里的技巧是将以下内容添加到主机文件中。

  • MAC上 ,这个文件在/private/etc/hosts ;
  • LINUX上 ,这个文件在/etc/hosts ;
  • WINDOWS上 ,这个文件位于\Windows\system32\private\etc\hosts ;
  • WINDOWS 7上 ,该文件位于\Windows\system32\drivers\etc\hosts ;
  • WINDOWS 10上 ,这个文件位于\Windows\system32\drivers\etc\hosts ;

主机文件

 ## # Host Database # localhost is used to configure the loopback interface ## #... 127.0.0.1 symfony.local 

从现在起,每当你在这台电脑上inputsymfony.local,你的电脑就会使用回送接口来连接到symfony.local。 它会明白,你想在本地主机上工作(127.0.0.1)。

3 从其他计算机访问symfony.local

我们终于到了你的主要问题是:

我怎样才能通过其他电脑访问我的网站?

那现在很容易! 我们只需告诉其他电脑如何findsymfony.local ! 我们如何做到这一点?

3a 获取托pipe网站的计算机的IP地址

我们首先需要知道主持网站的计算机的IP地址(我们从一开始就一直在努力的)。 在terminal上,在MACLINUX上inputifconfig |grep inet ,在WINDOWSinputipconfig 。 我们假设这台电脑的IP地址是192.168.1.5

3b 在您尝试访问网站的计算机上编辑主机文件。

再次,在MAC上 ,这个文件在/private/etc/hosts ; 在LINUX上 ,在/etc/hosts ; 并在WINDOWS \Windows\system32\private\etc\hosts (如果您使用WINDOWS 7 ,这个文件是在\Windows\system32\drivers\etc\hosts )诀窍是现在使用的IP地址我们试图访问/谈话的计算机:

 ## # Host Database # localhost is used to configure the loopback interface ## #... 192.168.1.5 symfony.local 

4 最后在您的浏览器中享受结果

您现在可以进入您的浏览器并键入http://symfony.local以在不同的计算机上精美地查看您的网站! 请注意,如果您是OSX用户,则可以使用相同的策略,通过Virtual Box在Internet Explorer上testing您的网站(如果您不想使用Windows计算机)。 在OSX上制作你的Windows / IEtesting环境中有一个很好的解释。


您也可以通过移动设备访问您的本地主机

您可能想知道如何从移动设备访问您的本地主机网站。 在某些情况下,您将无法修改设备上的主机文件(iPhone,iPad …)(不包括越狱)。

那么,解决scheme就是在托pipe网站的计算机上安装代理服务器,并从您的iPhone连接到该代理。 实际上,在以下文章中已经很好地解释了这个问题,并且没有太长的设置:

在Mac上,我build议: 在移动设备上使用本地主机名testingMac OS X网站 :使用SquidMan作为代理。 这是一个100%免费的解决scheme。 有些人也可以使用查尔斯作为代理服务器,但它是50美元。

在Linux上,您可以使用Squid作为代理服务器来调整Mac OS的方式。

在Windows上,您可以使用Fiddler来做到这一点。 在下面的文章中描述了解决scheme: 使用Fiddler监控iPhonestream量

如果两台计算机都在同一个工作组中,请在要连接的计算机上打开cmd.exe ,inputipconfig并在IPv4 Address行中记下IP。

然后,在要连接的计算机上,使用http:// + the IP of the target machine

这应该做到这一点。

它可能是你的防火墙阻止你访问本地主机的networking服务器。
如果需要,将两台计算机的互联网安全防病毒networking安全的IP地址作为安全的IP地址。
如何find你的Windows PC的IP地址:开始>(运行)input:cmd(回车)
(这会打开黑匣子命令提示符)
inputipconfig(回车)
假设您的PC上安装了Apache或IISnetworking服务器:192.168.0.3
你想用你的笔记本电脑访问你的networking服务器。 (笔记本电脑的IP是192.168.0.5)
在您的PC上input:http:// localhost /在您的Firefox或Internet Eplorer浏览器中访问您的networking服务器上的数据。
在您的笔记本电脑上inputhttp://192.168.0.3/来访问您PC上的networking服务器。

对于所有这些工作,你需要正确安装一个Web服务器(例如IIS,Apache,XAMP,WAMP等)。

如果不起作用,请尝试从笔记本电脑上ping您的电脑:
打开你的笔记本电脑的命令propmt:开始> cmd(回车)
ping 192.168.1.3(回车)
如果ping命令失败,则防火墙将阻止您的连接,或者您的networking布线出现故障。 重新启动调制解调器或networking交换机和您的机器。
closures程序,如使用您的端口的聊天程序。
您也可以尝试一个不同的端口号:http:192.168.0.3:80或http:192.168.0.3:81或最后的任何随机数

这个工具节省了我很多,因为我的机器上没有pipe理权限,并且已经安装了nodejs。 出于某种原因,我的networking上的configuration不允许我访问其他机器,只需在浏览器上指向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/

如果在完成上述步骤之后仍然无法从其他设备访问本地主机,这是一个附加说明。 这可能是由于Apache的ports.confconfiguration为本地服务(127.0.0.1)而不是在外部。

检查以下内容(对于ubuntu apache2)

  $ cat /etc/apache2/ports.conf 

如果以下设置,

 NameVirtualHost *:80 Listen 127.0.0.1:80 

然后将其更改回默认值

 NameVirtualHost *:80 Listen 80 

要在同一台无线和互联网上的笔记本电脑上进行testing,您可以使用http://localhost.run/或https://ngrok.com/

在Mac OS X上:

  1. 在terminal中,运行ifconfig | grep 192. ifconfig | grep 192.获取当前networking上的机器的内部IP。 它可能是类似于192.168.1.140

  2. 启动服务器。 例如, node server.js可能会在某个端口上启动服务器。

  3. 在您的手机上,访问192.168.1.140:3000或您的服务器运行的任何端口。