2025年6月

换猫一年多,进入夏天,光猫又开始频繁掉线,频繁缓冲了
然后光猫的协商速率从1G掉到100M,又故障了,只能开始换光猫了

依旧从二手鱼购买光猫
中兴比较好开拨号模式,依旧选择中兴

看实际图和评测

https://www.acwifi.net/27440.html
https://www.chiphell.com/thread-2609434-1-1.html

F7005TV3有点小贵,F7615TV3带电话和WIFI6,USB,选择了F7615TV3
二手,不是原配电源,有污渍,但是正常使用

到手没有检查管理员账号和固化Telnet
插上就开始注册了,以为重置后可以恢复出场设置,结果死活捅Reset无法回原厂设置
咸鱼找了个开telnet.1/3的光猫价格. -__-
连接热点,电脑插上光猫,远程传了一个虚拟局域网软件,估计后台ONT和中兴原厂工具开telnet,开telnet软件价格不便宜
原3.0解密配置文件ztecfg解密工具失效,因此,提取配置文件读取超密也无法使用了

因此,在光猫没有开telnet之前,不要插上光纤注册,不然随便怎么捅都恢复不了原厂设置
咸鱼查超密,8块涨价到25了,后台控制随机换,5分钟有效,不如开telnet划算!!

开了telnet就好办了

验证管理员权限
用户名: useradmin/telecomadmin
密码:nE7jA%5m ,此处竟然是根据密码来判断用户权限,服
登录到管理页面即可,useradmin用user的账号是另外一个界面

1.固化telnet
下载工具 zteOnu_0.0.7_windows_amd64

https://github.com/Septrum101/zteOnu/releases

原理

https://www.99zc.com/Skills/89.html
查看
sendcmd 1 DB p TelnetCfg

sendcmd 1 DB set TelnetCfg 0 Lan_Enable 1
0是关闭telnet 1是开启

sendcmd 1 DB set TelnetCfg 0 TS_UName admin
sendcmd 1 DB set TelnetCfg 0 TSLan_UName admin    账号
sendcmd 1 DB set TelnetCfg 0 TS_UPwd admin888
sendcmd 1 DB set TelnetCfg 0 TSLan_UPwd admin888  密码
sendcmd 1 DB set TelnetCfg 0 Max_Con_Num 99
sendcmd 1 DB set TelnetCfg 0 ExitTime 999999
sendcmd 1 DB set TelnetCfg 0 InitSecLvl 3
sendcmd 1 DB set TelnetCfg 0 CloseServerTime 9999999
sendcmd 1 DB set TelnetCfg 0 Lan_EnableAfterOlt 1
sendcmd 1 DB save
reboot    重启之后会生效

telnet登录软件

https://www.right.com.cn/forum/thread-8394814-1-1.html
https://www.right.com.cn/forum/thread-8425571-1-1.html
论坛开启绑手机了,无法回复下载

FactoryMode部分已失效

2.插上光纤,更改有线网卡地址为000729553557,软件登录后台,开启了后telnet,开始注册
地区,湖北地区,只验证LOID,不需要其他
页面右下脚,运维页面,开始注册等待跳到100%
其他地区请参考

https://zhuanlan.zhihu.com/p/672071358
https://www.right.com.cn/forum/thread-8413696-1-1.html

3.开始修改超密,关闭Tr069,ACS/RMS
telnet下,输入命令,修改超密
使用软件telnet

- 修改超级帐号:sendcmd 1 DB set DevAuthInfo 0 User XXXXXX
- 修改超级密码:sendcmd 1 DB set DevAuthInfo 0 Pass XXXXXX

密码改自己喜欢就行,随意
关闭TR069,改RMS协议地址,也不用改地址

Tr069是 CPE 和 ACS /RMS之间沟通的通讯协定。 CPE 可以借着这个协定完成服务开通、功能设定、档案上传下载、系统检测
等等初始化及营运管理的必须动作。

有的这一段不行

https://www.chiphell.com/thread-2607258-1-1.html
sendcmd 1 DB p MgtServer #查看一下当前的电信远程控制
sendcmd 1 DB set MgtServer 0 URL @http://127.0.0.1  #把服务器 URL 改掉
sendcmd 1 DB set MgtServer 0 Tr069Enable 0 #关闭Tr069
sendcmd 1 DB set MgtServer 0 PeriodicInformEnable 0 #关闭周期上报
sendcmd 1 DB save

