FreshTomato 路由器固件常见配置以及踩坑记录

本文首发于只抄博客,欢迎点击原文链接了解更多内容。

前言

在上一篇文章《网件 R6400 梅林固件恢复官方固件后刷入 FreshTomato》中,我将网件 R6400 刷入了 FreshTomato 固件,目前已经使用了大半个月了,稳定性比起 380.70_0-X7.9.1 版本的梅林固件要好很多,没有再出现过掉线断网了,基础功能上也比官方固件要丰富。

不过关于 FreshTomato 固件的配置,还是有一些坑的,在配置完成之后,功能上可以比肩梅林,稳定性上比肩官方固件。下面先来复习一下上一次已经提过的访问光猫和跑不满带宽的问题。

访问光猫

PPPoE 拨号勾选 Use DHCP,同时不要关闭光猫的 DHCP,这样可以直接访问光猫的后台,需要配置光猫的时候比较方便。

PPPoE

硬件加速

由于 FreshTomato 有 QoS 和限速功能并且默认开启,而这两个功能和硬件加速会冲突,导致千兆路由器只能跑 300M 出头,如果你是 500M 及以上的宽带,建议将 QoS 和 限速功能关闭,这样才能跑满带宽。

硬件加速

IPv6

FreshTomato 关于 IPv6 的设置比较分散,首先要在 Basic -> IPv6 中选择对应的 IPv6 Service Type,一般路由器拨号的选择 DHCPv6 with Prefix Delegation

IPv6

然后点击页面下方的 Notes 中的 DHCP/DNS 超链接跳转到 Advanced -> DHCP/DNS/TFTP,由于安卓不支持有状态 IPv6,个人习惯是只勾选 SLAAC,同时勾选 Fast RA mode,当 IPv6 前缀变动时,可以及时的获取到新的公网 IPv6 地址

SLAAC 和 Fast RA mode

但是关于 IPv6 前缀变动,FreshTomato 貌似有个小 bug ?

正常情况下在首页通过 Disconnect 和 Connect 重新拨号,造成 IPv6 前缀变动后,会自动清理旧的前缀,局域网设备能够正确获取到新的公网 IPv6,并且旧的 IPv6 地址也被设置成 0s 了,到此为止一切正常。

如果直接在 Basic -> Network 中修改配置并保存等意外情况下导致 IPv6 前缀变动后,FreshTomato 并不会清理旧的前缀,局域网的设备会同时拥有旧的 IPv6 地址和新的 IPv6 地址,而此时旧地址已经无法使用会造成 IPv6 断网。

通过 SSH 连接到路由器,查看 /etc/dnsmasq.conf 文件可以看到默认租期是 172800s,也就是说只有当 2 天后旧的 IPv6 地址过期,才能够正常使用 IPv6 上网。

ra-param=br*, mtu:1492, 15, 600
dhcp-range=::, constructor:br*, ra-names, ra-stateless, 64, 172800s

局域网内的 Linux 设备可以通过以下命令强制清除所有 IPv6 地址并重新获取新的地址来恢复 IPv6

ip -6 addr flush dev eth0 && systemctl restart NetworkManager

有没有什么更好的解决方法呢?在刚才的设置页面继续往下翻,可以看到 Custom configuration,我们可以通过这里的设置覆盖掉 FreshTomato 默认的设置。租期最低可以填 120s,我这里参考原来梅林的习惯填写的 600s。这样即便发生意外导致旧地址没被清理,最长 10 分钟就可以恢复。不知道有没有更完美的解决方案,欢迎评论区分享一下。

直接修改 /etc/dnsmasq.conf 文件是不生效的

ra-param=br*, mtu:1492, 15, 600
dhcp-range=::, constructor:br*, ra-names, ra-stateless, 64, 600s

Dnsmasq

IPv6 防火墙

IPv6 防火墙的设置和梅林的写法类似,可以直接参考《梅林、Padavan 和 OpenWrt 设置 IPv6 防火墙并开放指定端口》中梅林的写法,在 Port Forwarding -> Basic IPv6 中放行需要的目标地址及端口

IPv6 防火墙

LED 灯

用过梅林的应该都知道,网件 R 系列几款路由器刷完梅林后长按 WPS 键,可以把所有的 LED 指示灯关闭,而 FreshTomato 默认是没有这功能的,并且在后台界面中也不能设置关闭所有 LED 指示灯。

但在设置界面的 Notes 中得知,LED 灯可以直接通过命令进行控制,而 FreshTomato 又提供了长按 WPS 键执行自定义脚本的功能,我们可以通过自定义脚本的形式来控制 LED 灯的开关。

