设备 – 格瑞普的小站 http://localhost Fri, 06 Mar 2026 10:45:56 +0000 zh-Hans hourly 1 https://wordpress.org/?v=7.0 http://localhost/wp-content/uploads/2026/01/site-icon-150x150.webp 设备 – 格瑞普的小站 http://localhost 32 32 记一次联通宽带更换2.5G电信光猫(中兴F7005T) http://localhost/changemodem/ http://localhost/changemodem/#respond Sat, 21 Feb 2026 12:18:48 +0000 https://blog.greepar.uk/?p=418 最近把家里的500M联通宽带换成1000M的了,光猫也重新办了个。本来想着1000M了联通总该给个2.5G光猫了,结果联通给的光猫居然还是千兆口的,于是我又得把我自己买的F7005T拿出来重新调一遍。

本文所需要的文件可以在https://share.greepar.uk/changemodem找到

获取原光猫的数据

更换光猫前需要先拿到原光猫的数据,拿数据需要获得超级密码。

广西联通这边的密码似乎默认都是CUAdmin,如果其他地区不对的话可以打电话问问装机师傅或者自行在网上搜索自己的光猫型号+破解教程。

拿到密码后访问光猫后台,选择管理员账户。

http://192.168.1.1/cu.html

登录成功后只需要记录 LOID的值VlanID 处的配置就行

开启中兴Telnet

先从https://github.com/Septrum101/zteOnu下载好对应系统版本的zteOnu。

然后将电脑网卡的MAC地址设置为000729553557,网线接入光猫。

执行:

zteOnu --telnet

显示出密码就是成功了,如果没显示可以再执行一遍。

Telnet设置数据

( 如果没有Telnet工具可以使用Putty – https://putty.org/index.html )

使用Telnet连接192.168.1.1,用户名root,密码为图中的Zte521。

进入后输入查看信息:

setmac -a

接下来就可以将旧光猫的数据填上来了了,SN码和MAC地址可以在光猫背面找到

setmac 1 2180 [LOID值]
setmac 1 2179 [LOID密码] (一般没有)
setmac 1 2176 [原SN码-前4位]
setmac 1 2177 [原SN码-后8位]
setmac 1 32769 [原MAC地址]

修改完成后输入reboot重启

重启完成后使用默认超级用户 (用户telecomadmin,密码nE7jA%5m) 进入新光猫后台http://192.168.1.1/

在网络配置处把原来的Vlan填上去,再使用路由器进行拨号应该就能直接上网了:

最后测一下速度:

注意事项

电信固件和联通固件部分省份没注册ITMS服务器的话会劫持所有DNS请求的结果到192.168.1.1,使用如下命令手动欺骗ITMS注册结果:

sendcmd 1 DB set PDTCTUSERINFO 0 Status 0
sendcmd 1 DB set PDTCTUSERINFO 0 Result 1
sendcmd 1 DB save

参考来源:

https://acwifi.net/28124.html – 中兴F7615TV3和F7015TV3拆机对比,便宜的2.5G光猫

https://www.bilibili.com/video/BV1vb421J7RQ – 90元2.5G小光猫,中兴F7005TV3 设置教程

]]>
http://localhost/changemodem/feed/ 0
中兴F50开启USB调试 / ROOT使用chroot启动linux容器 http://localhost/f50-usbdebug/ http://localhost/f50-usbdebug/#comments Wed, 07 Jan 2026 18:15:44 +0000 http://127.0.0.1/?p=308 前两天这F50不知道抽什么风,用着用着突然自己重启了。本来以为只是我的线供电不稳定,结果重启完之后一看WiFi名怎么变成ZTE_XXX了…再一进后台,果然数据都被清空了…还好我的数据都有备份,之前的文章和设置得以保留下来(虽然就两篇),就是那些服务得重新搭建一遍了,既然从头开始那就再记录下这个过程吧。

前提准备

确保你的Type-C线和电脑能稳定给CPE供电,并传输数据。

本文所用到的刷机文件可在此找到:https://share.greepar.uk/f50-usbdebug

打开USB调试

先用USB数据线连接好F50

连接WiFi进入后台登录,然后浏览器打开

http://192.168.0.1/index.html#usb_port

勾选打开,并应用

在F50安装软件

在电脑输入

adb install <软件>.apk

即可安装软件。