使用这一段,网络设置里的Tr069的勾就去掉了

sendcmd 1 DB set WANC 0 Enable 0
保存
sendcmd 1 DB save
sendcmd 1 DB reboot

4.既然拿到超密了,剩下能改的在管理界面改就是了
登录光猫管理页面,
沿用原设置,IPTV保留,WIFI关闭或者IPTV绑定无线
修改为桥接,PPOE拨号
传说中兴是软件转发,速度不会快,需要删除重新建立连接,变成硬件转发
(无所谓,300M以上宽32M/Bps带够用了,只是上行那么点小水管,被判断PCDN就很亏,PCDN就很搞笑了,盘同步数据量也大)

5.然后接上设置好的路由器,enjoy
美团视频不卡了,B站视频没有缓冲了,网页解析samrtDNS秒开
插电脑500M/Mbps插路由测速测速980M/Mbps左右,2.5G网口速度没有提升
至此,换光猫结束

关于PCDN.
从2024年跨省网间结算方案以来,在外地同步NAS都很困难,基本卡着500KB在上传,看文件
又回以前的跨省漫游政策了,还是得工信部出手
关于公网IP.
湖北电信是拉到一个黑名单池,用户正常使用1-2个月后再移到正常池
公网IP估计申请不到或者很难了,能回收的都在尽量回收,且用且珍惜,不行就只能上诉了

chatGPT+Qwen3.2

搞了几天没有结果,然后搜到了,改了以后果然正常了

nginx站点配置文件写入对应规则

rewrite 规则:

location /blog/ {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /blog/index.php$1 last;
    }
}

nginx禁止sqlite文件被下载

location ~ (.db)$ {
    return 404;
}

其他调优,请参考链接

https://www.goao.net/blog/article-7.html

丢进chatgpt

提示词:改为PHP 8.2兼容

https://forum.typecho.org/viewtopic.php?t=10522

存为xxx.php
放进typecho根目录
执行网址http://typecho目录/xxx.php
2025/6/6 测试通过
执行后显示OK

// 解决Typecho文章cid不连续

<?php
$hostname_blog = "localhost";
$database_blog = "你的数据库名称如typecho";
$username_blog = "你的数据库管理员如root";
$password_blog = "你的密码如password";

// 创建数据库连接
$blog = new mysqli($hostname_blog, $username_blog, $password_blog, $database_blog);

// 检查连接
if ($blog->connect_error) {
    die("连接失败: " . $blog->connect_error);
}

$no = 1;

function change_id($cid, $mysqli, &$no)
{
    // 使用准备好的语句更新 post cid,并修改分类、标签、自定义字段、评论的对应关系
    $stmt = $mysqli->prepare('UPDATE typecho_contents SET cid = ? WHERE cid = ?');
    $stmt->bind_param('ii', $no, $cid);
    $stmt->execute();

    $stmt = $mysqli->prepare('UPDATE typecho_relationships SET cid = ? WHERE cid = ?');
    $stmt->bind_param('ii', $no, $cid);
    $stmt->execute();

    $stmt = $mysqli->prepare('UPDATE typecho_comments SET cid = ? WHERE cid = ?');
    $stmt->bind_param('ii', $no, $cid);
    $stmt->execute();

    $no++;
}

$query_postRecord = "SELECT cid FROM typecho_contents ORDER BY cid ASC";
$result = $blog->query($query_postRecord);

if ($result) {
    while ($row_postRecord = $result->fetch_assoc()) {
        change_id($row_postRecord['cid'], $blog, $no);
    }
}

// 重新设置 post id 自增起点
$blog->query('ALTER TABLE typecho_contents AUTO_INCREMENT = ' . $no);
echo 'ok';

// 关闭数据库连接
$blog->close();
?>

https://blog.xl0408.top/index.php/archives/33/


// Typecho重新排列分类和标签(meta)不连续的mid

<?php
/**
 * Typecho重新排列分类和标签(meta)不连续的mid
 */

// 数据库参数
$hostname_blog = "localhost";
$database_blog = "typecho";
$username_blog = "root";
$password_blog = "";
$blog = new mysqli($hostname_blog, $username_blog, $password_blog, $database_blog);

// 检查连接错误
if ($blog->connect_errno) {
    throw new RuntimeException("连接数据库失败: " . $blog->connect_error);
}

// 定义全局变量以跟踪“no”值
$no = 1;

