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

我目前正在做一个项目,我想在家里的两台笔记本电脑上进行测试,其中一台笔记本电脑连接到另一台本地主机。我正在使用XAMPP。我怎么做呢?

617961 次浏览

假设两台机器在同一个工作组中,在你想要连接的机器上打开cmd.exe,键入ipconfig,并在IPv4 Address行记录IP。

然后,在要连接的机器上使用

http://{the IP of the target machine}:{port number}

例如http://192.168.0.1:80如果你的站点运行在端口80。

这样就行了。

可能是您的防火墙阻止您访问本地主机的web服务器 如果需要,将两台计算机的互联网安全防病毒网络安全的IP地址设置为安全IP地址 如何找到您的windows PC的IP地址:开始>(运行)键入:cmd (Enter)
(这将打开黑盒命令提示符)
输入ipconfig (Enter)
假设您的Apache或IIS web服务器安装在您的PC上:192.168.0.3
你想用你的笔记本电脑访问你的网络服务器。(笔记本电脑的IP是192.168.0.5)
在你的个人电脑上,你在你的Firefox或Internet Eplorer浏览器中输入:http://localhost/来访问你的web服务器上的数据 在你的笔记本电脑上输入http://192.168.0.3/来访问你PC上的web服务器。< br >
为了让所有这些工作,你需要正确安装一个web服务器(例如IIS, Apache, XAMP, WAMP等)

如果它不工作,试着从你的笔记本电脑ping你的PC:
在笔记本电脑上打开命令提示符:Start > cmd (Enter)
ping 192.168.1.3 (Enter)
.使用实例 如果ping不通,说明防火墙阻止了您的连接,或者网络布线有问题。重新启动你的调制解调器或网络交换机和你的机器
.关闭正在使用端口的聊天程序等程序 您也可以尝试不同的端口号: Http:192.168.0.3:80或Http:192.168.0.3:81或任何结尾的随机数

这是完全有可能的。这里我们以Apache为例。

假设你是Symfony2的忠实粉丝,你想从4台不同的计算机(托管你的网站的主要计算机,以及连接到主计算机(无线或非无线)的Mac、Windows和Linux发行版)访问你的symfony网站http://symfony.local/

一般示意图:

enter image description here


1 设置虚拟主机:

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

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

2 配置主机文件:

为了让客户端(在这种情况下是您的浏览器)理解symfony.local的真正含义,您需要编辑计算机上的hosts文件。每次你在浏览器中输入URL时,你的电脑都会试图理解它的意思!symfony.local对计算机没有任何意义。因此它将尝试将名称symfony.local解析为一个IP地址。它将首先查看计算机上的hosts文件,看看他是否能将IP地址与您在地址栏中键入的IP地址匹配。如果不能,则它将请求DNS服务器。这里的技巧是将以下内容附加到您的hosts文件。

  • MAC < em > < / em >中,该文件位于/private/etc/hosts;
  • LINUX < em > < / em >中,该文件位于/etc/hosts;
  • WINDOWS < em > < / em >中,该文件位于\Windows\system32\private\etc\hosts;
  • WINDOWS 7 < em > < / em >中,该文件位于\Windows\system32\drivers\etc\hosts;
  • WINDOWS 10 < em > < / em >中,该文件位于\Windows\system32\drivers\etc\hosts;

主机文件

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

从现在开始,每次输入symfony。这台计算机上的Local,您的计算机将使用loopback接口连接到symfy . Local。它会理解您想要在localhost(127.0.0.1)上工作。

3. 从另一台计算机访问symfony.local:

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

我现在如何通过另一台电脑访问我的网站?

现在这很简单!我们只需要告诉其他计算机如何找到symfony.local!我们怎么做呢?

3 获取托管网站的计算机的IP地址:

我们首先需要知道托管网站的计算机上的IP地址(我们从一开始就在工作的那个)。在终端中,在MACLINUX上输入ifconfig |grep inet,在WINDOWS上输入ipconfig。让我们假设这台计算机的IP地址是192.168.1.5

3 b 编辑您试图访问网站的计算机上的hosts文件。:

