登录
  • 人们都希望被别人需要 却往往事与愿违
  • 在进度落后的项目中增加人手只会导致进度更加落后@Fred Brooks (图灵奖得主 《人月神话》作者)

NETGEAR R7000升级NG386踩坑笔记

IT那些事 Benny小土豆 277次浏览 3807字 0个评论
文章目录[显示]

一直以来,我的NETGEAR R700使用的是Legacy的380固件,反正也能用,不差什么。但是一直都有一个很严重的问题,就是会panic然后自己重启。最频繁的情况下可能每开机几分钟就重启一次。

经过我的测试,发现这种情况会在大流量BT时比较频繁出现,Xbox下载游戏就从来不会。如果此时我在路由器上抓包,那么出现的概率似乎就更高了。

今天实在忍不了了,就想着升级一波吧。主要参考了这篇教程:

https://koolshare.cn/thread-193031-1-1.html

反正没少踩坑。

NETGEAR R7000升级NG386踩坑笔记

改cfe的mac地址

我有点没咋看明白他的意思,但是我猜测了一下,应该是去找原来路由器的eth0和eth1的mac地址,最后+4应该是把mac地址最后一位运算一下,比如最后一位是F3,那么就写F7.好歹我也曾是Enginerring - Network,这点问题还能难得倒我?

至少我是这么搞的……然后刷进去了。

在CFEEDIT里可以看到有这样的IP,记住啦

lan_ipaddr=192.168.1.1
lan_netmask=255.255.255.0

无法进入miniWeb Server

连网线,改IP。这个IP其实就应该是上面CFE的那个IP

手动设定IP为192.168.1.11,ping 192.168.1.1,然后我ping通了,但是网页打不开。都快把人家屁股捅漏了,也打不开。各种尝试都不行。我都上nmap扫端口了。😠

后来实在没办法,Boot Camp启动到Windows,竟然打开了!我也不知道这是因为啥……有毒吧。🤬

miniWeb Server比较慢,上传固件也很慢,慢慢等就好了

Wi-Fi重启自动关闭

新的固件成功启动了,但是发现没Wi-Fi……在网上搜到可以在无线网络-专业设置里启用。但是每次重启之后又自动关闭了,我也不能每次都这么插网线搞啊。万一我不在家它自己重启了叫我怎么插网线啊🤬

后来找到个帖子: https://koolshare.cn/thread-109794-1-1.html

算是解决了吧。似乎sleep没那么必要……,反正就放着吧也不差20秒,不想测试了。

[email protected]:/tmp/home/root# cat /jffs/scripts/init-start
#!/bin/sh
sleep 20
nvram set wl0_radio=1
nvram set wl1_radio=1
nvram commit

service restart_wireless

梯子始终是❌

用的是这个项目 https://github.com/hq450/fancyss

下载地址在这里

https://github.com/hq450/fancyss_history_package/tree/master/fancyss_arm384

离线安装前先把koolshare傻逼非法关键词的功能干了。

但是配置完依旧是❌。后来发现它是用的httping做检测,那会不会是httping有问题?

[email protected]:/tmp/home/root# ./httping
./httping: can't load library 'libssl.so.1.0.0'

果然🤔🤬🤦‍♀️

这里下载替换一个就好了

cd /koolshare/bin
wget http://firmware.koolshare.cn/binary/httping/armv7/httping
chmod +x httping

但是我好像harpoxy下还是各种❌,先跑单个节点算了吧。又不是不能用

htop问题

在刚刚那看到了htop,就想顺便也用上算了。

Error opening terminal: xterm-256color

🤨

查了一下,似乎export一下就可以了

export TERM=xterm-256color

那我也不能每次运行时都export啊,这玩意它也没有zsh更没有oh-my-zsh,这让我这个记忆退化的老年痴呆怎么办。找环境变量文件呗,/etc/profile, /etc/environment, /tmp/etc….

真棒/etc/profile无权限写,因为这个文件系统是RO的。

后来发现是这个文件……/jffs/configs/profile.add

指示灯太闪

我一直不太喜欢指示灯,费我电不说,还闪瞎我狗眼。在设置里可以关掉。但是重启了之后又回来了……懒得研究太多了,反正这几行能管用

#!/bin/sh
nvram set led_disable=1
nvram commit
service restart_leds

