如何从同一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上,在MAC和LINUX上inputifconfig |grep inet
,在WINDOWS
inputipconfig
。 我们假设这台电脑的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
如果在完成上述步骤之后仍然无法从其他设备访问本地主机,这是一个附加说明。 这可能是由于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上:
-
在terminal中,运行
ifconfig | grep 192.
ifconfig | grep 192.
获取当前networking上的机器的内部IP。 它可能是类似于192.168.1.140
-
启动服务器。 例如,
node server.js
可能会在某个端口上启动服务器。 -
在您的手机上,访问
192.168.1.140:3000
或您的服务器运行的任何端口。