因为要实现外网以代理服务器的形式访问内网的一台PC机,所以,目标是实现内网穿透。刚开始没有发现光猫也带了路由器功能,因为路由器直接来个dmz或者端口转发就可以了,结果走了几段弯路。先说一下我的网络情况:
光猫(GPON天翼网关(4口单频) ZNH6000好像),带一个动态分配的外网地址60.121.23.11和一个192.168.1.1的内网地址,光猫接了一个华为aix3pro的无线路由器,分配给路由器的地址是192.168.1.167,路由器的内部下层局域网地址是192.168.3.1,需要访问的内网pc机,也是目标机器ip是192.168.3.90。
刚开始,在华为路由器配置了花生壳的动态域名,结果外网访问到的地址是192.168.1.167,第一个方案是让光猫路由器进行一次端口映射,60.121.23.11上的8888端口映射到192.168.1.167上的8888,再让华为路由器二次端口映射到192.168.3.90的8888端口。如果手机通过内网上网,把手机设置成60.121.23.11代{过}{滤}理地址,是可以访问到192.168.3.90pc的,但从外网地址就不能访问到192.168.3.90。二次转发不知道为啥不行?
怎么办?第二个解决方案是把pc直接连到猫的路由器上,获得的地址是192.168.1.11。但电信很鬼,进入http://192.168.1.1进行配置发现,给的配置权限很低,DMZ、DDNS等功能都不开放。怎么办?想法获得网关超级密码好像是唯一的办法。百度一下,网上找到这篇文章 https://post.smzdm.com/p/akmgqzk9/ ,其他好多都不行。依样画葫芦,抓包,获得telecomStatus.cgi数据后发现,我跟他的数据不同,他的服务器直接返回了密码给他,我的是一串MD5后的加密串,应该是后面升级了吧。正当我准备放弃的时候,发现超级密码规则很特别:账号telecomadmin
密码telecomadmin23557251(前面字符串固定,后面是8位动态数字)
如果是这样的话,就好办了。
写了一段代码,循环从99999999开始减数字,跟telecomadmin拼接后,算出MD5值,然后跟前面获取的MD5数据比较。运算速度很快,我的运气也好,密码是telecomadmin98387321,呵呵,基本上是秒出。马上登录http://192.168.1.1:8080超级管理页面,正常。端口也不转发了,直接把DMZ开起来,外网手机配置上60.121.23.11的地址和端口,pc机器上的charles能正常抓包了。