把光猫搞成一个下载服务器

2022-04-10 15:21:48 +08:00
 zerofancy

本人的初衷是调研光猫改桥接的方式,以便能够以更高的速度 BT 下载。然而最后花力气进了管理员帐号发现也没有改桥接的选项,但在光猫上跑个下载服务却是可行的。 光猫型号:HG2543C1

  1. 访问 http://192.168.1.1 ,输入密码后进入光猫管理后台。这里我找到“上网帐号设置”,备份宽带帐号和密码。不得不说他系统还是挺拉的,密码框直接用审查元素功能把 type 改为 input 就可以看到密码了。
  2. 第一步后台不要退出,访问 http://192.168.1.1/servmngr.html 。这里看到一个空白页面,审查元素后发现大有乾坤。
  3. 将这些代码取消注释,此时网页还是空白的,但是用 Ctrl+A 可以看到实际是有内容的。在这个页面开启 telnet 访问,并设置密码。注意用户名为 admin 不要改,否则后面 telnet 登陆不进去。
  4. telnet 192.168.1.1 成功后执行sh。然后uname -a看下。这里我就不记录查看管理员密码步骤了,反正这个型号管理员面板也没有设置桥接的选项。
  5. top,发现占用内存最高的是个两个 java 进程。java -version,发现安装了 java8 。
# java -version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment (build 1.8.0-internal-jenkinsang_2022_01_15_04_03-b00)
JamVM (build 2.0.0, inline-threaded interpreter with stack-caching)
  1. free命令可知总内存约二十多兆,剩余仅 3 兆。这点空间是搞不了什么事情的,因此我尝试干掉前述两个 java 进程。ps -aux | grep java,发现除了存在两个 java 进程,还写了脚本自动把这两个进程拉起来,即/etc/monitor_java.sh 。统统 kill 掉。
  2. 现在有 10 兆左右的内存了,对于 java 来说可能还是不太能搞事,但跑个 aria2 足够了!尝试插入 U 盘,发现在/mnt/usb1_1自动挂载。
  3. 交叉编译 aria2c ,这里我用的是这个脚本:https://gitee.com/logic_2050/auto-build-aria2-mips32-static 。在我的 debian11 编译过程中只遇到一个问题,手动sudo apt install autoreconf即可。
  4. 如何把文件弄到光猫里,以及取出来?每次插拔 U 盘也太麻烦了。于是我找到一个支持上传的简单文件服务器:https://github.com/mayth/go-simple-upload-server。仍然交叉编译到 mips 静态包。env GOOS=linux GOARCH=mips GOMIPS=softfloat go build -trimpath -ldflags="-s -w -extldflags=-static"
  5. 成品。:

问题:

  1. 被我干掉的两个 java 进程是做什么的?光猫跑 java 属实有点离谱,一半内存都是他们占的,干掉后也不影响上网,甚至也不影响光猫后台管理。有兴趣的可以探究下。
  2. 不支持 https 。这个原因没有深入探究,看网上说编译 aria2c 时要指定证书,我这里暂时通过设置check-certificate=false不检查证书。
  3. 2GB 左右的大文件会失败,提示文件读写错误,这个我怀疑和光猫对 exFat 分区格式支持不好有关系。但手里只有一个 U 盘,并且暂时不方便格式化所以作罢。

这里是我编译好的 aria2c 和 go-simple-upload-server 。另外的 jar.tar 是我从光猫拷出来的那个原有的 java 程序,有兴趣的可以分析一下。

链接: https://pan.baidu.com/s/1AWR_rIVg58DcYZ_54d51ZA 提取码: 5kq8

8264 次点击
所在节点    分享创造
24 条回复
qwq11
2022-04-10 18:23:47 +08:00
插个眼,家里面的光猫应该不是这个型号的
6fBeCKWKAc8eymFp
2022-04-10 19:21:45 +08:00
真的是生活的意义在于折腾。不过光猫那个弱鸡性能,能干好本职工作就还好了。
cpstar
2022-04-10 20:40:06 +08:00
辛苦 OP 了,折腾了一溜够。
燃鹅。。。最后 OP 发现,怎么就不能满速,怎么家里的网速还变慢了。嘿嘿。
siriussilen
2022-04-10 21:35:33 +08:00
好家伙,运营商把光猫给你让你上网,你给做成个下载机,你怎么这么优秀!
findex
2022-04-10 22:15:59 +08:00
估计里面内置 java 是为了远程审计用的。曾几何时,上网久了自动断网 30mins ,你懂的。喜欢研究的同学可以说几句。
rekulas
2022-04-10 23:10:14 +08:00
折腾到最后,楼主还是转向了 nas 的怀抱
Mac
2022-04-11 00:01:14 +08:00
30m 的时代我干过这事,光猫拖个 50g 的移动硬盘混 pt ,这年头真没必要,折腾的性价比极低。
zerofancy
2022-04-11 02:52:42 +08:00
实用意义确实不大,即使是 aria2 下载大文件( 2G 以上)时
zerofancy
2022-04-11 02:54:39 +08:00
额,不小心发出去了,aria2 BT 下载大文件也很容易占用超过 10 兆内存,然后关键进程 OOM 光猫重启了。普通下载就更没意义了。
gps949
2022-04-11 07:56:21 +08:00
aria2 的配置项中有个磁盘缓存( disk-cache ),默认是 256M ,不知道你改设置没有。

不过还是桥接是正路,我看网上别人 HG2543C1 破解完后有桥接项啊(一个电信的有截图,一个联通的说电话联系客服改桥接就行)
orzz
2022-04-11 12:33:53 +08:00
思路不错,等大佬再鼓捣鼓捣
NSAgold
2022-04-11 16:04:11 +08:00
联通还是电信?联通的超级管理从 cu.html 进应该是可以改桥接的
电信的比较麻烦 可能要改省份信息才能防止被 tr069 覆盖
zerofancy
2022-04-12 00:54:02 +08:00
@NSAgold 联通。经测试默认省份为北京时,超级管理员无法登陆,删除配置文件省份信息后成功登陆,但后台未找到桥接选项,只比普通管理员多了个设备注册,且此时无法上网,显示 vlanid 不匹配(网页上也没有设置 vlanid 的地方)
@gps949 diskcache 已经设置为 0 了,甚至还尝试了限制下载速度,都不行。也许可以通过挂载 swap 分区解决 OOM 的问题,但他也没有 swapon 命令,估计还得去重新编译 busybox ,不想折腾了
Unclev21x
2022-04-12 10:12:11 +08:00
楼主的探索精神牛皮啊,顶一下。
warcraft1236
2022-04-12 17:09:46 +08:00
改桥接这个事不是给客服打个电话就完了吗
NSAgold
2022-04-12 22:24:31 +08:00
@zerofancy 有试过重置之后不插光纤直接从 http://192.168.1.1/cu.html 进管理员后台么? 如果还是不行的话建议自行换猫😂
xiaoke
2022-04-13 19:41:06 +08:00
技术可以啊,不折腾不舒服斯基
seakingii
2022-04-14 14:43:49 +08:00
在小型设备里用 JAVA,是不是 JAVA 最初的梦想?
zerofancy
2022-04-14 16:19:03 +08:00
@warcraft1236 出租屋,想先调研下能不能自己折腾了
@seakingii 不过 10M 内存我确实写不出啥有意思的程序
darkengine
2022-04-15 08:43:00 +08:00
@seakingii 梦回 J2ME

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/846078

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX