目录
- 前言
- 需求分析
- 手头的设备
- 家庭网络拓扑图
- 旁路网关配置
- OpenWRT固件选择
- OpenWRT固件刷入
- 旁路网关配置流程
- 旁路网关的使用
- 前置工作
- 日常存储/关键备份
- 内网穿透
- 24小时待命下载器
前言
近期由于个人需求,需要一台OpenWRT设备实现一些功能。所以本文主要还是为了自己后期维护/折腾留底做参考,毕竟OpenWRT这种设备只要配置完后就会到角落呆着(最多会进行重启),这后续万一有什么问题再想去折腾恢复,很多细节记不住就有点麻烦
需求分析
设备需要有的一些功能:
- 从外网进行内网设备管理/服务访问
- 从内网进行日常存储/关键备份
- 24小时待命,低功耗下载
- V了解资本主义P共产主义万岁N【建设中】
手头的设备
由于【垃圾佬穷】钱包问题,没有选择新购置一台设备,而是从已有设备身上着手,手头刚好有一台闲置设备RAVPower-WD009便携路由文件宝(RAVPower这个牌子可能比较耳熟,旗下主要产品是电源,不知道为啥会出一个这个设备)。我当初购买就是图它功能多,颜值高,支持USB-C充电,目前官网已经找不到这玩意儿了
它采用了MediaTek MT7628NN硬路由方案,具体参数如下:
- CPU: 单核 32位 580MHz MIPS24KEc架构
- RAM:64MB
- ROM: 16MB Flash
- 无线: MT7610E射频芯片,WIFI5
- 有线:: 百兆以太网口 x 1
- 拓展能力:SD卡插槽 x 1,USB-A 2.0 x 1
- 其他:可当充电宝,支持USB-C充电
重点是OpenWRT官方竟然对这款设备有支持,这意味我可以投入开源社区的怀抱,而不用面对官方的RAV-FileHub客户端(用着其实还行,但又不是很行),设备可自定义程度更高,更能满足用户多变的需求
设备相关的一些操作和知识,官方有给出,我在这里记录一下
- 进入TFTP模式:设备运行任意固件,关机状态下,按住reset键开机,松开开机键,直到地球灯常亮(同时松开reset键)即可。此模式可进行固件更新操作
- OpenWRT重置操作:设备运行OpenWRT固件,开机状态下,按住reset键,直到地球灯开始闪烁,等待自动重启开机即可。重置后,设备会处于【出厂状态】,无线默认关闭,仅可使用网线连接,默认后台地址192.168.1.1
家庭网络拓扑图
具体设备和参数如下:
- 智能网关(光猫+路由+网关/主路由)
有线:一个光纤口,一个千兆WAN口,四个千兆LAN网口
无线:2.4GHz Master - 旁路网关(本文主角)
有线:一个WAN/LAN口
无线:双模2.4GHz/5GHz Master/Client - 台式工作站(主力机)
有线:一个千兆网口
正常情况,如果设备的性能足够强,接口足够多,其实可以当作主路由来使用,此时上图中所有有线/无线网络服务均由主路由提供,此时的性能是最好的,所有设备都处于全双工的模式
碍于RAVPower-WD009不能作主路由的位置,可以将其作旁路网关附加到已有的网络,提供拓展的功能。旁路网关功能的使用有两种方式:
- 通过配置主路由,使得所有设备流量都经过旁路网关,这种模式旁路网关的要求较高,整体网络速度还受限于旁路网关
- 通过修改上网终端的网关配置,自由选择流量是否要经过旁路网关,这种模式比较灵活,本文使用这种模式
在各种场景下,上网的流量分配应该做到如下
- 主路由有线访问外网:上行流量直接到达主路由,下行流量直接到达设备
- 主路由无线访问外网:上行流量直接到达主路由,下行流量直接到达设备
- 旁路网关资本主义访问外网:上行流量经过旁路网关,再发送到主路由,下行流量不经过旁路网关,直接发送到设备
- 旁路网关无线访问内网服务(内网服务由旁路网关提供):上行流量直接到达旁路网关,下行流量直接到达设备
- 旁路网关无线访问内网服务(内网服务由旁路网关提供):上行流量直接到达旁路网关,再由旁路网关到达主路由,下行流量到达主路由后,转发给旁路网关,再转发到设备
旁路网关配置
OpenWRT固件选择
文章发布时最新版本:23.05(刷入后死机)
选择刷入版本:22.03.5
更多固件相关可以到OpenWRT官方支持页面
OpenWRT固件刷入
设备进入TFTP模式,PC同设备通过网线连接,PC配置IPv4(参数如下,地址10.10.10.x,子网掩码255.255.255.0,网关10.10.10.1,更新完后记得还原),浏览器输入10.10.10.128即可进入TFTP固件更新界面,界面中只有两个操作上传固件/固件更新,上传OpenWRT固件,执行固件更新操作,更新完成后设备会自动重启进入出厂状态
旁路网关配置流程
以OpenWRT默认出厂状态,主路由IP 192.168.1.1,子网掩码255.255.255.0/网段192.168.1.x为配置基础
- PC仅和设备通过网线连接(不要通过无线网卡等连接其他网络),IPv4不要有其他配置(注意TFTP模式时改动过此配置,如出现不能访问,还原IP/DNS自动获取即可),访问192.168.1.1,进入OpenWRT控制台LUCI图形界面
- 进入网络-接口配置界面,配置LAN为以下参数
常规设置:IP获取协议为静态地址,IP地址为192.168.1.x(x=2~254,此地址为网关自身访问地址,注意不要同其他设备的IP冲突),如192.168.1.8;子网掩码为255.255.255.0(确保和自身主路由在同一网段);默认网关地址为192.168.1.1(一般都为主路由的IP地址);广播地址为192.168.1.255
高级设置:使用自定义的DNS服务器,服务器地址为192.168.1.1(使用主路由充当DNS服务器)
DHCP服务器:勾选忽略此接口(不在这个接口提供DHCP服务,避免和主路由IP分配策略冲突),IPv6设置中,RA服务、DHCPv6,NDP代理共三个选项,全部设置为禁用 - 进入网络-防火墙配置界面,配置以下参数
常规设置:关闭SYN-flood防御,关闭LAN相关的IP动态伪装(如果关闭后出现不能正常上网,可以重新启用) - 重启设备,将旁路网关LAN口和主路由的LAN口是用网线连接即可
旁路网关的使用
以下操作需要通过SSH连接到设备IP后进行,操作基本为安装功能插件、更改配置文件等
前置工作
国内源替换
# 替换国内源
sed -i 's_downloads.openwrt.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf
# 更新国内源
opkg update
中文化支持
opkg install luci-i18n-base-zh-cn luci-i18n-opkg-zh-cn luci-i18n-firewall-zh-cn
添加SD卡槽支持
opkg install kmod-sdhci kmod-sdhci-mt7620
添加USB存储支持
opkg install kmod-usb-core kmod-usb-storage kmod-usb-storage-uas kmod-usb2
添加多种文件系统支持
opkg install kmod-fs-ext4 e2fsprogs swap-utils kmod-fs-exfat exfat-mkfs ntfs-3g kmod-fs-vfat kmod-fs-msdos
添加存储设备分区/挂载工具
opkg install fdisk block-mount
存储拓展(插入SD卡的情况)
# 【此操作会格式化SD卡,并将其分为两个分区】
# SD卡 /dev/mmcblk0
# swap分区(拓展内存) /dev/mmcblk0p1
# ext4分区(拓展外存) /dev/mmcblk0p2
# 手动将SD设备分区
fdisk /dev/mmcblk0
# 格式化swap分区,开启swap分区
mkswap /dev/mmcblk0p1
swapon /dev/mmcblk0p1
# 格式化ext4分区,重新挂载/overlay
mkfs.ext4 /dev/mmcblk0p2
mount /dev/mmcblk0p2 /mnt ; tar -c /overlay -cvf - . | tar -c /mnt -xf - ; umount /mnt
mount /dev/mmcblk0p2 /overlay
# 配置挂载信息开机启动
block detect > /etc/config/fstab
sed -i s/option$'\t'enabled$'\t'\'0\'/option$'\t'enabled$'\t'\'1\'/ /etc/config/fstab
日常存储/关键备份
安装Syncthing,一款开源免费的分布式文件同步工具。可以实现手机处于内网环境时,指定文件夹文件同步(例如相册,工作文件等)
图片中的远程设备代表着手机,文件夹代表着需要同步的文件夹
软件安装
opkg install syncthing
安装完成后,Syncthing会出现无法自启动的问题,网上很多教程都是直接删除官方的init.d脚本,重新写新的启动脚本但其实问题很简单
# 只要修改/etc/init.d/syncthing官方启动脚本中的一行
vim /etc/init.d/syncthing
# 以下内容在编辑状态中操作
[ "$enabled" -gt 0 ] || return 0 #注释掉这一行即可,应该是一些向后兼容的配置导致的
# 重启应用,并开机启动
/etc/init.d/syncthing enable && /etc/init.d/syncthing restart
PC访问旁路网关8384端口,可以通过后台进行管理
设备IP:8384
内网穿透
使用DDNSTO远程控制提供的动态域名服务,实现内网穿透
软件安装
# 下载脚本,并运行。如果默认脚本出错,可以执行我修改后的命令
cd /tmp; wget --no-check-certificate http://fw.koolcenter.com/binary/ddnsto/openwrt/install_ddnsto.sh; cd ..
# 正常运行
ash /tmp/install_ddnsto.sh
# 安装出错运行
sed -i 's/$?/"1"/' /tmp/install_ddnsto.sh && ash /tmp/install_ddnsto.sh
软件使用
可以参考DDNSTO官方教程,官方写的很详细
24小时待命下载器
借助老牌的下载工具Aria2+AriaNG,加上DDNSTO内网穿透可以实现远程下载
软件安装
opkg install aria2 ariang
软件使用
网上已经有很多aria2+ariang配置教程,只要搭配DDNSTO的aria2配置教程食用即可