Macbook 不会打开端口

Macbook 不会打开端口

我在开发时尝试允许我的手机访问 Macbook Pro 上本地托管的网站!它在 tango 环境中本地运行在端口 5000 上的 127.0.0.1(我被告知 127.0.0.1 无关紧要),而我的无线路由器提供给我的 IP 是 192.168.1.172。据我所知,我应该能够通过转到 192.168.1.172:5000 在同一无线网络上从我的手机访问该网站,但是 safari 始终找不到服务器!在我的计算机上进行快速端口扫描也显示端口 5000 甚至没有打开。我该如何打开此端口以便可以访问在计算机上运行的网站?非常感谢您的帮助!运行最新版本的 Mavericks。

答案1

我在开发过程中尝试允许我的手机访问我的 Macbook Pro 上本地托管的网站!

好的。我们这里至少有两种不同的设备。

它在 Tango 环境中本地在端口 5000 上运行 127.0.0.1(我被告知 127.0.0.1 并不重要)

您被告知的信息有误,或者可能信息不够详细。
无论您使用 127.0.0.1:5000 还是 192.168.1.172:5000,都没有关系当你从你的 MacBook 连接时

当您尝试从手机连接时,这很重要。127.1 是 *本地** 主机。对于手机来说,这意味着手机本身。对于 MacBook 来说,这意味着 MacBook 本身。尝试从手机连接到 127.0.0.1:5000 将尝试访问手机上的某些内容,而不是 MacBook 上的 Web 服务器。

据我所知,我应该能够通过同一无线网络通过手机访问该网站,地址是 192.168.1.172:5000

如果您还将其托管在 192.168.1.172:5000 上,那么可以。但您需要告诉 Web 服务器要监听哪些 IP。一个非常明智的默认设置是仅绑定到本地主机(因此仅绑定到 127.1:5000 或 ::1 5000)。除非您在配置中更改了这一点,否则不会有任何内容监听该 IP:端口对。

对我的电脑进行快速端口扫描也显示端口 5000 甚至没有打开。我该如何打开此端口以便访问我电脑上运行的网站?

转到您的网络服务器软件并将其绑定到 192.168.1.172:5000

答案2

在通信中,127.0.0.1 是自己:连接 127.0.0.1:5000 意味着在端口 5000 上连接您自己的 PC。如果您从第二台 PC 执行此操作,它将尝试连接自己,而不是第一台 PC。如果从第一台 PC 替换 127.0.0.1,您将获得相同的效果,因为第一台 PC 正在尝试在端口 5000 上连接自己。

但是现在,如果您尝试从第二台 PC 访问端口 5000 上第一台 PC 的地址,那么这不再是对其自身的调用,并且没有服务可以回复您。

这是一项安全措施:只要您的 Web 服务器不安全,它就不会暴露给全世界。将来的某个时候,您必须学习如何使其可用。

因此,为了使其从外部可访问,您在此开发阶段需要做的是在第一台 PC 上设置端口转发,告诉它将 IP_Address_of_Web_server:5000 上的所有请求转发到 127.0.0.1:5000。

你可以用一种临时的方式来做,这种方式和上面讨论的安全措施是一样的。假设 Web 服务器的 IP 地址是 192.168.1.10,那么这两个命令

  mkfifo mypipe
  nc -l 5000 0<backpipe | nc localhost 5000 1>backpipe

将端口 5000 从你的 IP 地址转发到自己。现在应该可以工作了。

相关内容