Bootstrap

小娱xiaoyu xy-c5 路由器 刷机openwrt, 最终PandoraBox完美运行

1、刷固件openwrt

顾虑到可能要安装cups(打印服务器)只支持19版本以下的,所以只能安装19的版本,官网没有找到,都是21以上的,所以我只能到外面找玩家自己编译的了。
我这次刷的包是来源于这里:https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=958130&extra=&ordertype=1&page=1
openwrt官网找版本号可到这个地址 https://firmware-selector.openwrt.org/ ,在搜索栏里面输入你的路由器型号
在这里插入图片描述
下载完固件后,我哥已经刷好了breed给我的,那我就直接先拔电,按住reset键不放,再插上电源,几秒后再松开,进入192.168.1.1页面,即可进入刷机界面,上传固件,开始刷机。
在这里插入图片描述

2、修改opkg的源

我刷完机后,没有改源,默认opkg update后,安装软件后就一运行报错
root@OpenWrt:~# fdisk -l
Error relocating /usr/lib/libfdisk.so.1: __gettimeofday_time64: symbol not found
Error relocating /usr/lib/libfdisk.so.1: __nanosleep_time64: symbol not found
Error relocating /usr/lib/libfdisk.so.1: __stat_time64: symbol not found
Error relocating /usr/lib/libfdisk.so.1: __fstatat_time64: symbol not found
Error relocating /usr/lib/libfdisk.so.1: __fstat_time64: symbol not found
Error relocating /usr/sbin/fdisk: __stat_time64: symbol not found
Error relocating /usr/sbin/fdisk: __fstatat_time64: symbol not found
Error relocating /usr/sbin/fdisk: __fstat_time64: symbol not found
Error relocating /usr/sbin/fdisk: __select_time64: symbol not found
Error relocating /usr/sbin/fdisk: __nanosleep_time64: symbol not found

有可能是安装源的问题,看了一下默认的是这样的,取的是snapshots版本(开发版)下面的软件源
src/gz openwrt_core http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages
src/gz openwrt_base http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base
src/gz openwrt_luci http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci
src/gz openwrt_packages http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/packages
src/gz openwrt_routing http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/telephony

鉴于我的来源包的版本号是19的,所以我重新选了19.07.10,这是19的最后一个版本号为源

在这里插入图片描述
按这位博主介绍:https://blog.csdn.net/JackMaF/article/details/132353812

修改/etc/opkg/distfeeds.conf文件

vi /etc/opkg/distfeeds.conf

在这里插入图片描述

我把源按如下修改了版本号19.07.10,架构改成mipsel_24kc,注意https要改成http,现在系统wget还不支持ssl。

src/gz openwrt_core http://downloads.openwrt.org/19.07.10/targets/ramips/mt7621/packages
src/gz openwrt_base http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/base
src/gz openwrt_luci http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/luci
src/gz openwrt_packages http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/packages
src/gz openwrt_routing http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/telephony

先把这些链接放在浏览器里面,挨个点开看看正常访问不,如果都能正常访问就表示地址没错。
openwrt官网这是国外的源,我们可以再把它换成国内的源,岂不是要快了很多,那就更简单了,看看清华的源
在这里插入图片描述

根据它的地址规则看看,只需要把版本号前面的地址改一下http://downloads.openwrt.org/换成http://mirror.tuna.tsinghua.edu.cn/lede/releases/,要注意还是用http,不要用https,先用浏览器访问一下地址没错就可以了

src/gz openwrt_core http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/targets/ramips/mt7621/packages
src/gz openwrt_base http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/base
src/gz openwrt_luci http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/luci
src/gz openwrt_packages http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/packages
src/gz openwrt_routing http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/telephony

完成后执行,会发现快了很多。

opkg update

再安装个软件试试,速度很快,

root@OpenWrt:~# opkg install vsftpd
Installing vsftpd (3.0.3-3) to root...
Downloading http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/packages/vsftpd_3.0.3-3_mipsel_24kc.ipk
Configuring vsftpd.

用px 查看一下,服务运行正常,netstat看一下端口正常,用ftp工具可以正常登陆了

root@OpenWrt:~# netstat -pan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      3333/vsftpd

再安装个blockd,发现还是报错,应该还是源配错了, 核心版本不对。

root@OpenWrt:/tmp/tmp/cups ipk# opkg install blockd
Installing blockd (2020-05-12-84269037-1) to root...
Downloading http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/targets/ramips/mt7621/packages/blockd_2020-05-12-84269037-1_mipsel_24kc.ipk
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for blockd:
 *      kernel (= 4.14.275-1-6c891a3fd685a3ff23be7c2e98ea800e)
 * opkg_install_cmd: Cannot install package blockd.

在这里插入图片描述
如上图,现在这个刷的固件核心为4.14.141,而我现在配的核心为https://mirror-03.infra.openwrt.org/releases/19.07.0/targets/ramips/mt7621/kmods/4.14.162-1-2e88863ccdd594fb8e842df3c25842ee/
看来我要重新找个安装包, 或者重新找个4.14.141的源,怎么找, 我再研究一下。
经过查询,可能当时作者采用的是开发版本的核心,找不到对应的源,还是换个正常的固件方便些吧。