// 定义一个函数来更新 mid 及其关系
function change_id($mid)
{
    global $no, $blog;

    // 更新mid
    $sql = "UPDATE typecho_metas SET mid = ? WHERE mid = ?";
    if ($stmt = $blog->prepare($sql)) {
        $stmt->bind_param("ii", $no, $mid);
        $stmt->execute();
        $stmt->close();
    } else {
        throw new RuntimeException("准备 SQL 失败: " . $blog->error);
    }

    // 更新关系
    $sql = "UPDATE typecho_relationships SET mid = ? WHERE mid = ?";
    if ($stmt = $blog->prepare($sql)) {
        $stmt->bind_param("ii", $no, $mid);
        $stmt->execute();
        $stmt->close();
    } else {
        throw new RuntimeException("准备 SQL 失败: " . $blog->error);
    }

    // 递增“no”值
    $no++;
}

// 从数据库中获取所有mid
$query_postRecord = "SELECT mid FROM typecho_metas ORDER BY mid ASC";
if ($all_postRecord = $blog->query($query_postRecord)) {
    // 循环遍历结果并调用 change_id() 函数
    while ($row_postRecord = $all_postRecord->fetch_assoc()) {
        change_id($row_postRecord['mid']);
    }
    $all_postRecord->free();
} else {
    throw new RuntimeException("查询失败: " . $blog->error);
}

// 重置typecho_metas表的自动增量值
if (!$blog->query("ALTER TABLE typecho_metas AUTO_INCREMENT = $no")) {
    throw new RuntimeException("重置自动增量值失败: " . $blog->error);
}

echo 'ok';
?>

AX3000T 刷 immortalwrt 改变灯光为 改为系统启动正常后60秒关闭灯光,Wan网络不正常,闪烁

文件位置/etc/init.d/led
既然知道文件了,那么,丢进CHATGPT,修改为如下

#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org

START=96

led_color_set() {
    local cfg="$1"
    local sysfs="$2"

    local max_b
    local colors
    local color
    local multi_intensity
    local value
    local write

    [ -e /sys/class/leds/${sysfs}/multi_intensity ] || return
    [ -e /sys/class/leds/${sysfs}/multi_index ] || return

    max_b="$(cat /sys/class/leds/${sysfs}/max_brightness)"
    colors="$(cat /sys/class/leds/${sysfs}/multi_index | tr " " "\n")"
    multi_intensity=""
    for color in $colors; do
        config_get value $1 "color_${color}" "0"
        [ "$value" -gt 0 ] && write=1
        [ "$value" -gt "$max_b" ] && value="$max_b"
        multi_intensity="${multi_intensity}${value} "
    done

    # Check if any color is configured
    [ "$write" = 1 ] || return
    # Remove last whitespace
    multi_intensity="${multi_intensity:0:-1}"

    echo "setting '${name}' led color to '${multi_intensity}'"
    echo "${multi_intensity}" > /sys/class/leds/${sysfs}/multi_intensity
}

