路由器设置外网访问

前言

程序开发者在没有服务器的情况下,可把自己的电脑当作服务器提供给外网访问。这里可以通过路由器设置来实现(或许还有其它的方式)。不过这种方式需要满足三个条件。

条件

  1. 具备路由器的操作权限(知道路由器的登录名和密码)
  2. 路由器具备虚拟服务器设置的功能
  3. 路由器拨号上网得到的 ip 是公网 ip

开始

  1. 登录路由器查看 ip

    image-20210222161027315

    查看公网 ip 直接 百度 ip 即可得到。

    image-20210222161223082

    这里如果路由器 ip 不等于公网 ip 那么得打电话给运营商设置了。我自己的就是这样。(客服帮助设置后。路由器重新设置拨号上网后即可)

  2. 配置虚拟服务器

    我家的 tp-link 路由是这样的

    image-20210222160811607

    image-20210222161758009

    没有就添加一条。常用服务器选 http 就好。

    外部端口:根据自己的情况填写。

    内部端口:电脑上启动的服务的端口

    ip 地址:填写电脑的 IP 地址。可通过 cmd 执行 ipconfig 查询到。

    协议类型:tcp/udp 所有

例如

我电脑上启动 idea 后有这样一个接口:

image-20210222162324816

我电脑的 IP 地址为:

image-20210222162457936

设置好后即可通过公网 ip 经行访问。

image-20210222162620916

如果我们有域名。把域名解析到该地址,那么就可以通过域名访问了。

假象

到了上面一步我以为我已经成功了。直到弄微信支付时配置 js安全域名 。我才知道这是个假象。什么假象呢?在该路由器下的设备这样访问都没有问题。如果我切换网络环境比如用移动数据再访问该地址是无效的。

后来才知道如果想要实现真正意义上的外网访问,得向网络提供商申请开通 80/443 端口,期间似乎还需要备案。复杂程度不亚于去购买一个服务器购买一个域名并备案。