3、重刷openwrt 19.07.10固件

我看这个作者当时是刷了PBR-M1的固件,那我也刷它的固件吧,在19版本里面找个就可以了, 之前我的WNDR4300采用的是OpenWrt 19.07.0的固件,非常稳定,已经稳定运行半年没有关过机,挂了各种服务都没事,所以我还是选19.07.0试试。
最终刷了19.07.10版本,下载地址:https://mirror-03.infra.openwrt.org/releases/19.07.10/targets/ramips/mt7621/openwrt-19.07.10-ramips-mt7621-pbr-m1-squashfs-sysupgrade.bin
后来发现刷完这个版本的内存只有256M,没有办法发挥出这台机器的性能,所以不能使用这个固件了。

3.1 重新设置源

vi /etc/opkg/distfeeds.conf
src/gz openwrt_core http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/targets/ramips/mt7621/packages
src/gz openwrt_kmods http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/targets/ramips/mt7621/kmods/4.14.275-1-6c891a3fd685a3ff23be7c2e98ea800e
src/gz openwrt_base http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/base
src/gz openwrt_freifunk http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/freifunk
src/gz openwrt_luci http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/luci
src/gz openwrt_packages http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/packages
src/gz openwrt_routing http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/telephony

3.2 挂载硬盘

首先安装必须的软件包

opkg install luci-i18n-base-zh-cn fdisk vsftpd block-mount mount-utils kmod-fs-ext4 usbutils  kmod-usb-storage

opkg install luci-i18n-base-zh-cn #中文包
opkg install fdisk  #查看硬盘信息
opkg install vsftpd #ftp服务
opkg install block-mount #页面自动挂载点,需要重启路由器刷新页面才出现“挂载点”。
opkg install mount-utils #可以使用UUID进行挂载
opkg install kmod-fs-ext4 #支持EXT4
opkg install usbutils #查看USB设备信息的工具,包括lsusb
opkg install kmod-usb-storage #安装usb存储设备驱动

重启路由后,刷新页面,可以在系统下面找到这个挂载点的工具界面了,挂载点勾上就可以挂载新加上的硬盘
在这里插入图片描述

3.3部署 syncthing

记得要下mipsle架构的,而且不是64位的,我下载的是syncthing-linux-mipsle-v1.27.0.tar.gz,下载地址:https://github.com/syncthing/syncthing/releases/download/v1.27.0/syncthing-linux-mipsle-v1.27.0.tar.gz

部署Syncthing

1、解压下载的Syncthing软件包

root@OpenWrt:/mnt/sda5# tar -xzvf syncthing-linux-mipsle-v1.27.0.tar.gz   //解压
root@OpenWrt:/mnt/sda5# mv syncthing-linux-mipsle-v1.27.0.tar.gz syncthing  //重新命名安装目录

2、将启动文件软链接到系统环境变量下

root@OpenWrt:~# ln -s /mnt/sda5/syncthing/syncthing /usr/bin/syncthing 

3、运行Syncthing生成配置文件

root@OpenWrt:~# syncthing     //由于上一步已经将启动文件链接到了环境变量,这里直接执行即可,会在root的home目录下面创建一些配置,后期会以这些配置文件来启动程序
root@OpenWrt:~/.local/state/syncthing# ls
cert.pem          config.xml        config.xml.v0     index-v0.14.0.db  key.pem

要注意的是,用/etc/init.d/syncthing脚本启动时,创建配置文件的目录与直接输入syncthing来运行时生成的配置文件目录不一致,所以需要在/etc/init.d/syncthing脚本里面指定-home目录。
更加要注意的是,这个目录如果一直放在root目录下面,一启动同步就会生成一些日志与数据库文件,所占空间比较大,很快就会占满root目录的空间,造成syncthing死掉, 所以我们要把这个目录转移到硬盘上去,脚本里面的home目录也要相应变更过去。

root@OpenWrt:~# mv ./.local/state /mnt/sda5/syncthing/config

5、编辑配置文件

root@OpenWrt:/mnt/sda5/syncthing/config# vi config.xml

    <gui enabled="true" tls="false" debugging="false" sendBasicAuthPrompt="false">
        <address>0.0.0.0:8384</address>
        <apikey>Zn43wXTiUfQeV2n5nUdLmRi76JMPabqP</apikey>
        <theme>default</theme>
    </gui>

修改配置文件将127.0.0.1修改为0.0.0.0即可,默认只允许本地访问

6、Openwrt设置syncthing开启自启动
在/etc/init.d/下编写service脚本

#!/bin/sh /etc/rc.common
START=99
STOP=15
 
start() {
  echo start
  #commands to launch syncthing, such as above
  syncthing -home="/mnt/sda5/syncthing/config/syncthing" >/dev/null &		#必须要指定-home目录,启动时如果没有的话会自动生成一些配置文件,用自启动时,默认的home目录会更改,所以必须要指定-home目录。
}
 
stop() {
  echo stop
  #commands to kill syncthing
  killall syncthing
}

