开启隐藏的中国移动公网IP(家宽动态IP)
之前的文章写完之后,一堆人说我标题党,说我重新定义公网IP。
来来来 本篇文章就来详细的解释一下,并简化一下实现的步骤。
教程中公网IP特指家庭宽带用的动态公网IPV4,非固定公网IP地址。
教程实现有两个大前提条件
通过nat测试工具,确定自己是nat1(fullcone)
测试工具引用github项目:NatTypeTester

如果你拥有爱快/openwrt/routeros等路由系统,需要手动开启fullcone模式,这个大家自行搜索,这里不详细解释。
拥有openwrt 或电脑一台,可以安装lucky,该工具可以在openwrt及docker环境下使用。

省流提醒
非中国移动(西安电信无公网ip,即便满足以上需求,测试失败)用户,请直接跳过。
如果不满足以上需求,即非nat1或不具备硬件条件,请直接跳过。
原理
在网络通信中,stun穿透主要指STUN(Session Traversal Utilities for NAT)协议用于穿透NAT(Network Address Translation)设备的功能。
STUN协议是一种客户端-服务器协议,用于帮助客户端确定它们的公网IP地址和端口号,以及确定NAT设备的类型。这对于需要建立点对点连接的应用程序(如VoIP、游戏等)非常重要。
stun穿透、vpn、frp的区别
stun穿透:无需安装客户端,本地部署,公网直接访问
VPN:一般需要服务端与客户端,而且权限更加严格,安全性更高。
FRP:需要其他服务器介入,参与跳转访问,无法直接由本地完成。
是不是公网ip?
通过教程获取后的ip确实是你在互联网上展示给别人的IP地址。
确定这个地址是你的地址,以及公网ip地址,有两种方法。(也是常见的大家桥接后,判断自己是否是公网ip的方法)
百度直接搜索ip地址,可以看到你的公网ip地址

通过ipw.cn确定公网ip地址

为什么不使用ipv6
因为目前宽带环境下,不是所有地方都有ipv6,比如公司的专线环境下,我使用教程的方法主要实现两个应用内容。当然了,我本地是双栈,ipv6我也在用。
组网
虽然目前有很多通过nat穿透完成组网的方法,比如tailscale与zerotier。但是依旧存在打洞失败的情况存在。利用教程的内容,实现100%直连。这样我在公司中和家里是一样的,完成内网的访问。
PT下载
大部分资源现在都有IPV6的连接,但是IPV4的连接还是比较多的,是我主要刷上传的方式,通过脚本操作修改路由器的防火墙,目前已经实现IPV4的上传与其他用户的连接。未操作前,IPV4只有下载,无上传,而且连接到的用户较少。
哪里的移动不需要,哪里的中国移动可以用。
目前的情况,北京移动,每个月通过氪金的方式,是可以申请到家宽的公网IP的。教程实测河南郑州的移动没问题。如果有朋友在其他地区实现成功,非常欢迎在评论区留言。
和其他运营商的公网IP有什么区别
因为利用stun穿透的特性,端口号是动态的,ip可以利用ddns等方式完成完成动态域名映射, 举例说明
常见家宽端口转发
在其他运营商的公网ip下,假设我们需要将内网192.168.1.36的80端口映射出去。
我们通过非80/443端口,即可完成映射。
假设我们的公网ip是123.123.123.123 假设我们在路由器上将8090端口进行转发。
我们访问的就是123.123.123.123:8090 就可以访问我们内网的192.168.1.36:80。
这是一个常见的端口转发方式。
教程中演示移动端口转发
如果是移动的这种方式的话,我们会得到一个端口号,就是已知ip为123.123.123.123,端口号通过教程获取。
我们会通过123.123.123.123:xxxx(xxxx为教程获得的端口号)访问我们内网的192.168.1.36:80。
可以看到两种方式的区别。 这种方式弥补了移动没有公网ipv4的缺点,不过端口号不是固定的,3-7天会自动重置一次。在教程中,我们可以通过微信机器人,各种通知类应用,获得变化后的端口号,实现公网访问的需求,曲线救国,有比没有强。
为什么之前教程没有选择lucky部署
我个人感觉lucky还是有点“重”,不过确实可以简化很多操作,方便大家更好的上手,本期文章,就在lucky下,利用stun访问内网应用。
怎么做
操作流程
测试nat类型
安装lucky
设置端口转发
设置stun映射
lucky安装
官方教程有openwrt的安装方式,我这里直接就用docker进行安装
docker run -d --name lucky --restart=always --net=host -v /root/luckyconf:/goodluck gdy666/lucky
一条命令即可,加上了本地目录映射,删除容器后配置不会丢失。
端口转发设置
在端口转发时,我们要了解一个概念,就是桥接端口。这个端口,是我们路由器统上级路由通信的端口。 都说移动大内网,但是大内网也分层级,我们在第一步的nat1 (fullcone),即我们在上级路由后的第一层。相当于我们小区这栋楼有一个公网ip,我们是公网ip后的局域网中的一个。
我们通过教程,在小区的公网路由器上开一个端口,建立长连接,保持外界对我们内网的访问。 在家庭路由器上,设置端口转发,像正常端口转发一样,将6010端口转发到内网192.168.1.36:80(需要访问的服务)。6010就是桥接端口,保证我们公网ip开的端口与我们内网进行通信,也叫桥接端口。
具体流量联动方式
xxx.xxx.xxx.xxx:aaaa (其中xxx.xxx.xxx.xxx是小区公网ip,aaaa是通过stun后获取的端口)
6010是小区公网路由与内网沟通的端口。
192.168.1.36:80(内网提供服务的端口)
这样,我们访问xxx.xxx.xxx.xxx:aaaa就可以访问到内网192.168.1.36:80的服务。
中国移动公网ip
xxx.xxx.xxx.xxx即我们的公网ip,虽然和小区其他用户共享,但是也是我们的公网IP。这个ip地址是可以通过ddns进行操作的。
所以,第一步,利用端口转发映射6010端口到192.168.1.36:80。这部分可能有点绕,大家可以多看几遍。欢迎大神在评论区,更好的解释流量流向的过程。
stun穿透
登录界面及端口
默认提供服务的端口号为16601 用户名666 密码666