同样,在MAC < em > < / em >上,该文件位于/private/etc/hosts;在LINUX < em > < / em >,在/etc/hosts;在WINDOWS < em > < / em >上,在\Windows\system32\private\etc\hosts中(如果你使用WINDOWS 7 < em > < / em >,这个文件在\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上测试你的网站(如果你不想使用Windows计算机),你可以应用相同的策略。这在在OSX上制作Windows / IE测试环境中有很好的解释。


您还可以从移动设备访问本地主机

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

那么,解决方案是在托管网站的机器上安装一个代理服务器,并从iphone连接到该代理服务器。实际上,下面的帖子解释得很好,设置起来并不长:

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

在Linux上,你可以通过使用鱿鱼作为代理服务器来适应Mac操作系统。

在Windows上,你可以使用提琴手来实现。解决方案在下面的帖子中描述:使用Fiddler监控iPhone流量


编辑23/11/2017:嘿,我不想修改我的Hosts文件

< p > @Dre。任何可能的方式,以访问网站从另一台电脑不 手动编辑主机文件?假设我想要100台电脑 访问网站

这是一个有趣的问题,因为它与OP问题有关,让我来帮忙。

你必须在你的网络上做一个改变,这样每台机器都知道你的网站在哪里。大多数日常使用的路由器不会这样做所以你必须在你的网络上运行你自己的DNS服务器

假设您有一个路由器(192.168.1.1)。这台路由器有一个DHCP服务器,为网络上的100台机器分配IP地址。

现在,假设你有,如上所述,在同一网络上,一台位于192.168.1.5的机器上有你的网站。我们将该机器命名为pompei

$ echo $HOSTNAME
pompei

和以前一样,机器庞贝古城192.168.1.5上运行一个HTTP服务器,它为你的网站symfony.local服务。

为了让每台机器都知道symfony.local托管在庞贝古城上,我们现在需要一个网络上的自定义DNS服务器,它知道symfony.local托管在哪里。网络上的设备将能够在内部解析由庞贝古城提供的域名。

3个简单的步骤。

步骤1:DNS服务器

在你的网络上设置一个DNS服务器。为了方便起见,让我们把它放在庞贝古城上,并使用类似dnsmasq的东西。

Dnsmasq提供了域名系统(DNS)转发器...

我们希望庞贝古城运行DNSmasq来处理DNS请求Hey, pompei, where is symfony.local并响应Hey, sure think, it is on 192.168.1.5 but don't take my word for it

继续安装dnsmasq, dnsmasq配置文件通常在/etc/dnsmasq.conf中,这取决于你的环境。

我个人使用no-resolv和谷歌服务器server=8.8.8.8 server=8.8.8.4

*注意:*如果修改/etc/hosts文件,总是重新启动DNSmasq,否则任何更改都不会生效。

2 .防火墙

为了工作,庞贝古城需要允许进出端口53的“域”数据包。当然!这些是DNS数据包,如果庞贝古城不允许它们,就根本无法到达你的DNS服务器。去把53号端口打开。在linux上,你通常会使用iptables来实现这一点。

分享我的想法,但你很可能必须深入了解你的防火墙,并很好地理解一切。

#
# Allow outbound DNS port 53
#
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT


iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT


iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT


iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT

3 .路由器

告诉你的路由器你的dns服务器现在在192.168.1.5上。大多数情况下,你只要登录到路由器上,就可以很容易地手动更改。

就是这样,当你在一台机器上并请求symfony.local时,它会问你的DNS服务器 symfony.local托管在哪里,一旦它从DNS服务器接收到答案,就会将正确的HTTP请求发送到192.168.1.5上的庞贝古城

我让你玩这个,享受这个过程。这2个步骤是主要的指导方针,所以如果这是您第一次这样做,那么您将不得不花几个小时进行调试。假设这是更高级的网络,有主DNS服务器,备用DNS服务器,等。。好运!

如果在执行上面的步骤之后,仍然不能从其他设备访问localhost,这是一个旁注。这可能是由于apache ports.conf配置为本地服务(127.0.0.1),而不是外部服务。

检查以下内容(适用于ubuntu apache2)

  $ cat /etc/apache2/ports.conf

如果设置如下:

NameVirtualHost *:80
Listen 127.0.0.1:80

然后将其更改回默认值

NameVirtualHost *:80
Listen 80

这个工具为我节省了很多,因为我在我的机器上没有管理权限,并且已经安装了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/

为了在两台笔记本电脑上进行测试,你可以使用http://localhost.run/https://ngrok.com/这样的服务

在Mac OS X上:

  1. 在终端中,运行ifconfig来获得您的机器在其当前网络上的内部IP。它可能是类似192.168.1.14010.0.1.174的东西。

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

  3. 在你的手机上,访问IP地址(例如192.168.1.140:3000)并确保指定端口。

如果你在Windows上,使用ipconfig来获取本地IPv4地址,然后在Apache配置文件下指定:httpd . conf,如:

Listen: 10.20.30.40:80

重新启动Apache服务器并从网络上的其他计算机上测试它。