不过灯还是好多,之前是只有电源灯在亮,现在只是关掉了LAN 1234.啊算了就这样吧。哪天心情不好了拿黑胶带给它贴上。

加到启动项/jffs/scripts/services-start 好像不太好用,估计是时机不对。不管了手动执行算了吧。

自定义启动项

我的路由器上跑了一个自定义的网络相关的小程序,用Go写的,交叉编译成了armv7l的二进制,这次没想到加到/jffs/scripts/services-start里管用了。看来以后不用手动检查了。

nohup /jffs/xxx&

管它优雅不优雅的,能跑就行。用奶子走路又怎么了啊!

NETGEAR R7000升级NG386踩坑笔记

IP与mac地址绑定

我的那个程序是写死了IP地址的,刷了固件之后原来的绑定全丢了。懒得再重新编译,直接重新绑定然后重启下设备就好了。

这个很好办了,WebUI上点点就好了。顺便把搜索域改成lan,我的那个程序也是写死了搜索域。别黑我了,今天就流行写死。

NETGEAR R7000升级NG386踩坑笔记

日志系统

为了更好的弄明白为什么它会自动重启,我觉得我需要把log保存起来。庆幸的是在固件的设置中可以找到远程记录服务器。那么我们只要配置一个syslog server就可以了。

NETGEAR R7000升级NG386踩坑笔记

这方面的选择其实挺多的,VMware vRealize Log Insights,logstash+kibana+elastic search,loki,甚至SolarisWinds也有一个kiwi log server,这些都支持syslog。但是他们的缺点就是配置起来太麻烦!我的需求太简单了,能把syslog收下来存起来方便以后看,更好的话提供一个web界面省的我每次ssh打命令那就更好了。

简单的说,大部分发行版都有rsyslog这个东西,简单配置一下就可以拿来收日志了,可以参考这篇 https://leeyr.com/330.html

有能力的也可以手写,比如go-syslog这个库,很简单,注意logformat是RFC3164

package main

import (
   "fmt"
   "gopkg.in/mcuadros/go-syslog.v2"
)
func main() {
   channel := make(syslog.LogPartsChannel)
   handler := syslog.NewChannelHandler(channel)

   server := syslog.NewServer()
   server.SetFormat(syslog.RFC3164)
   server.SetHandler(handler)
   server.ListenUDP("0.0.0.0:514")
   server.Boot()

   go func(channel syslog.LogPartsChannel) {
      for logParts := range channel {
         fmt.Println(logParts)
      }
   }(channel)

   server.Wait()
}

用起来是这样滴

NETGEAR R7000升级NG386踩坑笔记

后来在GitHub上找到一个简单的工具raftman,自带了一个简单的UI,用SQLite存数据。

由于我们要用RFC3164的格式,因此稍微改下它的Dockerfile

ENTRYPOINT ["/usr/local/bin/raftman", "-frontend", "syslog+udp://:514?format=RFC3164", "-frontend", "ui+http://:8282/"]

然后build

docker build -t raftman .

然后再起飞

docker run -d --restart=always --name raftman \
-v /tmp:/var/lib/raftman \
-p 514:514/udp \
-p 5514:5514 \
-p 8181:8181 \
-p 8282:8282 \
raftman

好的没问题。打开http://ip:8282就有了。

我知道我穿越了8个小时,我也不知道为啥,懒得去看代码啦。能用就行!

NETGEAR R7000升级NG386踩坑笔记

啊知道怎么fix这个啦,暴力点 frontend/static/ui/index.js

var tsFormatter = function (s) {
d = new Date(s);
d.setHours(d.getHours() - 8);
return tsFormat(d);
};

总结

差不多就踩了这么多坑,主要还是进miniweb浪费了太多时间,也不知道用Windows好了是不是偶然。

似乎可以直接升级AC68U的固件?我懒得折腾了。😠💢

感觉这个koolshare改的可能还会有各种bug,再不行我就换回原版……感觉还是padavan省心啊,但是MT7620似乎性能总是差了那么点。

好心累!本应该看洛基的,我却折腾了一下午这玩意……

本来人家心情就不好,还踩了这么多坑……怎么不坑底躺平得了呢。😫😖

本文由暴躁Benny狂暴且抑郁地创作


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/r7000-ng386.html
喜欢 (4)
分享:-)
Benny小土豆
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论(代码和日志请使用Pastebin或Gist)
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)