这个脚本由sh来解释,/etc/rc.common做包装器,提供一些默认的命令。START=99,STOP=15指的是开机自启动的优先级,数字越大优先级越低,开机时优先级高的程序会先启动。

如果启动在boot期间,可以实现boot方法

rc.common模板,init脚本可用的命令有:

/etc/init.d/syncthing start         #启动脚本
/etc/init.d/syncthing stop          #停止服务
/etc/init.d/syncthing restart       #重启服务
/etc/init.d/syncthing reload        #重新加载配置文件,如果失败,重启服务
/etc/init.d/syncthing enable        #开启开机自启动
/etc/init.d/syncthing disable       #关闭开机自启动

.添加权限

chmod +x /etc/init.d/syncthing

开机启动

 /etc/init.d/syncthing enable

7、解决inotify-limits
当系统报如下图错误时:failed to setup inotify handler. Please increase inotify limits, see https://docs.syncthing.net/users/faq.html#inotify-limits

在这里插入图片描述

root@OpenWrt:/etc# sysctl fs.inotify.max_user_watches	#查看目前系统最大文件监控数
fs.inotify.max_user_watches = 8192

root@OpenWrt:/etc# vi /etc/sysctl.conf  #老毛子padavan的固件下面没有这个文件,直接新建一个这文件
fs.inotify.max_user_watches = 524288 #增加一行,修改默认值为524288

root@OpenWrt:/etc# sysctl -p  #使修改生效
fs.inotify.max_user_watches = 524288

root@OpenWrt:/etc# sysctl fs.inotify.max_user_watches  #再次查看结果,已经修改成功
fs.inotify.max_user_watches = 524288

3.4 开启从外网访问openwrt的ssh

要在 OpenWrt 上配置允许 SSH(端口22)并使其永久生效,您可以按照以下步骤进行操作:

登录到 OpenWrt 设备的管理界面或通过 SSH 连接到设备。

打开防火墙配置文件,在命令行终端中执行以下命令:

vi /etc/config/firewall

在配置文件中找到包含 “config rule” 的部分,并添加以下规则:

config rule
	option name 'Allow-SSH'
	option src 'wan'
	option dest_port '22'
	option proto 'tcp'
	option target 'ACCEPT'

这将创建一个名为 “Allow-SSH” 的规则,允许从外部网络(wan)访问设备的 SSH 端口(22)。

应用新的防火墙配置。在命令行终端中执行以下命令:

/etc/init.d/firewall restart

现在,SSH 端口(22)应该已经打开并允许访问了。
为了使配置永久生效,您还需要确保防火墙配置的持久性。执行以下命令保存配置更改并重新启动防火墙服务:

uci commit firewall
/etc/init.d/firewall enable

这样,配置将在设备重启后继续生效。

请注意,操作防火墙时需要谨慎。确保您只添加信任的网络和端口,并限制有关访问的规则,以提高安全性。

3.5 安装CUPS

从https://gitee.com/ytwl333/openwrt-musl-cups/tree/master/mipsel下面下载了CUPS的所有安装包。

root@OpenWrt:/mnt/sda5/cups# opkg install cups-bsd_2.1.4-1_mipsel_24kc.ipk
Collected errors:
 * pkg_init_from_file: Malformed package file cups-bsd_2.1.4-1_mipsel_24kc.ipk.

发现装不上去,难道一定要19.07.0的版本吗?这可是我必须的服务呀,openwrt对cups的支持从18版本之后已经不再支持了,这个19版本的还是另外高人另行编译出来的。

补记:后来才发现是下载的包有问题,我重新从上面的地址打包下载下来,再解压出来安装就OK了,为此浪费了一天时间,兜兜转转又回来19.07.10的版本了,经过测试,这个运行CUPS是很稳定的,没有任何问题。

下载好了包,直接安装上就可以了,然后进入页面,通过页面修改一些配置,很简单,也可以直接就看到几台打印机了,一路顺畅。

没办法, 重刷19.07.0试试看, 前面的工作都白费了,不过再部署应该会很快的。

重新刷上openwrt 19.07.1,还是一样的。

在查找问题的时候,百度到一篇文章:https://www.right.com.cn/forum/thread-4049542-1-1.html,这位跟我的情况是一样的,但他是在pandoraBox下面的,里面有位热心的网友帮他解决了, 说pandoraBox里面就自带cups包,那我岂不试一试看看。

再刷pandoraBox上试试
还是一样的,下载PBR-M1机型的固件,下载地址:
http://downloads.pangubox.com:6380/pandorabox/19.01/targets/ralink/mt7621/PandoraBox-ralink-mt7621-pbr-m1-2019-01-01-git-3e8866933-squashfs-sysupgrade.bin
刷完机,默认用户名密码:root/admin
登陆进去,发现什么都有的,真是大又全呀,全部不用自己搞了
在这里插入图片描述
各种服务全了,不用自己部署, 看一下硬盘都自动挂上了,都不需要干活了,直接用即可。

再试一下安装cups

