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

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

前言

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

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

访问光猫

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

硬件加速

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

IPv6

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

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

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

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

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

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

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

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

sh 复制代码
ip -6 addr flush dev eth0 && systemctl restart NetworkManager

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

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

sh 复制代码
ra-param=br*, mtu:1492, 15, 600
dhcp-range=::, constructor:br*, ra-names, ra-stateless, 64, 600s

IPv6 防火墙

IPv6 防火墙的设置和梅林的写法类似,可以直接参考《梅林、Padavan 和 OpenWrt 设置 IPv6 防火墙并开放指定端口》中梅林的写法,在 Port Forwarding -> Basic 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 灯状态

sh 复制代码
touch /tmp/ledstatus.txt
echo "on" > /tmp/ledstatus.txt

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

sh 复制代码
read -r LEDS <  /tmp/ledstatus.txt
if [ "$LEDS" = "off" ]
then
  # 开灯:
  led wlan on
  led 5g on
  # led aoss on
  led bridge on
  echo "on" > /tmp/ledstatus.txt

else
  # 关灯:
  # 无线
  led wlan off
  led 5g off
  led aoss off
  # 电源
  led diag off
  # WPS
  led dmz off
  # 网络
  led bridge off
  echo "off" > /tmp/ledstatus.txt
fi

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

相关推荐
funnycoffee1238 小时前
华为USG防火墙端口有收光,无法UP故障
服务器·网络·华为
泰和英杰8 小时前
2026 华为数字能源 + 机房工程实操标准:故障排查、机房建设、设备选型标准化技术方案
运维·服务器·网络
mounter6258 小时前
探索未来 AI 算力网络的基石:从传统 RoCE 走向 SRv6 驱动的弹性弹性网络(解析 Netdev 0x1A 创新实践)
linux·网络·人工智能·linux kernel·kernel·rdma·rocev2
x_x-F9 小时前
深入浅出 Linux 网络核心:sk_buff 的内存与指针流转
linux·运维·网络
CHANG_THE_WORLD21 小时前
TCP 三次握手彻底解析:SYN、ACK、SEQ、确认号与状态迁移
网络·网络协议·tcp/ip
DLYSB_1 天前
基于 HTTP API 与 Modbus 协议的多源监控声光语音联动告警系统设计与实现
网络·网络协议·http·报警灯
Bobolink_1 天前
手机端和电脑端的网络环境配置有什么不同?
网络·智能手机·电脑·网络环境
星恒讯工业路由器1 天前
三大工业以太网协议选型对比
网络·物联网·ethercat·profinet·ethernet/ip·工业以太网协议
春卷同学1 天前
HarmonyOS掌上记账APP开发实践第25篇:Image 组件高级用法 — 资源引用、网络图片与首字符占位方案
网络·华为·harmonyos
mounter6251 天前
从内存隔离到运行时防线:透视 Linux 内核安全强化的博弈与演进
linux·网络·安全·linux kernel·kernel