OpenWRT浅尝 / 基于RAVPower-WD009便携路由文件宝的旁路网关配置

目录

  • 前言
  • 需求分析
  • 手头的设备
  • 家庭网络拓扑图
  • 旁路网关配置
    • 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配置教程食用即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/135649.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

堆的应用-----Top k 问题

目录 前言 Topk问题 1.问题描述 2.解决方法 3.代码实现(C/C) 前言 在人工智能算法岗位的面试中,TopK是问得最多的几个问题之一: 到底有几种方法? 这些方案里蕴含的优化思路究竟是怎么样的? 为啥T…

ARM Linux 基础学习 / 系统相关,文件系统,文件属性

编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料(如 百问网的《嵌入式Linux应用开发完全手册》,在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO:开发板资料》或《2.2 全系列Linux教程&#xf…

高性能收发原始数据包的框架(Netmap)

一、Netmap 简介 Netmap 是一个高性能收发原始数据包的框架,由 Luigi Rizzo 等人开发完成,其包含了内核模块以及用户态库函数。其目标是,不修改现有操作系统软件以及不需要特殊硬件支持,实现用户态和网卡之间数据包的高性能传递。…

链表的逆置

方法1: 依次将指针反向,最后令头指针指向尾元素。 逆置过程如下: 当q指针为空时,循环结束。 //试写一算法,对单链表实现就地逆置, void Reverse1(List plist)//太复杂,不用掌握 {assert(plist ! NULL);i…

大二第四周总结——用原生js封装一个分页器

用原生js封装一个分页器 起因:这次项目还是用原生的js来写的,我负责的是后台,分页是后台最常见的一个功能了,于是干脆封装一下,废话少说,直接上代码 这里是基本的样式 .pagination {display: flex;width: 600px;hei…

git的分支及标签使用结合全网最详细的情景演示

目录 一git的分支 ⭐⭐ 补充一个拓展知识: 1.1 git分支 1.2 git分支的增删查命令 1.3 情景演示 二.git标签 2.1 分支与标签的关系 2.2 git标签的基本命令 2.3 情景演示 一git的分支 ⭐⭐ 补充一个拓展知识: 软件开发中常见的四个环境&…

jdk21 虚拟线程原理及使用分享

虚拟线程概述 jdk21已于北京时间9月19日21点正式发布, 其中引人注目的就是虚拟线程(Virtual Thread)随之正式发布, 不再是此前jdk19、jdk20中的预览版本。 平台线程:java传统的线程是对系统线程的包装,为了区别于虚拟线程,因此将通过传统方式…

【Git】工作中的留痕:分支及标签的超神搭配

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Git的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Git分支是什么 二.Git分支的使用 1.分…

HTTPS协议

目录 HTTPS概念加密是什么常见加密方式对称加密非对称加密数据摘要&&数据指纹数据签名 HTTP工作过程探究方案一:只使用对称加密方案二:只使用非对称加密方案三:双方都使用非对称加密方案四:非对称加密对称加密中间人攻击 …

常见面试题-JDK和CGLIB动态代理

JDK 动态代理和 CGLIB 动态代理对比 JDK 动态代理只能代理实现了接口的类,而 CGLIB 可以代理未实现任何接口的类。另外CGLIB 动态代理是通过生成一个被代理类的子类来拦截被代理类的方法调用,因此不能代理声明为final 类型的类和方法就二者的效率来说&a…

Unbuntu安装、测试和卸载gcc11

GCC 可用于编译 C、C,本文介绍如何 Ubuntu 上安装 gcc11、测试和卸载它。 1. 在Ubuntu 上安装 gcc11 添加工具链存储库 sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test在 Ubuntu 上安装 gcc11 sudo apt install -y gcc-11验证 gcc11 版本 gcc-11 --v…

AI:80-基于深度学习的医学图像分割与病变识别

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…

数据架构与数据模型

数据架构: 待定 数据模型: 数据模型是对现实世界数据特征的抽象,用于描述一组数据的概念和定义。数据模型从抽象层次上描述了数据的静态特征、动态行为和约束条件。数据模型所描述的内容有三部分,分别是数据结构、数据操作和数…

数据结构与算法 | 第四章:字符串

本文参考网课为 数据结构与算法 1 第四章字符串,主讲人 张铭 、王腾蛟 、赵海燕 、宋国杰 、邹磊 、黄群。 本文使用IDE为 Clion,开发环境 C14。 更新:2023 / 11 / 12 数据结构与算法 | 第四章:字符串 字符串概念字符串字符字符…

rocksdb中测试工具Benchmark.sh用法(基准、性能测试)

1.首先要安装db_bench工具,这个工具在成功安装rocksdb之后就自动存在了,主要是在使用make命令之后就成功安装了,详情请见我之前的文章 2.确保成功安装db_bench之后,找到安装的rocksdb目录下面的tools文件夹,查看里面是…

如何让VirtualBox系统使用Ubuntu主机的USB

如何让VirtualBox系统使用Ubuntu主机的USB 当通过 VirtualBox 尝试不同的操作系统时,访问虚拟机中的 USB 驱动器来传输数据非常有用。 安装Guest Additions 自行百度安装Guest Additions的方法,最终的效果如下: 将用户添加到 vboxusers 组…

前端面试题 计算机网络

文章目录 ios 7层协议tcp协议和udp协议的区别tcp协议如何确保数据的可靠http和tcp的关系url输入地址到呈现网页有哪些步骤post和get本质区别,什么时候会触发二次预检GET请求:POST请求:触发二次预检(CORS中的预检请求)&…

通过结构间比值比较迭代次数

( A, B )---3-30-2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,A有5个点,B全是0,排列组合。让A,B训练集分别有3,4,5,6张图片,统计迭代次数并排序。 先比较图片数量是3和4的情况 n4 迭代次数…

移植LVGL到单片机的一个demo简单介绍

简介 背景: 本文使用的是主控IC为stm32f103zet6, 显示IC为ST7735s,它是128*160的像素,色深为RGB565颜色。 官方虽然说LVGL移植平台只需 64kB 闪存和 8kB RAM 就足以满足简单的用户界面。但我移植到stm32f103c8t6,不管怎么修改配…