[root@PandoraBox_4455:/mnt/sda5]#opkg update
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/targets/ralink/mt7621/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_core
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/base/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_base
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/newifi/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_newifi
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/pear/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_pear
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_packages
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_luci
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/lafite/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_lafite
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/mtkdrv/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_mtkdrv
[root@PandoraBox_4455:/mnt/sda5]#opkg install cups
Installing cups (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/cups_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libpng (1.2.51-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libpng_1.2.51-1_mipsel_1004kc_dsp.ipk
Installing libjpeg (6b-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libjpeg_6b-1_mipsel_1004kc_dsp.ipk
Installing libcups (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libcups_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libcupsmime (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libcupsmime_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libcupscgi (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libcupscgi_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libcupsppdc (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libcupsppdc_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libusb-1.0 (1.0.20-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/base/libusb-1.0_1.0.20-1_mipsel_1004kc_dsp.ipk
Configuring libjpeg.
Configuring libpng.
Configuring libcups.
Configuring libcupsmime.
Configuring libcupscgi.
Configuring libcupsppdc.
Configuring libusb-1.0.
Configuring cups.

简直不要太完美, 一个错都没有报。
直接打开管理页面:http://192.168.1.1:631/admin 用户名密码与系统一致
添加打印机的时候发现找不到打印机,需要执行一下设备权限:

[root@PandoraBox_4455:/dev]#chmod 700 /usr/lib/cups/backend/usb

再刷新一下管理页面,添加打印机那里就可以看到自己的打印机了,按正常添加打印机进入就可以了。

我发现在还是存在一个问题:总是打印几下打印机就死掉了,USB接口好像访问出错,以下是错误日志,无解,看来还得换固件,找不到解决的办法。

Sat Apr 13 14:35:55 2024 lpr.info cupsd[1906]: [Job ???] Request file type is application/octet-stream.
Sat Apr 13 14:35:55 2024 lpr.info cupsd[1906]: REQUEST 192.168.1.100 - - "POST /printers/GP2120T_Pan HTTP/1.1" 200 9702 Print-Job successful-ok
Sat Apr 13 14:35:55 2024 lpr.info cupsd[1906]: GP2120T_Pan Administrator 6 [13/Apr/2024:14:35:55 +0800] 1 1 - 192.168.1.100 50x40带物料_陆文炯 - -
Sat Apr 13 14:35:59 2024 lpr.info cupsd[1906]: [Job ???] Request file type is application/octet-stream.
Sat Apr 13 14:35:59 2024 lpr.info cupsd[1906]: REQUEST 192.168.1.100 - - "POST /printers/GP2120T_Pan HTTP/1.1" 200 9702 Print-Job successful-ok
Sat Apr 13 14:36:04 2024 kern.info kernel: [  454.792000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Sat Apr 13 14:36:09 2024 kern.err kernel: [  459.868000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:36:17 2024 daemon.warn dnsmasq[2327]: nameserver 114.114.114.114 refused to do a recursive query
Sat Apr 13 14:36:24 2024 kern.err kernel: [  475.048000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:36:24 2024 kern.info kernel: [  475.252000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Sat Apr 13 14:36:24 2024 daemon.err uhttpd[2889]: sh: /usr/lib/smartinfo/smart_status.sh: Permission denied
Sat Apr 13 14:36:25 2024 lpr.info cupsd[1906]: Saving job.cache...
Sat Apr 13 14:36:29 2024 kern.err kernel: [  480.328000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:36:44 2024 kern.err kernel: [  495.508000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:36:44 2024 kern.info kernel: [  495.712000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Sat Apr 13 14:36:49 2024 kern.warn kernel: [  500.716000] xhci-hcd xhci-hcd: Timeout while waiting for setup address command
Sat Apr 13 14:36:55 2024 kern.warn kernel: [  505.924000] xhci-hcd xhci-hcd: Timeout while waiting for setup address command
Sat Apr 13 14:36:55 2024 kern.err kernel: [  506.132000] usb 1-1.3: device not accepting address 5, error -62
Sat Apr 13 14:36:55 2024 kern.info kernel: [  506.232000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Sat Apr 13 14:36:59 2024 kern.warn kernel: [  510.500000] connection reset by peer.
Sat Apr 13 14:37:00 2024 kern.warn kernel: [  511.236000] xhci-hcd xhci-hcd: Timeout while waiting for setup address command
Sat Apr 13 14:37:05 2024 kern.warn kernel: [  516.444000] xhci-hcd xhci-hcd: Timeout while waiting for setup address command
Sat Apr 13 14:37:05 2024 kern.err kernel: [  516.652000] usb 1-1.3: device not accepting address 5, error -62
Sat Apr 13 14:37:05 2024 kern.info kernel: [  516.680000] usb 1-1.3: USB disconnect, device number 5
Sat Apr 13 14:37:05 2024 kern.warn kernel: [  516.692000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9a17f280
Sat Apr 13 14:37:05 2024 kern.warn kernel: [  516.700000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9a17f2ac
Sat Apr 13 14:37:05 2024 kern.warn kernel: [  516.708000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9a17f22c
Sat Apr 13 14:37:05 2024 kern.warn kernel: [  516.716000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9a17f200
Sat Apr 13 14:37:06 2024 kern.err kernel: [  516.772000] FAT-fs (sdb): unable to read boot sector to mark fs as dirty
Sat Apr 13 14:37:06 2024 kern.info kernel: [  516.796000] usb 1-1.3: new full-speed USB device number 7 using xhci-hcd
Sat Apr 13 14:37:11 2024 kern.err kernel: [  521.872000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:37:26 2024 kern.err kernel: [  537.052000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:37:26 2024 kern.info kernel: [  537.232000] usb 1-1.3: new full-speed USB device number 8 using xhci-hcd
Sat Apr 13 14:37:31 2024 kern.err kernel: [  542.308000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:37:36 2024 lpr.info cupsd[1906]: Saving job.cache...
Sat Apr 13 14:37:39 2024 daemon.err uhttpd[2889]: sh: /usr/lib/smartinfo/smart_status.sh: Permission denied

所有固件都换遍了, 所有固件都会出现这个问题,包括openwrt 19.x 20.x, 21.x,我都试过了,在网上也找过各种资料, 有人说是USB设备时钟频率不对,但这个刚插上去能用,应该不是这个问题;有人说是支持USB3.0的内核有BUG,要换版本,我这么多版本都试过了;有人说要卸载USB3.0的驱动,但所有对USB的驱动都是走xhci-hcd的, 我卸载USB3.0驱动也没有用呀;几乎所有能试的办法我都试过了,不过后来终于找到问题了, 在最后面有写解决办法。

4、重刷潘多拉18.12

换到18.12(http://downloads.pangubox.com:6380/pandorabox/18.12/targets/ralink/mt7621/PandoraBox-ralink-mt7621-pbr-m1-2018-12-14-git-ba60306f2-squashfs-sysupgrade.bin)版本,发现没有问题,运行正常,速度也快, 这很有可能是我的最终选择了。

刷完 PandoraBox 18.12后,需要配置一下这个地方:

vi /etc/cups/cupsd.conf

BrowseWebIF Yes
ServerAlias * 

/etc/init.d/cups restart #重启服务

可以直接在web界面上修改
在这里插入图片描述
然后修改防火墙,放开631端口,做个端口转发
在这里插入图片描述

4.1 从外网访问SSH和管理界面

在防火墙里端口80转发一下
在这里插入图片描述

4.2 网络唤醒功能

[root@PandoraBox_4455:/root]# opkg install etherwake
[root@PandoraBox_4455:/root]# opkg install luci-app-wol  luci-i18n-wol-zh-cn #管理页面

在这里插入图片描述

4.3 重新部署synthing

由于之前已经把包都安装好了,保存在硬盘上的,所以现在就很快,只需要三部

[root@PandoraBox_4455:/root]#ln -s /mnt/sda5/syncthing/syncthing_moveTo_etc_init.d /etc/init.d/syncthing #给自动脚本在init.d下面做好软链接
[root@PandoraBox_4455:/root]#chmod +x /etc/init.d/syncthing  #添加执行权限
[root@PandoraBox_4455:/root]#ln -s /mnt/sda5/syncthing/syncthing /usr/bin/syncthing   #运行程序做好软链接
[root@PandoraBox_4455:/root]#/etc/init.d/syncthing enable #开机自启动
[root@PandoraBox_4455:/root]#/etc/init.d/syncthing start  #启动程序

重新刷回openwrt吧,感觉还是openwrt比较稳定,我要刷一个自带cups的包的官方版本看看,估计得17的版本吧, 不知道有没有

opentwrt 19.07.10 可以支持CUPS,并稳定运行, 只能识别256M内存
OpenWrt 23.05.3 可以支持CUPS,并稳定运行, 能识别512M内存, FTP上传写入速度15M 下载读取速度26M(较慢)
Padavan MT7621_7603_7612_512M 3.4.3.9-099_24-02-1,速度最快,能跑满千兆带宽,FTP上传下载分别是45和23,USB3.0硬盘挂载识别都没问题,响应速度也快,但貌似不太稳定,有两个操作过程中卡死了,页面无响应,网速没有了,仅有SSH还能正常执行,执行reboot后恢复正常。

4.4 用动态域名从外网访问PandoraBox路由器页面失败

报错时,提示以下错误
Forbidden
Rejected request from RFC1918 IP to public server address
在这里插入图片描述
解决办法:

[root@PandoraBox_4455:/root]#vi /etc/config/uhttpd 
config uhttpd 'main'
        list listen_http '0.0.0.0:80'
        list listen_http '[::]:80'
        list listen_https '0.0.0.0:443'
        list listen_https '[::]:443'
        option redirect_https '0'
        option home '/www'
        option rfc1918_filter '0'   #这一行后面1改成0
        option max_requests '3'
        option max_connections '100'
        option cert '/etc/uhttpd.crt'
        option key '/etc/uhttpd.key'
        option cgi_prefix '/cgi-bin'
        option script_timeout '60'
        option network_timeout '30'
        option http_keepalive '20'
        option tcp_keepalive '1'
        option ubus_prefix '/ubus'
        list index_page 'cgi-bin/luci'

然后在页面上重启uhttpd服务,即可正常访问了。

也可以通过执行以下命令来重启:

/etc/init.d/uhttpd restart

4.5 一级路由访问二级路由

一级路由(PandoraBox):
LAN:192.168.10.1
二级路由1
LAN:192.168.0.0 WAN:(192.168.10.2)
二级路由2
LAN:192.168.3.0 WAN:(192.168.10.3)

在一级路由(PandoraBox)上设置如下:
在这里插入图片描述
二级路由1
让它可以访问上级路由与同级路由2(192.168.3.0)
在这里插入图片描述

二级路由2
让它可以访问上级路由与同级路由1(192.168.0.0)
在这里插入图片描述

4.6 FTP配置开放对外网访问

  1. 修改FTP模板, 增加
pasv_min_port=60024
pasv_max_port=60032

pasv_enable默认已经启用, 所以只需要指定端口范围, 以便后面设置防火墙打开对应的端口
在这里插入图片描述在openwrt上面没有luci界面,只能进入配置文件修改

root@OpenWrt:~# vi /etc/vsftpd.conf 
anonymous_enable=YES    #允许匿名用户访问(必须)
anon_root=/mnt/sda1/anymous   	#匿名用户根目录(必须)
ftp_username=nobody     #定义匿名用户名(必须,否则用浏览器打开匿名时会一直要求输入用户名密码)
local_enable=YES        #允许本地用户登录(必须,否则会不让root账户登陆)
local_root=/            #本地用户主目录(必须,否则手机播放器登陆FTP会显示目录为空)
write_enable=YES  #允许写入权限
pasv_enable=YES   #PASV模式 (被动模式)
pasv_min_port=60024 #数据传输端口,PASV模式下,服务端开放的最小端口号,指定这个端口号方便开放防火墙,否则就是系统随机的
pasv_max_port=60032 #数据传输端口,PASV模式下,服务端开放的最大端口号,指定这个端口号方便开放防火墙,否则就是系统随机的

修改完配置重启 FTP 服务

/etc/init.d/vsftpd restart

PASV模式,即被动模式,是FTP(File Transfer Protocol,文件传输协议)中的一种连接方式。在PASV模式下,FTP客户端随机打开一个大于1024的端口(端口N),向FTP服务器的21号端口(默认的FTP端口)发起连接,并发送用户名和密码进行登录。登录成功后,客户端会发送一个PASV命令给服务器,通知服务器它处于被动模式。服务器在收到PASV命令后,会随机开放一个大于1024的端口(端口P)进行监听,并通知客户端自己的数据端口是P。客户端在收到服务器的通知后,会通过之前打开的端口N+1连接到服务器的端口P,从而在两个端口之间进行数据传输。
与PASV模式相对的是PORT模式,在PORT模式下,客户端打开一个大于1024的端口,并告诉服务器去连接这个端口。两种模式的主要区别在于数据链路的建立方式不同。在设置FTP服务器时,需要注意在服务器上为PASV模式指定可用的端口范围,并在服务器的防火墙上打开这些端口,以确保PASV模式能够正常工作。

防火墙配置:
需开放两条端口的配置21,与60024~60032,
在这里插入图片描述
在openwrt上面,FTP监听的只是LAN端口,所以要做转发,不能光开放端口60024~60032,不然从外网无法访问内网的FTP服务,表现为能连接上, 但下载不了目录列表。
在这里插入图片描述
从上图可以看到,21端口是监听了所有端口,但所所用的数据传输端口60029是在60024~60032范围内的,但是监听只是192.168.4.1的LAN口,并不是0.0.0.0,所以一直无法传输数据。
在这里插入图片描述

客户端配置被动模式
在这里插入图片描述
开放FTP与SMB可以参考这个链接里面,我的SMB还是有问题,无法访问,原因我已经明白了,因为电信与其它宽带运营商为了保证安全,把常用的这些端口封锁了,包括445、21、20等等,我们必须要映射成其它端口号才能访问这些服务。
https://www.cnblogs.com/milton/p/10327134.html
在通信规则里面按下面方式开放端口所示:
在这里插入图片描述
后来发现,直接开放这些端口并不能成功访问,还是需要做端口转发,做了端口转发就不需要再到流量规则里面去开放端口了。
在这里插入图片描述

4.7 对外网开放SFTP服务

最好还是使用SFTP服务来对外开放,安全又方便,不用像FTP还要开放数据端口,比较麻烦,唯一不好的就是比较慢,没有FTP速度快。

一、安装包

opkg install vsftpd openssh-sftp-server  #安装SFTP包

二、配置端口转发
在这里插入图片描述
三、即可从客户端访问了。

4.8 对外网开放SMB服务

我本来也想像SFTP一样,配置一个端口转发,但发现没有用,难道是因为我做了DMZ,一样被封?
在这里插入图片描述
必须如下配置才可以正常访问
1、先到电信光猫上做端口映射
在这里插入图片描述
2、到路由器里面的防火墙开放445端口
在这里插入图片描述

3、Windows远程访问这里的自定义端口的SMB服务
因为Windows只支持默认的445端口,不能支持自定义的端口号,所以需要到远程客户端的路由器上做个端口转发,我家里也是用的openwrt,可以用iptables来实现
比如我的家里openwrt路由器IP地址为192.168.6.1,此时,进路由器,输入如下命令:

iptables -t nat -I PREROUTING -p tcp -d 192.168.6.1 --dport 445 -j DNAT --to 110.110.110.110:44513

解释一下这段代码,当路由器发现局域网内的请求满足以下条件时,自动进行DNAT(目的网络地址转换):当请求目的ip 为192.168.6.1,且目的端口为445(你也可以改成任意有效的ip地址)时,就会把目的ip改成110.110.110.110,端口改成44513,这里是服务器所在路由器的外网ip,你要改成自己的,反过来,当收到来自110.110.110.110:44513的包时,自动修改成192.168.6.1:445

但是这里只能接受用IP地址,不能用域名,如果目标地址是动态IP地址的话,还需要想想办法。

4.9 动态DNS服务

按如下配置好3322的动态域名后,一直报错!
在这里插入图片描述
查一下,论坛上说要安装一个openssl-util的包,安装之后,发现报的有点变化, 但是还是Error: ‘8’。

打开系统日志,每分钟报一次错

Mon Apr 29 07:34:57 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:34:57 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 748/0 in 60 seconds
Mon Apr 29 07:35:57 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:35:57 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 749/0 in 60 seconds
Mon Apr 29 07:36:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:36:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 750/0 in 60 seconds
Mon Apr 29 07:37:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:37:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 751/0 in 60 seconds
Mon Apr 29 07:38:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:38:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 752/0 in 60 seconds
Mon Apr 29 07:39:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:39:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 753/0 in 60 seconds
Mon Apr 29 07:40:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:40:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 754/0 in 60 seconds

其实就在/etc/ddns/services这里面,找到3322.org配置API接口

vi /etc/ddns/services

“3322.org” “http://[USERNAME]:[PASSWORD]@members.3322.org/dyndns/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]”

里面的members.3322.org,改成members.3322.net即可, 重启服务后,就没问题了。
在这里插入图片描述

我是用光猫拔号上网的,在光猫上有设置动态域名
在这里插入图片描述
动态域名配置好后,发现从内网无法访问,ping也不通,但是IP能解析是对的,可能是光猫有问题吧,但从外网访问没有问题。
在这里插入图片描述

只能曲线救国了,在DNS里面配置一个自定义DNS解析记录,指向这个路由器WAN口
在这里插入图片描述
再把LAN口的DNS设置为这个路由器的LAN口IP地址,以保证下面的终端获取的DNS服务由这个路由器来提供。
在这里插入图片描述

4.10 安装filemanager

系统自带一个Filemanager的管理界面,但一直启动不了,我也没办法,我到ssh下面,想用手工把它启起来,发现也启不来, 老是报参数错。一气之下就把它给卸载掉了, 就没有截图。
等我卸载之后,一搜索,发现还有好几个filemanager没卸载干净,而且在ROM下面手工也删除不了。

[root@PandoraBox_4455:/root]#find / -name filemanager
/overlay/etc/config/filemanager
/overlay/usr/bin/filemanager
/rom/etc/config/filemanager
/rom/etc/init.d/filemanager
/rom/usr/bin/filemanager

我再试着将它启一下

./filemanager -p 8989 -d ./filebrowser.db -s /mnt/sda5/ -l fm.log

发现可以启来了,这什么情况, 我赶紧把它拷贝出来,另外存放起来,以后可能用得上。
打开页面访问一下,速度很快
在这里插入图片描述
把8989端口开放出来,从外网访问,配合手机的sogou浏览器或者QQ浏览器(它们以前是一家吧),发现用来看视频真好用,比起FTP快多了,可以达到10M/s的速度,随意拖动都不卡,简直和内网播放体验相当了, sougou的播覇播放器操控真心好用, 比起那些ES文件管理器、文件管理器+、KODI等都好用,速度也快很多。但魅族手机自带的浏览器不行,有些视频不能在线播放,需要像sougou这种浏览器自带播放器才行,支持所有的视频播放。
如下图,碰到不能在线播放在的电影,点击下载时,下面会有个在线播放的选项,也可以实现在线播放了。
在这里插入图片描述

唯一不好的就是,每看完一部电影,关闭后,都会刷新当前页面,刚刚打开的电影位置就没有了,又要重新再找,好苦恼呀,好在界面上有上一个和下一个的箭头可以直接下一个文件。

最终选择:

最后决定使用PBR-M1 PandoraBox 19.02 2019-02-01的版本的固件,下载地址如下:http://downloads.pangubox.com:6380/pandorabox/19.02/targets/ralink/mt7621/PandoraBox-ralink-mt7621-pbr-m1-2019-02-01-git-0231ad4b5-squashfs-sysupgrade.bin
在这里插入图片描述

搭建的服务有:
CUPS:远程多台打印服务器,稳定高效安全,真心好用
Syncthing:私有云,实现内外网多台设备文件同步,安全,自带P2P内网穿透BUF,消耗资源大户
PPTP VPN:VPN服务
WOL:网络唤醒,远程开机
FTP/SMB:文件传输共享与下载,这个不用说了, 固件自带
Filemanager:文件在线WEB管理,更重要的是方便直接用浏览器在线看电影,速度超快。
DDNS:动态域名
还有其它固件自带的一些服务都很好用,不一一例举了。

,经过测试,开启NAT的情况下,可以轻松跑满1000M
在这里插入图片描述
硬盘读写速度如下:
读取可以达到100M/s
在这里插入图片描述

写入速度比较慢,只有30M/s
在这里插入图片描述

潘多拉其它都好用, 但是CUPS的USB打印还是有问题,时常USB设备丢失了,我先把kmod-usb3的驱动删掉了, 又把kmod-usb-ohci、kmod-usb-uhci 驱动删掉了试试看,结果每次打印还是报如下日志,需要再继续观察

Mon Apr 29 14:55:59 2024 lpr.info cupsd[1865]: GP2120T Administrator 5 [29/Apr/2024:14:55:59 +0800] 1 1 - 192.168.4.2 New doc - -
Mon Apr 29 14:56:11 2024 kern.info kernel: [ 1900.532000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Mon Apr 29 14:56:11 2024 kern.warn kernel: [ 1900.624000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 99211c00
Mon Apr 29 14:56:11 2024 kern.warn kernel: [ 1900.632000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 99211c2c
Mon Apr 29 14:56:11 2024 kern.warn kernel: [ 1900.640000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 99211bac
Mon Apr 29 14:56:11 2024 kern.warn kernel: [ 1900.648000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 99211b80

之前用的是9.9在拼多多上买的USB3.0的接口,后来换成我的USB 2.0老古董试试看,在把USB-HUB更换后,经过一周时间的试用,发现打印机没问题了,这个warn信息并不影响正常打印,目前还比较稳定。奇怪的是我USB3.0的移动硬盘插在上面没有问题,但是这个打印机却有问题。是不是我的打印机上面同时有个FAT32的存储空间用来放驱动的,可能是这个产生影响了。

Wed May 29 16:16:13 2024 lpr.info cupsd[2001]: [Job ???] Request file type is application/octet-stream.
Wed May 29 16:16:13 2024 lpr.info cupsd[2001]: REQUEST 192.168.4.101 - - "POST /printers/GP-2120T HTTP/1.1" 200 30171 Print-Job successful-ok
Wed May 29 16:16:13 2024 lpr.info cupsd[2001]: GP-2120T Administrator 54 [29/May/2024:16:16:13 +0800] 1 1 - 192.168.4.101 New doc - -
Wed May 29 16:16:22 2024 kern.info kernel: [331992.028000] usb 1-1.3: reset full-speed USB device number 4 using xhci-hcd
Wed May 29 16:16:22 2024 kern.warn kernel: [331992.136000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9b476c00
Wed May 29 16:16:22 2024 kern.warn kernel: [331992.144000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9b476c2c
Wed May 29 16:16:22 2024 kern.warn kernel: [331992.152000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9b476a2c
Wed May 29 16:16:22 2024 kern.warn kernel: [331992.160000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9b476a00
Wed May 29 16:16:44 2024 lpr.info cupsd[2001]: Saving job.cache...

搭建PPTP VPN

第一次是在openwrt上做的
1、安装包

root@OpenWrt:~# opkg install pptpd kmod-mppe ppp
root@OpenWrt:~# vi /etc/config/pptpd

config service 'pptpd'
        option 'enabled' '0'   #开启
        option 'localip' '192.168.4.1'	#改成服务器LAN IP地址
        option 'remoteip' '192.168.4.20-30'  #给连接上来的客户端分配的IP地址池

config 'login'   #登陆的账号1
        option 'username' 'youruser1'
        option 'password' 'yourpass1'
        
config 'login'   #登陆的账号2
        option 'username' 'youruser2'
        option 'password' 'yourpass2'

root@OpenWrt:~# /etc/init.d/pptpd enable    # 开启启动,这个是最直接的方法,和service pptpd enable,效果是一样的
root@OpenWrt:~# /etc/init.d/pptpd start    # 启动
root@OpenWrt:~# netstat -antp    # 查看端口1723是否开启,注意开启防火墙

发现不能成功访问,没有找到原因,后来因为改刷PandoraBox, 所以没有深入研究。
刷完PandoraBox后,库里直接有个包
在这里插入图片描述
点击安装luci-i18n-pptp-server-zh-cn ,其它的也会装上了。装完配置好
在这里插入图片描述
外网连上VPN发现只能访问这个路由器,其它内网的其它IP地址都无法访问,原因是需要开启转发。
在这里插入图片描述

方案二:也可以直接把1723端口给它转发到我的下级飞鱼星的路由器上算了,什么都不用再弄,内网都通通的了。
在这里插入图片描述
但是方案二发现远端访问内网有问题,只能ping通,但不能传输数据,一传输数据就断开,例如在shell上执行一个netstat -pan都只能显示一半出来就断开了。后来发现那是因为MTU值不匹配的问题,把MTU值改为1400即可。

;