周末在家里折腾 BT 下载,发现 UPnP 无法工作,便去光猫那里看看是什么情况。
我发现现在电信宽带默认已经是由光猫来拨号,家中的路由器是作为一个二级路由在使用,如果想让 UPnP 或 DMZ 工作起来,需要在光猫里设置。
查看光猫设备上印的默认管理员密码登录上去,没有找到太多设置选项。在网上搜了一下,需要一个超级管理员身份才能看到全部设置菜单。一般的说法是打电话问一下装宽带的师傅,但天色已晚,不想麻烦人。转念一想,有这么多家宽带设备要管理,电信应该用的是统一密码,或是有一些简单手段可以拿到这个密码才对。否则建立一整套管理系统成本实在太高了。
按 google 搜索结果,打开 192.168.1.1/cgi-bin/baseinfoSet.cgi 后,果然密码就写在这个 json 文件中。虽然不是明文,但和明文也差不多了。密码条目中写的数字就是 ascii 的变形。因为普通密码是已知的,很容易就能看出规则:偏小的数字就是 ascii 码,偏大的数字是 ascii 偏移 4 。用一行 lua 代码就能转换为密码的原文。
拿到超级管理员密码进入管理界面后,便可以打开 DMZ 等端口映射功能。但是我发现现在电信已经不再给 ipv4 的公网地址了,即使做了端口映射也没啥用。按网上的说法,可以打电话给电信要求一个公网 IP ,一般都会爽快的给。但一是时间已晚,人工客户不在线;另外按最新的说法,最近两个月电信也很难要到公网 IP 了。想想也是, IPv4 的地址资源枯竭已久,那么还是看看 IPv6 吧。
在光猫的设置菜单里看到已经获取到 Ipv6 的地址。我的二级路由器是小米 AX9000,还算比较新,登录上去看一下,也是支持 IPv6 的,只是默认关闭。改成 IPv6 Native 模式,使用 https://test-ipv6.com/ 测试一下,发现取不到 ipv6 地址;然后改为 NAT6 模式,这次通了。
但感觉在 ipv6 环境下还使用 NAT 真是个笑话,不是说好的每个设备都应该有自己的 ipv6 地址的么?测试结果是外部看到的是小米路由器的 ipv6 地址,而不是我本地设备的。这肯定是 NAT 的缘故了,我的设备都藏在了路由器 NAT 背后的局域网中。
也就是说,光猫目前正确的接入了 ipv6 网络,拿到了一个 ipv6 地址前缀,并正确的给它后面的小米路由器正确的分配了独立的 ipv6 地址。但当小米路由器启用 Native 模式时,无法再向光猫申请一个子前缀。所以无法使用向下级设备分配独立 ip 这个功能(光猫作为路由器只能向每个直连设备分配唯一 ipv6 地址,无法分配前缀)。小米路由器上还有第三种 ipv6 地址的获取方式,就是用静态 ip 自己填。想想不靠谱,如果光猫重新分配地址,我就得手工跟着改,所以没去折腾。
剩下的就两条路:
把小米路由器改成有线中继模式,这样等于让插在它上面的设备直接连到光猫上,这样光猫就可以直接给它们分配 IPv6 地址了。
把光猫改成桥接模式,由小米路由器做一级路由,直接拨号上网。如此,小米路由器便可以直接从运营商那里获取到 Ipv6 前缀,可以由它向下面的设备分配 ipv6 地址。
鉴于小米 AX9000 的性能明显要好过电信送的光猫,我先尝试了方案 2 。
因为已经有了超级管理员密码,所以想来不需要联系电信师傅帮我改桥接模式。自己看了一下现有设置,发现已经不是 PPPoE 的拨号上网方式,而是 IPoE ,并没有用户名密码了。在 IPoE 的模式下,不能选择桥接模式。
抱着试一试的想法,我改回 PPPoE ,并选择桥接模式;想着如果不行我再改回去呗。试过之后,发现果然连不上外网,然后改回去让光猫做路由拨号,还是连不上 :( 从设置界面看,光纤是通的,设备正确注册,但是 DHCP 就是取不到地址。
只好用手机在电信网站提了个报修单,关机睡觉。
第二天一大早 10000 号就拨回电话给我了。客服说我家网络是通的,但是拨号密码错误。我心说你们不是给我改成 IPoE 认证了吗?怎么还要密码。况且我昨晚密码认证试过了,就是拨不上去啊。
电信客服告诉我它那边查询到我家的宽带就是 PPPoE 拨号上网模式的,让我再试试。我估计是电信那边远程更新了设置。然后我开机重新一试,果然连上外网了。
测试了一下,台式机终于拥有了自己的 IPv6 公网地址 :)
记录此流水账皆因现在网络环境变化颇快,宽带运营商不断的升级它们的组网方案。在 google 上搜来的信息很快就过期了。留下一篇最新的记录,可供有最近有此需要的人参考。