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的源,怎么找, 我再研究一下。
经过查询,可能当时作者采用的是开发版本的核心,找不到对应的源,还是换个正常的固件方便些吧。
重刷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
重新设置源
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
挂载硬盘
首先安装必须的软件包
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
重启路由后,刷新页面,可以在系统下面找到这个挂载点的工具界面了,挂载点勾上就可以挂载新加上的硬盘
部署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开启自启动
1.在/etc/init.d/下编写service脚本
#!/bin/sh /etc/rc.common
START=99
STOP=15start() {echo start#commands to launch syncthing, such as abovesyncthing -home="/mnt/sda5/syncthing/config/syncthing" >/dev/null & #必须要指定-home目录,启动时如果没有的话会自动生成一些配置文件,用自启动时,默认的home目录会更改,所以必须要指定-home目录。
}stop() {echo stop#commands to kill syncthingkillall 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 #关闭开机自启动
2.添加权限
chmod +x /etc/init.d/syncthing
3.开机启动
/etc/init.d/syncthing enable
要在 OpenWrt 上配置允许 SSH(端口22)并使其永久生效,您可以按照以下步骤进行操作:
登录到 OpenWrt 设备的管理界面或通过 SSH 连接到设备。
打开防火墙配置文件,在命令行终端中执行以下命令:
vi /etc/config/firewall
1
在配置文件中找到包含 “config rule” 的部分,并添加以下规则:
config rule
option name ‘Allow-SSH’
option src ‘wan’
option dest_port ‘22’
option proto ‘tcp’
option target ‘ACCEPT’
1
2
3
4
5
6
这将创建一个名为 “Allow-SSH” 的规则,允许从外部网络(wan)访问设备的 SSH 端口(22)。
保存并关闭配置文件。在 vi 编辑器中,按下 Esc 键,然后输入 “:wq”(冒号、小写字母 w 和小写字母 q),然后按回车键。
应用新的防火墙配置。在命令行终端中执行以下命令:
/etc/init.d/firewall restart
1
现在,SSH 端口(22)应该已经打开并允许访问了。
为了使配置永久生效,您还需要确保防火墙配置的持久性。执行以下命令保存配置更改并重新启动防火墙服务:
uci commit firewall
/etc/init.d/firewall enable
1
2
这样,配置将在设备重启后继续生效。
请注意,操作防火墙时需要谨慎。确保您只添加信任的网络和端口,并限制有关访问的规则,以提高安全性。