Other hints - LED function and blink support is router dependent. Check command led [LED_NAME/help] [on/off] for advanced LED control, see Web Shell.

首先在 Administration -> Scripts 的 Init 中填写以下命令,通过 ledstatus.txt 文件来记录下当前 LED 灯状态

touch /tmp/ledstatus.txt
echo "on" > /tmp/ledstatus.txt

Init Scripts

然后来到 Administration -> Buttons/LED 中,将下面的命令填写到 Custom Script 中,并且在上面选择 Run Custom Script

read -r LEDS <  /tmp/ledstatus.txt
if [ "$LEDS" = "off" ]
then# 开灯:led wlan onled 5g on# led aoss onled bridge onecho "on" > /tmp/ledstatus.txtelse# 关灯:# 无线led wlan offled 5g offled aoss off# 电源led diag off# WPSled dmz off# 网络led bridge offecho "off" > /tmp/ledstatus.txt
fi

Buttons/LED

这样设置之后,默认开机 LED 灯会正常亮起,长按 WPS 键后会关闭 LED 灯,再次长按则又亮起,具体需要开关哪些灯可以根据注释修改。如果你需要定时开关 LED 灯,也可以将上面的命令修改之后,填到 Scheduler 中定时执行。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式驱动开发详解8(阻塞/非阻塞/异步通信)

文章目录 前言阻塞非阻塞异步通知后续 前言 首先来回顾一下“中断”&#xff0c;中断是处理器提供的一种异步机制&#xff0c;我们配置好中断以后就 可以让处理器去处理其他的事情了&#xff0c;当中断发生以后会触发我们事先设置好的中断服务函数&#xff0c; 在中断服务函数…

Jmeter进阶篇(31)解决java.net.BindException: Address already in use: connect报错

📚前言 近期雪雪妹妹在使用Jmeter执行压测的时候,发现了一个非常让她头疼的问题,她使用20并发跑,正确率可以达到100%,但是一旦使用200并发,就会出现大量的报错,报错内容如下: java.net.BindException: Address already in use: connectat java.net.DualStackPlainSo…

leveldb的DBSequence从哪里来,到哪里去?

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) leveldb数据库的DBSequence从哪里来&#xff0c;到哪里去&#xff1f; 大概的情形是&#xff0c;leveldb的记录初始DBSequence为0&#xff0c;随着记录的增加&#xff0c;记录sequence不断随着增加&#xff0c;并持久化…

每日一学——日志管理工具(ELK Stack)

5.1 ELK Stack 5.1.1 Elasticsearch索引机制 嘿&#xff0c;小伙伴们&#xff01;今天我们要聊聊ELK Stack——一套由Elasticsearch、Logstash和Kibana组成的强大日志管理工具集。通过这套工具&#xff0c;我们可以轻松地收集、存储、搜索和可视化日志数据。首先&#xff0c;…

PyTorch 自动混合精度AMP Grad Scaler 源码解析:_unscale_grads_ 与 unscale_ 函数

PyTorch AMP Grad Scaler 源码解析&#xff1a;_unscale_grads_ 与 unscale_ 函数 引言 本文详细解析 PyTorch 自动混合精度&#xff08;AMP&#xff09;模块中 grad_scaler.py 文件的两个关键函数&#xff1a;_unscale_grads_ 和 unscale_。这些函数在梯度缩放与反缩放过程中…

docker内外如何实现ROS通信

写在前面 在一台电脑上装有docker&#xff0c;docker内外均装有ROS系统&#xff0c;现在想要实现docker内外的ROS通信&#xff0c;怎么办呢&#xff1f; 首先&#xff0c;因为是同一台电脑的docker内外&#xff0c;所以IP本身是互通的&#xff0c;不需要在/etc/hosts中添加IP…

双指针与滑动窗口

双指针 相向双指针 两数之和 题意是找到不同两个数使得它们相加和为target&#xff0c;数组有序 利用数组有序的性质&#xff0c;判断指针前后的区间的性质 例如&#xff1a;2 3 4 6 8, target 9 2 8 10 > 9, 因为非递减序列&#xff0c;2之后的每个数都会大等于2&…

unity开发之shader 管道介质流动特效

效果 shader graph 如果出现下面的效果&#xff0c;那是因为你模型的问题&#xff0c;建模做贴图的时候没有设置好UV映射&#xff0c;只需重新设置下映射即可

python +tkinter绘制彩虹和云朵

python tkinter绘制彩虹和云朵 彩虹&#xff0c;简称虹&#xff0c;是气象中的一种光学现象&#xff0c;当太阳光照射到半空中的水滴&#xff0c;光线被折射及反射&#xff0c;在天空上形成拱形的七彩光谱&#xff0c;由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫七种颜色。事实…

