use*_*544 6 networking apache-http-server wireless-networking
我在我的 Macbook 上设置了一个 Apache HTTP 服务器,这样我就可以在学习 PHP 的同时访问 PHP 的全部功能。我没有注册域名或一致的网络访问权限,因此在此服务器上托管实际网站的想法是不可行的;我这样做只是为了学习目的。
无论如何,我在想什么。我注意到当我在网络浏览器中输入我的私有 IP 地址(不是环回地址,而是实际的 DHCP 分配地址)时,我可以访问由我的服务器托管的网页,我认为这意味着我可以从我的计算机外部访问它. 然而,当我输入我的公共 IP 地址时,我得到了一个网络超时,我猜这意味着我无法从本地网络外部访问我的 Web 服务器(除非连接真的很慢)。
我想知道这是为什么。是否设置了一层安全措施来防止人们从外部访问 LAN 内的计算机?
小智 8
从您的计算机开始,线路中可能存在三个阻塞跃点:
您的操作系统可能配置了防火墙并阻止传入请求。您可以使用同一子网/不同子网上的不同机器进行检查,但仍位于您的家庭路由器后面。我不熟悉 MAC OS 所以我不能告诉你如何配置防火墙。
您连接的家用路由器(或大多数 wifi 路由器)使用NAT来“隐藏”其背后的子网,并允许您的多个设备通过您从 ISP 获得的单个全局 IP 地址进行通信。如果您从 LAN 向任何设备向远程服务器发出请求,远程服务器将看到该请求是由您的路由器发起的。如果您从外部向您的公共 IP 地址发出请求,您实际上是在为您的路由器寻址。如果您希望所有发往路由器的 HTTP 请求都由其背后的笔记本电脑提供服务,您必须在路由器菜单中将端口转发规则添加到笔记本电脑的 IP 地址和端口 80(标准 HTTP 端口),或端口 443 HTTPS。
如今,ISP 甚至不为您提供公共(全球可路由)IP 地址的情况越来越普遍。ISP 还使用 NAT(以保存全局 IPv4 地址),您路由器的外部 IP 地址来自您 ISP 的私有子网。这需要在 ISP 的路由器中注册端口转发规则,他们不会为您做这些。在这种情况下,您无法从 Internet 访问您的笔记本电脑。
发生这种情况的原因是 NAT 转换。
当您连接到 Internet 时,您的 ISP 会为您提供一个公共 IP 地址,以便您可以与 Internet 通信。
当互联网上的某个人想要访问您的网络服务器,并且他们输入了公共 IP 地址时,路由器需要知道请求在网络中的哪个位置。这称为 NAT 转换。它是通过设置端口映射来完成的。
网站使用默认为端口 80 的 HTTP 流量,因此您需要在路由器中创建一个规则来告知端口 80 需要转发到内部 IP 地址。一旦完成,并且外部有人在他们的浏览器中输入您的公共 IP 地址,您的路由器现在知道它必须将请求转发到您的 macbook。
现在,这个问题还有一个补充。如果你设置了端口转发,大多数路由器不会知道你的公网IP地址是你自己的,所以你很可能仍然无法从你自己的公网IP地址访问你的网站。
您的 macbook 将请求发送到路由器,路由器将其发送给 ISP,ISP 将其发回,而路由器并不期待它,因此它会忽略该请求,从而导致超时,因为它无法连接到自己。
| 归档时间: |
|
| 查看次数: |
73207 次 |
| 最近记录: |