安装完成后在电脑安装scrcpy(https://github.com/Genymobile/scrcpy),就可以控制F50的安卓界面。

UFI-TOOLS

UFI-TOOLS(https://github.com/kanoqwq/UFI-TOOLS)是一个用于方便网页端查看F50状态的工具,

还可以设置ADB网络调试自启,安装Clash,WebSSH插件等等功能,

用adb安装完之后请先通过Scrcpy打开一遍,确保授予自启和保活权限,再访问:

https://192.168.0.1:2333

如果不打算ROOT的话到这里就结束了,现在就已经可以干很多事了。

如无法打开USB调试

重置完后本来还是可以直接开启adb调试的,但我开启之后还手贱把固件升级到了最新版本,如果升级的话你就会发现按照上面的方法开启不了adb了…

好在在网上查了下找到了降级方法,新版本固件开启adb调试就只能降级了。

先安装F50的刷机驱动

在执行刷机操作前,请一定要备份好数据 !并阅读里面的使用教程

降级之后再按照上面的方法开启adb调试就可以正常生效了:

开始ROOT

!请注意上面提供的ROOT包仅适用降级完之后的版本,没有降级到这个版本的话不要直接ROOT!

开机设置完之后点击一键ROOT那个bat,再插拔接上电脑等待启动即可,

重启完后看到桌面上出现Magisk就是root成功了。

安装chroot环境

在获得root权限后就可以使用效率更高的chroot来运行linux程序了

在这里还是按照 http://blog.greepar.uk/firstblog/ 安装好Termux + ssh 在电脑连接

配置完之后输入su应该就会弹出root授权窗口,在继续之前先输入exit回到正常环境安装好一些常用的工具:

pkg update
pkg install wget tar util-linux -y

然后去官网下载ubuntu(https://cdimage.ubuntu.com/ubuntu-base/releases/),我这里选用25.10版本

wget https://cdimage.ubuntu.com/ubuntu-base/releases/25.10/release/ubuntu-base-25.10-base-arm64.tar.gz

进入su部署chroot:

su
mkdir -p /data/local/chroot/ubuntu
mv ubuntu-base*.tar.gz /data/local/chroot/ubuntu
cd /data/local/chroot/ubuntu
tar -xpf ubuntu-base*.tar.gz

#移除压缩包
rm -rf ubuntu-base*.tar.gz

#创建目录
mkdir -p /data/local/chroot/ubuntu/{proc,sys,dev,dev/pts,tmp}
chmod 1777 /data/local/chroot/ubuntu/tmp

#临时挂载目录
mount -t proc /proc /data/local/chroot/ubuntu/proc
mount -t sysfs /sys /data/local/chroot/ubuntu/sys
mount --bind /dev /data/local/chroot/ubuntu/dev
mount --bind /dev/pts /data/local/chroot/ubuntu/dev/pts

如果需要的话可暂时将Termux目录挂载到系统内便于传输文件:

mkdir -p /data/local/chroot/ubuntu/wpfiles/
mount --bind /data/data/com.termux/files/home /data/local/chroot/ubuntu/wpfiles

完成之后就可以进入chroot了:

chroot /data/local/chroot/ubuntu /bin/bash

进入chroot后会很多东西都做不了,还需要执行一遍

echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> /etc/bash.bashrc

#退出重进一次
exit
chroot /data/local/chroot/ubuntu /bin/bash

尝试一遍使用apt安装软件,没问题那就成功了

apt install curl -y
curl

如果/tmp出现异常可以执行:

unset TMPDIR
export TMPDIR=/tmp
exec /bin/bash

需要注意的是,上述这些挂载(mount)操作在重启后都会被重置,所以每次重启进入chroot都需要再执行一遍mount挂载,为了方便的话可以创建一个启动sh:

nano start.sh
#!/system/bin/sh

mount -t proc /proc /data/local/chroot/ubuntu/proc
mount -t sysfs /sys /data/local/chroot/ubuntu/sys
mount --bind /dev /data/local/chroot/ubuntu/dev
mount --bind /dev/pts /data/local/chroot/ubuntu/dev/pts
chroot /data/local/chroot/ubuntu /bin/bash -c '
unset TMPDIR
export TMPDIR=/tmp
export PATH=/usr/sbin:/usr/bin:/sbin:/bin

#在这里添加你要启动的服务,例如
#php-fpm8.4
#service mariadb start
#service apache2 start
#nohup openlist start >/dev/null 2>&1
'

chroot部署自启

获得ROOT权限后可以使用更稳定的Magisk进行自启动服务

部署自启只需要把这个脚本复制到/data/adb/service.d/目录即可,在此目录下的sh都会开机自动被Magisk执行:

su
cp start.sh /data/adb/service.d/chroot-autostart.sh
#赋执行权限
chmod 755 /data/adb/service.d/chroot-autostart.sh
reboot

等待重启服务将会自动启动

]]>
http://localhost/f50-usbdebug/feed/ 5
为proot环境内的WordPress优化访问速度 http://localhost/improve-wpspeed/ http://localhost/improve-wpspeed/#respond Mon, 08 Dec 2025 15:27:16 +0000 https://blog.greepar.uk/?p=161 按照上一篇文章的方法直接在proot环境内搭建Wordpress环境之后,虽然从后台看CPU和内存占用已经非常低了,但实际访问的速度还是很慢。一开始还觉得可能是Cloudflare走到外网绕路的缘故,直到后来尝试了走内网访问后加载网页还是得等个几秒,才想到大概是proot环境内性能受限了。

单请求网页的速度

Apache2和MariaDb经过测试速度都是正常的这边就不放出图片演示了,上方放出的两张图可以看到单个PHP执行的速度就需要1.2秒,由于Wordpress由PHP编写,整体加载速度自然也被严重拖慢了。而在这1.2s中 user+sys 真正处理PHP代码的时间很短,说明瓶颈不在CPU而在proot IO处理上。既然不是CPU的瓶颈那就还有很多优化的方法了,下文也将会提供几种针对此解决方案,收益从高到低可自行选择执行到哪步。

配置OPCache

OPCache在新版本的PHP中一般都已经自带了,这个模块能让执行过的PHP脚本持续缓存在内存中而避免重复的IO读取以提升性能。但有时候可能没有默认开启或是配置还没优化极致,通过调整配置在proot环境下还是能获得显著效果。

编辑php.ini

#php目录可能不同
nano /etc/php/8.4/apache2/php.ini

找到下面的这些功能并修改

opcache.enable=1 - 启用 OPcache

opcache.memory_consumption=256 - 增加到 256MB(原 128MB)
opcache.interned_strings_buffer=16 - 增加到 16MB(原 8MB)

opcache.max_accelerated_files=100000 - 最大值(原 10000)
opcache.max_wasted_percentage=10 - 提高到 10%

opcache.validate_timestamps=0 - 最重要! 禁用时间戳验证,不检查文件更新,获得最佳性能
opcache.enable_file_override=1 - 启用文件存在检查优化

修改后重启Apache2

apache2ctl restart

提升近乎一倍性能

使用Php-fpm

在proot环境内,php-fpm相比apache2内置解析器速度提升也是巨大的,而从Apache2的内置PHP解析器换到Php-fpm也非常简单

首先安装并启动Php-fpm:

apt install php-fpm
php-fpm

修改Apache2的配置文件

nano /etc/apache2/sites-available/000-default.conf

在其中添加:

   <FilesMatch "\.php$">
        SetHandler "proxy:unix:/run/php/php8.4-fpm.sock|fcgi://localhost/"
   </FilesMatch>

按照上面配置OPCache:

#文件夹和Apache2的不同
nano /etc/php/8.4/fpm/php.ini

保存并重启apache2

apache2ctl restart

将Html环境迁移至宿主机的目录下

在proot的内存储读取是存在多层损耗的,把/var/www/html下的文件复制到termux的运行目录内能也够提升部分性能。

启动的时候把termux根目录挂载为/wpfiles:

proot-distro login --bind ~:/wpfiles ubuntu

编辑Apache2配置:

nano /etc/apache2/sites-available/000-default.conf

修改目录到/var/www/html:

<VirtualHost *:8000>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    # 让 WordPress 的 .htaccess 能生效
    <Directory /var/www/html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

(使用Nginx)

理论上来说Nginx的性能确实会比Apache2强,不过在这里apache2并不是性能的瓶颈,换了提升也不会太大,所以没测试,有兴趣的可以自行问问ChatGPT如何从Apache2迁移到Nginx。

最终优化结果

内网0.5-0.7ms对这台小破机器已经很满意了:

(附测试命令:)

curl -o /dev/null -s -w "DNS Lookup: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" http://192.168.0.1:8000/
]]>
http://localhost/improve-wpspeed/feed/ 0
[闲聊&水教程]一个在CPE上搭建的一个博客-记录一下本站的诞生 http://localhost/firstblog/ http://localhost/firstblog/#comments Sun, 19 Oct 2025 15:48:43 +0000 https://blog.greepar.uk/?p=7 博客在这个时代的存在感似乎已经逐渐减少了,现在大多数的人即使选择分享东西也不会选择博客,一般可能会选择发到朋友圈/动态之类的,大概也就只剩我们这些搞技术的还在弄博客(或许只是我接触比较少)?我个人的话在自己的社交圈子内是比较少发东西的,因为我不太喜欢主动发布一些内容推到别人面前展示出来,更希望是发布的内容能被对此感兴趣的人看到,所以博客对于我来说就挺合适。没有选择公共博客(比如说CXDN/博客园)主要是因为这些国内的公共博客要么已经塞满充钱广告,要么就是濒临倒闭,放在那上面还不如在我本地自建放心,这也就是为什么我会选择自建。当然自建也就意味着几乎没有流量,只有SEO能够发现你,不过嘛如果真的想要引流也是有办法的,比如做视频或者其它平台同步发布文章之类。对我来说只要能在SEO被人发现就足够了,如果在这茫茫互联网中通过搜索引擎找到本站何尝不是一种缘分呢。在此前我接触到的很多博客的方式也大都是通过搜索引擎上找东西时遇到的,有些是分享一些技术上的知识,也有是分享自己关于一些游戏的心得,当然也有关于现实社会方面的等等话题。有时候这些博客教程是真的能帮上忙,又或者有些分享的有趣观点能让我深感认同,读完后我就想着自己也能不能尝试一下写写博客发表些自己的观点呢,于是这个站点就这么搭建起来了,搭建完后顺便把搭建的全过程也当作第一篇文章记录一下。