因为我选择在局域网内某台机器上安装lucky,勾选不使用Lucky内置端口转发。 穿透通道监听端口输入6010
因为现在可以自定义脚本,其实用webhook也可以,这里大家自由选择。

address=${ip} PORT=${port} # 微信通知 # 微信机器人Webhook URL webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxx" # 要发送的消息内容 message="最新的地址为$address:$PORT" # 发送通知消息 curl -H "Content-Type: application/json" -X POST -d "{"msgtype": "text", "text": {"content": "$message"}}" $webhook_url
以上是一个端口变化后通过微信通知的脚本。这样,最新的ip与端口,就可以通过微信获取。 当然也有固定端口的方式,我这里不做展开,关键词''lucky固定端口''。3-7天修改一次,还是可以接受的。

这样,我们就可以通过微信得知最新的ip和端口号。 需要映射多个服务,那就需要在路由器,开多个端口,路由器写的是桥接端口与内网服务端口,不是最终我们获得的端口。如果设置成功,我们在lucky中是可以看到ip与端口的,类似这样。

好了,本期教程就到这里,感觉教程有用的朋友,欢迎,点赞!收藏!评论!我是孔昊天,我们下期再见!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

siyi1
校验提示文案
bruce1227
校验提示文案
HT315
校验提示文案
不辣的啤特
校验提示文案
小宝鸡
校验提示文案
值友1724886517
校验提示文案
想种一颗花棒
校验提示文案
那一单的风流
校验提示文案
EricLin
校验提示文案
核桃虫
校验提示文案
tuzhq
校验提示文案
april007
校验提示文案
zhoubei
校验提示文案
值友7024912160
校验提示文案
VENSTER
校验提示文案
琥珀查
校验提示文案
亚瑟王的布丁
校验提示文案
老实和尚说不得
校验提示文案
rui3bo2
校验提示文案
Vincent99
校验提示文案
想种一颗花棒
校验提示文案
elvescn
校验提示文案
值友1724886517
校验提示文案
黑夜呐喊
校验提示文案
赌神今晚打老虎
校验提示文案
siyi1
校验提示文案
小宝鸡
校验提示文案
值友1367454949
校验提示文案
昆山土狼
校验提示文案
[已注销]
校验提示文案
lemonyuks
校验提示文案
zhoubei
校验提示文案
april007
校验提示文案
只做判断题
校验提示文案
tuzhq
校验提示文案
值友9167718388
校验提示文案
超神秘学园
校验提示文案
不辣的啤特
校验提示文案
杏子
校验提示文案
jkyysh
校验提示文案