【华为OD-E卷 - 最优资源分配 100分(python、java、c++、js、c)】

【华为OD-E卷 - 最优资源分配 100分&#xff08;python、java、c、js、c&#xff09;】 题目 某块业务芯片最小容量单位为1.25G&#xff0c;总容量为M*1.25G&#xff0c;对该芯片资源编号为1&#xff0c;2&#xff0c;…&#xff0c;M。该芯片支持3种不同的配置&#xff0c;分…

stable diffusion安装mov2mov

第一步&#xff1a; 下载mov2mov&#xff0c;地址&#xff1a;https://gitcode.com/gh_mirrors/sd/sd-webui-mov2mov 下载包到web-ui的sd-webui-aki-v4.10\extensions文件夹面解压 第二步&#xff1a;在文件夹中调出cmd窗口&#xff0c;执行下列命令&#xff0c; git restore…

SpringSpringBoot常用注解总结

目录 1. SpringBootApplication 2. Spring Bean 相关 2.1. Autowired 2.2. Component,Repository,Service, Controller 2.3. RestController 2.4. Scope 2.5. Configuration 3. 处理常见的 HTTP 请求类型 3.1. GET 请求 3.2. POST 请求 3.3. PUT 请求 3.4. DELETE 请…

STM32 软件I2C读写

单片机学习&#xff01; 目录 前言 一、软件I2C读写代码框架 二、I2C初始化 三、六个时序基本单元 3.1 引脚操作的封装和改名 3.2 起始条件执行逻辑 3.3 终止条件执行逻辑 3.4 发送一个字节 3.5 接收一个字节 3.5 发送应答&接收应答 3.5.1 发送应答 3.5.2 接…

mysql error:1071 -Specified key was too long; max key length is 767 bytes

错误原因 数据库表采用utf8编码时&#xff0c;当对varchar(255)的列设置唯一键索引时发生该错误。 mysql默认单列的索引不能超过767位(不同版本可能存在差异) 解决方法 &#xff08;1&#xff09; 使用innodb引擎&#xff1b; &#xff08;2&#xff09; 启用innodb_large_p…

七种改进爬山算法的方法

一、爬山算法 爬山算法(Hill Climbing Algorithm)是一种启发式的基于局部最优解的搜索算法,用于在给定的搜索空间中寻找全局最优解或足够好的解。它属于局部搜索算法,通常用于解决优化问题,包括连续和离散问题。 爬山算法模拟了爬山的过程,从某个随机起始点开始,不断向更…

MYSQL--------MYSQL中的运算符

以下是 MySQL 中各种运算符的介绍及代码示例&#xff1a; 算术运算符 算术运算符用于执行基本的数学运算&#xff0c;包括加、减、乘、除、取模&#xff08;取余&#xff09;。 -- 创建一个名为 operator_demo 的表 CREATE TABLE operator_demo (a INT,b INT );-- 插入示例数…

PyTorch AMP 混合精度中grad_scaler.py的scale函数解析

PyTorch AMP 混合精度中的 scale 函数解析 混合精度训练&#xff08;AMP, Automatic Mixed Precision&#xff09;是深度学习中常用的技术&#xff0c;用于提升训练效率并减少显存占用。在 PyTorch 的 AMP 模块中&#xff0c;GradScaler 类负责动态调整和管理损失缩放因子&…

MySQL图形化界面工具--DataGrip

之前介绍了在命令行进行操作&#xff0c;但是不够直观&#xff0c;本次介绍图形化界面工具–DataGrip。 安装DataGrip 官网链接&#xff1a;官网下载链接 常规的软件安装流程。 参考链接&#xff1a;DataGrip安装 使用DataGrip 添加数据源&#xff1a; 第一次使用最下面会…

el-table树形懒加载展开改为点击行展开

思路&#xff1a;获取el-table中小箭头&#xff0c;然后调它的click事件&#xff01; <el-tablerow-click"getOpenDetail":row-class-name"tableRowClassName">// 点击当前行展开节点getOpenDetail(row, column, event) {// 如果是叶子节点或点击的是…

【虚拟机】VMware 16图文安装和配置 AlmaLinux OS 9.5 教程

准备工作 下载AlmaLinux ISO文件&#xff1a;从AlmaLinux官方网站&#xff08;https://almalinux.org/&#xff09;下载最新版本的ISO文件。 安装VMware Workstation&#xff1a;确保您的计算机上已安装VMware Workstation。&#xff08;注&#xff1a;我这边使用的是VMware16…