V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zerofancy
V2EX  ›  分享创造

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

  •  1
     
  •   zerofancy · 128 天前 · 7008 次点击
    这是一个创建于 128 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人的初衷是调研光猫改桥接的方式,以便能够以更高的速度 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

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

    不过还是桥接是正路,我看网上别人 HG2543C1 破解完后有桥接项啊(一个电信的有截图,一个联通的说电话联系客服改桥接就行)
    orzz
        11
    orzz  
       127 天前
    思路不错,等大佬再鼓捣鼓捣
    NSAgold
        12
    NSAgold  
       127 天前
    联通还是电信?联通的超级管理从 cu.html 进应该是可以改桥接的
    电信的比较麻烦 可能要改省份信息才能防止被 tr069 覆盖
    zerofancy
        13
    zerofancy  
    OP
       126 天前
    @NSAgold 联通。经测试默认省份为北京时,超级管理员无法登陆,删除配置文件省份信息后成功登陆,但后台未找到桥接选项,只比普通管理员多了个设备注册,且此时无法上网,显示 vlanid 不匹配(网页上也没有设置 vlanid 的地方)
    @gps949 diskcache 已经设置为 0 了,甚至还尝试了限制下载速度,都不行。也许可以通过挂载 swap 分区解决 OOM 的问题,但他也没有 swapon 命令,估计还得去重新编译 busybox ,不想折腾了
    Unclev21x
        14
    Unclev21x  
       126 天前
    楼主的探索精神牛皮啊,顶一下。
    warcraft1236
        15
    warcraft1236  
       126 天前
    改桥接这个事不是给客服打个电话就完了吗
    NSAgold
        16
    NSAgold  
       125 天前
    @zerofancy 有试过重置之后不插光纤直接从 http://192.168.1.1/cu.html 进管理员后台么? 如果还是不行的话建议自行换猫😂
    xiaoke
        17
    xiaoke  
       125 天前 via Android
    技术可以啊,不折腾不舒服斯基
    seakingii
        18
    seakingii  
       124 天前
    在小型设备里用 JAVA,是不是 JAVA 最初的梦想?
    zerofancy
        19
    zerofancy  
    OP
       124 天前
    @warcraft1236 出租屋,想先调研下能不能自己折腾了
    @seakingii 不过 10M 内存我确实写不出啥有意思的程序
    darkengine
        20
    darkengine  
       123 天前
    @seakingii 梦回 J2ME
    1903326369
        21
    1903326369  
       123 天前 via Android
    浙江打电话就能改桥接~
    timothyye
        22
    timothyye  
       122 天前 via Android
    光猫: 饶了我吧
    Decent
        23
    Decent  
       122 天前 via iPhone
    买个支持桥接的光猫不就行了
    goodryb
        24
    goodryb  
       120 天前
    不是应该更关注那两个 java 程序是干什么的吗
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2818 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 13:21 · PVG 21:21 · LAX 06:21 · JFK 09:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.