通过接入点从 LAN 访问外部 IP

通过接入点从 LAN 访问外部 IP

我在一台相对较旧的计算机上托管一个 Web 服务器,并使用 Nginx 作为其反向代理。我使用端口转发来转发服务器的 80 和 443 端口,并在域名注册商的 DNS 记录中进行了设置。我目前正在使用顶级域名。

当我尝试在连接调制解调器的情况下访问我的网站(外部 IP)时,它运行良好。因此,我认为 Hairpinning 在调制解调器中默认启用。我还有一个路由器,它通过 WDS 桥接到主调制解调器。

但是当我连接到路由器时,我的网站却无法工作。但我不能说路由器没有连接到互联网,因为所有其他网站在连接到路由器时都可以正常工作。

另外,如果我使用内部 IP(192.168.xx),当我使用 SSH 配置我的 Web 服务器时,它也能正常工作。路由器中的 DHCP 被禁用,所以我不确定为什么我无法通过路由器访问我的网站。

答案1

我猜测这是您的 DNS 记录或设置存在问题,这种情况在多个网络(即内部和外部)中托管网站时很常见。

在连接到每个网络(调制解调器、路由器、外部)时,在您的站点上执行 nslookups。在外部,您应该看到您的公共 IP,在内部,您应该看到服务器的私有 IP(192.168.xx)。如果您在内部连接时看到公共 IP,则该网络未配置为使用您的内部 DNS。

但是,如果情况是,当您连接到调制解调器时,您可以通过公共 IP 在内部访问您的站点,但当您连接到路由器时却不能,我猜路由器配置为无线 AP,而不是网桥。即,它通过无线网桥对从以太网发送的数据包进行 NAT,而不仅仅是切换它们。在这种情况下,您必须调整路由器上的设置。在更改任何内容之前进行备份,并下载手册你失去了互联网。

答案2

所以显然这实际上是一个发夹问题,不是调制解调器的问题,而是路由器的问题。问题很简单,我只需要添加内部服务器,这样我就必须添加


    192.168.1.x domain.com

对于C:\Windows\System32\drivers\etc\hosts我用来访问网站的笔记本电脑,我必须/etc/hosts/在 Linux 服务器上编辑文件。这解决了问题,但我仍然必须在连接到路由器的每台设备上执行此操作。

相关内容