一次DDNS和端口映射的探索

开发测试的时候,大部分都是在一个电脑上同时开启后端与前端,如果有安卓开发的时候,那基本上也需要连接在同一个网段下也就是同一个局域网内才可以保证通讯的正常。如果真要上生产环境,那基本上会购买云服务器,默认包含一个公网ip,我们会使用公网ip来保证消息的传达。现在如果我们既不想花钱买云服务器(坚决秉持不花钱才是香的原则),各设备又没有在同一个局域网下面,那么该怎么办呢?这就是本文的重点。

环境介绍

DDNS:即动态域名解析。
环境:电信天翼猫 + 路由

首先我们要知道,电信天翼猫默认自带路由功能,即路由模式,另外还有一个桥接模式。目前电信的默认模式就是路由模式,如果通过自助服务保修宽带故障,电信会默认下发路由模式的配置。

我的环境:

  • 猫启用路由模式,猫路由的ip网段为:192.168.1.2~192.168.1.254,家用路由器连接在lan口,此时路由器就等于是网线连接在猫上的一个设备。各种设备通过WiFi连接路由器。
  • 路由器的IP:192.168.1.4。
  • 路由器上的ip网段为:192.168.0.2~192.168.0.254,我的电脑通过网线连接在路由器上,IP为:192.168.0.153。
  • 电脑开启服务,这很简单,随便打开一个 vue 前端项目,得到网页地址为:192.168.0.153:5173。

端口映射

此时,在局域网段,也就是连接在路由器上的所有设备,都可以访问192.168.0.153:5173。这很好理解,毕竟是局域网嘛。但是如果此时我把手机连接在猫的路由器上,也就是网段在192.168.1.XX内,这个时候访问192.168.0.153:5173就会提示无响应。

此时该怎么办呢?那就可以用到端口映射功能了。在路由器端口映射功能处添加对应的端口和IP地址。
Pastedimage20240729152902.png

这个设置成功后,我就可以通过路由器的ip地址(192.168.1.4)访问192.168.0.153:5173了。也就是说如果我把手机连接在猫的WiFi上,IP网段地址为:192.168.1.XX,那么就会和路由器的IP地址192.168.1.4网段一致。在手机输入192.168.1.4:5173,就可以访问到我们的网页了。

DDNS

假设我们不知道路由器的IP地址,或者说,我们想让连接在猫上的用户都方便访问192.168.1.4:5173,那每次输入192.168.1.4:5173会很麻烦,这个时候,可以用到动态域名解析。操作也很简单,直接打开路由器上DDNS功能。
Pastedimage20240729153845.png
此处我用的是3322服务商,电信天翼猫(原则上他也有一半路由器功能)上也有ddns功能,但已经写死只能用花生壳服务商。可是花生壳服务商又比较难用。所以我此处使用3322,注册账号和密码,注册成功后,可以申请一个免费的域名。账号、密码、域名就是截图中填写数据。

Pastedimage20240729154224.png
3322网站内,点击管理中心,给申请的免费域名绑定一个公网ip。也就是192.168.1.4,保存后,连接在猫上的用户就可以通过sll.x3322.net:5173 访问网页。

如何实现真正的动态域名解析呢?

现在我们有一个需求:我们不在家,要想访问我们的电脑上的网页192.168.0.153:5173,该怎么办呢?

我们可以以小见大:192.168.0.153 可以映射到 192.168.1.4 ,192.168.1.4 则需要映射到电信给我们分配的ip上。可是目前电信分配的ip也是局域网ip。假设我们把 192.168.1.4 映射到 电信分配的局域网ip上,那么原则上来说,只要连接小区里别人家的网,也是可以访问我们那个网页的。如果想要一个真正的公网IP,需要单独申请。目前我这县城里是没法申请下来的,打电话问就说需要花大价格购买,但是上海的朋友就可以很顺利的申请下来。唉,这就是大城市的好处。

假设我们申请公网IP成功。此时最好把猫改为桥接模式,也就是猫只做转换光纤信号的作用,拨号功能留给路由器来处理。此时路由器的IP就是那个公网ip。连接在路由器上面的设备使用的都是局域网IP,可以通过端口映射和DDNS功能实现由外网访问本地电脑。