load_led() {
    local name
    local sysfs
    local trigger
    local dev
    local ports
    local mode
    local default
    local delayon
    local delayoff
    local interval

    config_get sysfs $1 sysfs
    config_get name $1 name "$sysfs"
    config_get trigger $1 trigger "none"
    config_get dev $1 dev
    config_get ports $1 port
    config_get mode $1 mode
    config_get_bool default $1 default "0"
    config_get delayon $1 delayon
    config_get delayoff $1 delayoff
    config_get interval $1 interval "50"
    config_get port_state $1 port_state
    config_get delay $1 delay "150"
    config_get message $1 message ""
    config_get gpio $1 gpio "0"
    config_get_bool inverted $1 inverted "0"

    [ "$2" ] && [ "$sysfs" != "$2" ] && return

    # execute application led trigger
    [ -f "/usr/libexec/led-trigger/${trigger}" ] && {
        . "/usr/libexec/led-trigger/${trigger}"
        return 0
    }

    [ "$trigger" = "usbdev" ] && {
        trigger="usbport"
        ports=$(echo "$dev" | sed -n 's/^\([0-9]*\)-\([0-9]*\)$/usb\1-port\2/p')
        [ -z "$ports" ] && ports=$(echo "$dev" | sed -n 's/\./-port/p')
    }

    [ -e /sys/class/leds/${sysfs}/brightness ] && {
        echo "setting up led ${name}"

        printf "%s %s %d" \
            "$sysfs" \
            "$(sed -ne 's/^.*\[\(.*\)\].*$/\1/p' /sys/class/leds/${sysfs}/trigger)" \
            "$(cat /sys/class/leds/${sysfs}/brightness)" \
                >> /var/run/led.state
        [ -e /sys/class/leds/${sysfs}/multi_intensity ] && {
            printf " %s" \
                "$(sed 's/\ /:/g' /sys/class/leds/${sysfs}/multi_intensity)" \
                >> /var/run/led.state
        }
        printf "\n" >> /var/run/led.state

        [ "$default" = 0 ] &&
            echo 0 >/sys/class/leds/${sysfs}/brightness

        [ $default = 1 ] &&
            cat /sys/class/leds/${sysfs}/max_brightness > /sys/class/leds/${sysfs}/brightness

        led_color_set "$1" "$sysfs"

        echo $trigger > /sys/class/leds/${sysfs}/trigger 2> /dev/null
        ret="$?"
        [ $ret = 0 ] || {
            echo >&2 "Skipping trigger '$trigger' for led '$name' due to missing kernel module"
            return 1
        }
        case "$trigger" in
        "heartbeat")
            echo "${inverted}" > "/sys/class/leds/${sysfs}/invert"
            ;;
        "netdev")
            [ -n "$dev" ] && {
                echo $dev > /sys/class/leds/${sysfs}/device_name
                for m in $mode; do
                    [ -e "/sys/class/leds/${sysfs}/$m" ] && \
                        echo 1 > /sys/class/leds/${sysfs}/$m
                done
                echo $interval > /sys/class/leds/${sysfs}/interval 2>/dev/null
            }
            ;;
        "timer"|"oneshot")
            [ -n "$delayon" ] && \
                echo $delayon > /sys/class/leds/${sysfs}/delay_on
            [ -n "$delayoff" ] && \
                echo $delayoff > /sys/class/leds/${sysfs}/delay_off
            ;;
        "usbport")
            local p
            for p in $ports; do
                echo 1 > /sys/class/leds/${sysfs}/ports/$p
            done
            ;;
        "port_state")
            [ -n "$port_state" ] && \
                echo $port_state > /sys/class/leds/${sysfs}/port_state
            ;;
        "gpio")
            echo $gpio > /sys/class/leds/${sysfs}/gpio
            echo $inverted > /sys/class/leds/${sysfs}/inverted
            ;;
        switch[0-9]*)
            local port_mask speed_mask
            config_get port_mask $1 port_mask
            [ -n "$port_mask" ] && \
                echo $port_mask > /sys/class/leds/${sysfs}/port_mask
            config_get speed_mask $1 speed_mask
            [ -n "$speed_mask" ] && \
                echo $speed_mask > /sys/class/leds/${sysfs}/speed_mask
            [ -n "$mode" ] && \
                echo "$mode" > /sys/class/leds/${sysfs}/mode
            ;;
        esac
    }
}

start() {
    [ -e /sys/class/leds/ ] && {
        [ -s /var/run/led.state ] && {
            local led trigger brightness color
            while read led trigger brightness color; do
                [ "$1" ] && [ "$1" != "$led" ] && continue
                [ -e "/sys/class/leds/$led/trigger" ] && \
                    echo "$trigger" > "/sys/class/leds/$led/trigger"

                [ -e "/sys/class/leds/$led/brightness" ] && \
                    echo "$brightness" > "/sys/class/leds/$led/brightness"

                [ -e "/sys/class/leds/$led/multi_intensity" ] && \
                    echo "$color" | sed 's/:/\ /g' > \
                        "/sys/class/leds/$led/multi_intensity"
            done < /var/run/led.state
            if [ "$1" ]; then
                grep -v "^$1 " /var/run/led.state > /var/run/led.state.new
                mv /var/run/led.state.new /var/run/led.state
            else
                rm /var/run/led.state
            fi
        }

        config_load system
        config_foreach load_led led "$1"

        # 等待60秒后关闭灯光
        sleep 60
        for led in /sys/class/leds/*; do
            [ -e "$led/brightness" ] && echo 0 > "$led/brightness"
        done &

        # 检查PPPoE网络状态并闪烁灯光
        while true; do
            if ! ip link show | grep -q ppp; then
                for led in /sys/class/leds/*; do
                    [ -e "$led/brightness" ] && {
                        echo 1 > "$led/brightness"
                        sleep 0.5
                        echo 0 > "$led/brightness"
                        sleep 0.5
                    }
                done
            fi
            sleep 5
        done &
    }
}