为什么我认为我已经正确完成了所有操作,但是端口转发却不起作用?

为什么我认为我已经正确完成了所有操作,但是端口转发却不起作用?

我想创建一个小型 Web 应用程序,供本地网络之外的计算机(路由器另一侧)访问。几天来我一直在寻找解决方案,也浏览了问题和答案,但都无济于事。

为了实现这一点,我决定使用端口转发功能。然而,尽管我认为所有设置都正确,但不知何故它不起作用。奇怪的是,当我从给定本地网络内的另一台设备访问给定计算机/应用程序时,端口转发可以正常工作。当我尝试从本地网络外访问时,问题就出现了。

我正在使用188.2.XX.XX:9999(WAN IPv4 地址绑定到端口 9999)。没有响应(无限等待 - ERR_CONNECTION_TIMED_OUT)。

我迄今所做的事情:

  1. 我检查了我的 ISP 是否使用 CGNAT - 考虑到 WAN 地址和我使用“whatismyipaddress”获得的地址相同,我认为没有
  2. 我检查了ipconfig /all应用程序正在运行的计算机的 MAC 地址和本地 IP 地址,并在 DHCP 静态租约中设置了我的计算机的 MAC 地址具有该静态地址(以便它不会改变) 图像
  3. 我将端口转发到了端口 9999(我知道有些 ISP 阻止了端口 80,因此我尝试了另一个端口)。 图像
  4. 我关闭了防火墙。 图像

我的简单 Web 应用程序(Golang):

package main

import (
    "fmt"
    "net/http"
)

func homeHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Welcome to the Home Page!")
}

func main() {
    http.HandleFunc("/", homeHandler)

    port := 9999
    fmt.Printf("Server is running on http://192.168.0.11:%d\n", port)
    http.ListenAndServe(fmt.Sprintf(":%d", port), nil)
}

我想做的是从本地网络之外访问该应用程序。我通过手机进行测试。也就是说,如果我在 WiFi 下(在本地网络中),则188.2.XX.XX:9999一切正常,我可以访问该应用程序。

问题是,当我离开本地网络(切换到移动数据)时,188.2.XX.XX:9999它就不起作用了。它等待了一段时间,然后我收到一条消息,说请求时间已过期

另外,来自该城市另一个地方(来自另一个本地网络)的朋友尝试点击188.2.XX.XX:9999,但也没有用,与我用手机尝试时的情况相同。

我不知道我错在哪里。

相关内容