设备选择

在产生了搭博客的想法之后,就要开始选择搭建的设备了。我目前其实在国内的阿里云上也买了一个服务器,69块钱一年,但是搭建HTTP/HTTPS服务还需要备案什么的感觉太麻烦了,主要是之后续费还要转存数据配环境,就没折腾了。后来在朋友的帮助下在他家的NAS上搭建了一个Blog,但是他的服务器老是挂还不修复,服务器不在我这里我也没法帮他修[😡],后面就终止了一段时间。在某天上课胡思乱想的时候就想到我这个CPE也是个安卓机,那我不就可以在上面搭建一个服务器吗,正好这个中兴F50还可以插内存卡拓展+备份,插个SIM卡就是随身携带的服务器,于是就在这个晚上费了几个小时把博客建起来了。

开始建站

好吧,说了这么多前言也可以正式开始进入搭建环节了。

1.要在安卓上搭建一些服务的话用Linux容器还是比较好的选择,后面还可以加其他服务也比较方便。首先要做的就是安装Termux(https://github.com/termux/termux-app),这方面我就不再赘述了,这个网上的教程还是大把的。

2.安装完为了方便我选择用ssh在电脑终端操作。

使用以下命令安装OpenSSH并设置用户密码:

pkg install openssh -y
passwd

以及在中国大陆的话因为众所周知的原因,默认源下载东西的速度实在太慢,如果有需要的话可以通过设置代理解决,我这里使用的是电脑Clash提供的代理,添加完后应该就可以顺利安装OpenSSH了:

export http_proxy="http://{你的IP地址}:{端口}"
export https_proxy="http://{你的IP地址}:{端口}"

export HTTP_PROXY="$http_proxy" 
export HTTPS_PROXY="$https_proxy"
export ALL_PROXY="$ALL_PROXY"

或者换源:

termux-change-repo

3.在电脑端使用ssh连接:

在Termux输入whoami获取用户名,再配上设置的密码连接至8022端口(默认端口是8022)

安装proot-distro并进入ubuntu容器:

pkg install proot-distro
proot-distro install ubuntu
proot-distro login ubuntu

#如果需要绑定termux用户目录到proot环境内以便于传文件的话:
#需要在设置中打开Termux存储权限,并输入:
#termux-setup-storage
#proot-distro login --bind ~:/downloads ubuntu

如果显示root@localhost:~#的话就是成功进入容器了,进入容器后如果下载慢需要设置代理的话按照上面一样的步骤设置就可以。

安装Wordpress

1.安装Apache(用于提供http服务):

apt update -y
apt install apache2 -y
nano /etc/apache2/ports.conf

将 Listen 80 改为 Listen 8000 (因为proot不能够绑定到1024以下的端口)

保存后再运行:

apache2ctl start

此时在浏览器输入 IP:端口 就可以尝试访问了

为了使Wordpress可以正确设置重定向,还需要配置

a2enmod rewrite
nano /etc/apache2/sites-available/000-default.conf

用nano打开后把内容修改为:

<VirtualHost *:8000>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    # 让 WordPress 的 .htaccess 能生效
    <Directory /var/www/html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    <Directory /var/www/html/wp-content/uploads>
        <FilesMatch "\.php$">
            Require all denied
        </FilesMatch>
    </Directory>

    <Files wp-config.php>
        Require all denied
    </Files>

    <FilesMatch "(^\.|\.bak$|\.old$|\.swp$|~$)">
        Require all denied
    </FilesMatch>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

2.安装MariaDB(提供MySql服务)

apt install mariadb-server -y
mysql_install_db --user=mysql --datadir=/var/lib/mysql
mysqld_safe --datadir=/var/lib/mysql &
mysql -u root
#如需要修改用户名密码可在此修改
CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wppass';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3.安装 PHP(WordPress 需要 PHP 环境)

apt install php php-mysql php-cli php-curl php-gd php-xml php-mbstring php-zip php8.4-imagick php8.4-intl -y
apt install libapache2-mod-php -y

4.安装wordpress

apt install wget
cd /var/www/html
rm index.html
wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
mv wordpress/* .
rm -rf wordpress latest.tar.gz
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
cp wp-config-sample.php wp-config.php

编辑Wordpress配置文件

nano wp-config.php

修改为对应的MySql数据库

define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'wppass' );
define( 'DB_HOST', 'localhost' );

修改完后重启Apache2

apache2ctl restart

再次通过浏览器访问就可以进入Wordpress了,按照步骤配置即可。

公网访问

在国内大多数情况下都是没有公网的,需要一个端口转发,在这里我使用Cloudflare Tunnel(https://github.com/cloudflare/cloudflared)来反代到公网。

1.安装Cloudflared

#如果没wget的话
#apt install wget
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64
chmod +x cloudflared-linux-arm64
mv cloudflared-linux-arm64 /usr/local/bin/cloudflared

2.登录cloudflared

cloudflared login

点击链接登录你的cloudflare账号

3.创建一个tunnel

cloudflared tunnel create blog

4.编辑配置文件,将创建完tunnel后的隧道ID和对应文件位置填到下面就行了

nano ~/.cloudflared/config.yaml
tunnel: <你的隧道ID>
credentials-file: <你的隧道ID文件>
ingress:
  - hostname: <输入你的域名>
    service: http://localhost:8000
  - service: http_status:404

5.创建DNS记录

cloudflared tunnel route dns <隧道ID> <域名>

6.运行Cloudflare Tunnel

cloudflared --config ~/.cloudflared/config.yaml tunnel run

7.修改Wordpress在公网下的配置

设置Wordpress的地址:

  • 只需要公网访问
  • 需要内网和公网访问
nano /var/www/html/wp-config.php
if (isset($_SERVER['HTTP_HOST'])) {
    if ($_SERVER['HTTP_HOST'] === '{内网地址}:8000') {
        define('WP_HOME', 'http://{内网地址}:8000');
        define('WP_SITEURL', 'http://{内网地址}:8000');
    } else {
        define('WP_HOME', 'https://{域名}');
        define('WP_SITEURL', 'https://{域名}');
    }
}

添加以下设置:

// 处理主机名
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
    $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
// 根据代理传递的协议信息设置HTTPS标志
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
    $proto = strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']);
    if (strpos($proto, 'https') !== false) {
        $_SERVER['HTTPS'] = 'on';
    }
}
// 优先使用 Cloudflare 传递的真实客户端IP
if (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && filter_var($_SERVER['HTTP_CF_CONNECTING_IP'], FILTER_VALIDATE_IP)) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
} 
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    $clientip = trim($ips[0]);
    if (filter_var($clientip, FILTER_VALIDATE_IP)) {
        $_SERVER['REMOTE_ADDR'] = $clientip;
    }
}

8.此时在公网就可以正常访问了

自动启动

此时一旦退出的话还需要手动重复一遍上面的操作,特别麻烦,所以还需要配置个开机自启。

1.先在容器内创建一个启动Wordpress以及cloudflared的脚本

nano ~/start.sh
nohup cloudflared --config ~/.cloudflared/config.yaml tunnel run > /dev/null 2>&1 &
nohup mysqld_safe --datadir=/var/lib/mysql > /dev/null 2>&1 &
apache2ctl start

此时就可以退出容器了

exit

2.安装Termux:Boot(https://github.com/termux/termux-boot/releases/)

3.进入Termux内编辑自启脚本

mkdir -p ~/.termux/boot
nano ~/.termux/boot/startup.sh

填入以下内容

#!/data/data/com.termux/files/usr/bin/bash
termux-wake-lock
sshd
proot-distro login ubuntu -- bash -lc "bash start.sh; exec bash -l"

4.尝试重启并访问域名,正常情况下博客以及各种服务应该就能自动启动了,至此一个在CPE上搭建的博客站就建成了。

额外配置

1.Cloudflare还可以通过配置Cache rules来缓存页面提高加载速度

2.(在Termux的proot容器内运行Dotnet程序出错可尝试):

export DOTNET_GCHeapHardLimit=1C0000000
]]>
http://localhost/firstblog/feed/ 3