【IoT】路由器/linux系统,如何使用shell查看系统硬件配置,传感器CPU温度,资源占用率等信息(以红米AX6000为例)

【IoT】路由器/linux系统,如何使用shell查看硬件配置,传感器CPU温度,系统资源占用率等信息(以红米AX6000为例)

文章目录

1、路由器拆机与测评(Redmi AX6000)

这台路由器被大家诟病最多就是没有配备 2.5G 网口,只拥有四个千兆网口,无法体验超千兆的网络带宽。TP-Link旗下相同的解决方案均已配备多个 2.5G 的网口。

红米AX6000搭载的是 MTK 在 2021 年发布的 Filogic 830 平台,具体型号是mt7986a,四核 ARM,A53 的架构,主频 2.0GHz ,制程 12nm,内存 512M,闪存 128M,对于路由器来说,这个配置已经非常耐打了。

参考:1, 23, 4, 5

电源信息

  • 电源输出规格是12V/2A,DC插头尺寸是4.0/1.7mm,小米红米路由器都是这个尺寸。
  • 连接宽带后实测待机功率是7.4W,比XDR6020的高出1.8W左右,CPU频率高了,所以待机功率也高些,而且还有8颗独立的FEM芯片,只是高出的功率也不多,这FEM功率高极都有限。

配置信息

  • 红米AX6000的CPU型号是MT7986A,A53架构,四核2.0GHz,重点是12nm制程,使得发热量不大。
  • 7986B是四核1.6GHz,且集成了DDR3内存;
  • 7986A是四核2GHz,没有集成内存,可以外接DDR3或DDR4内存,比如红米AX6000就用了DDR4的内存,型号是K4A4G165WF-BCWE,容量512MB,频率是3200MHz。
  • 7986A和7986B都集成了两个2.5G MAC,也集成了2.4G和5G的MAC和无线基带,双频均支持4x4MIMO,2.4G最高速率1147Mbps,5G最高速率4804Mbps。2.4G最高支持8个OFDMA用户,而5G最高支持16个OFDMA用户,无线带机量是256台,跟QCN9024差不多(除了不支持4K-QAM)。
  • 红米AX6000用的千兆交换芯片型号是MT7531A,它与MT7531B的区别是多了一个HSGMII。这货加两颗2.5G PHY芯片就能做出两个2.5G网口来。如果做出2.5G网口来,红米AX5400电竞版和小米AX6000卖鬼去

2、通过telnet获得SSH

Telnet与SSH介绍

  • Telnet 是用于虚拟终端服务的标准TCP/IP 协议。它使您能够以一种显示为本地系统的方式建立与远程系统的连接。
  • SSH 是一种广泛用于远程访问和管理设备的网络协议。SSH 的完整形式是Secure Shell 是通过Internet 访问网络设备和服务器的主要协议。
  • 参考:1 , 23

Telnet与SSH区别

  • Telnet 容易受到安全攻击,而SSH 可以帮助您克服 Telnet 的许多安全问题。Linux KVM有什么优势
  • Telnet 使用专为局域网设计的端口23,而 SSH 默认在端口22 上运行。
  • Telnet 以纯文本形式传输数据,而SSH 数据通过安全通道以加密格式发送。
  • Telnet 适用于专用网络。另一方面,SSH 适用于公共网络。
  • Telnet 文件传输较麻烦, SSH一般可以配SFTP,SCP等操作。

什么情况下用telnet不用ssh

  • 在某些特定情况下,Telnet可能仍然被使用。例如,在一些测试或无密的场合,由于Telnet的简单性和普及性,它可能被用来检查远程服务是否正常启动,如HTTP服务或SSH服务。
  • 此外,Telnet可以通过终端对本地和远程的网络设备进行集中管理,这在需要对网络设备进行远程配置和管理的场景下可能仍然有用。

路由器开启设备调试模式,连接telnet

  • 引用, 参考:1, 2
  • Windows系统推荐安装 Putty 和 WinSCP;Mac系统直接使用终端。
  • 确认固件版本:登陆小米路由器的后台。依次点击常用设置-系统状态,检查路由器的系统版本是否为1.0.67版
  • 如果低于,就上上传该版本进行升级,如果高于,就按照官方的小米路由器修复工具完成降级。
  • 登录小米路由器后台,在浏览器的地址栏中获取token秘钥 并记录。
sh 复制代码
# 开启设备 telnet 端口
# 将{token}值复制到浏览器地址栏中并请求访问,如果浏览器反馈显示{"code":0}内容,则表示操作成功。
http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3B%20zz%3D%24%28dd%20if%3D%2Fdev%2Fzero%20bs%3D1%20count%3D2%202%3E%2Fdev%2Fnull%29%20%3B%20printf%20%27%A5%5A%25c%25c%27%20%24zz%20%24zz%20%7C%20mtd%20write%20-%20crash%20%3B%20

# 通过浏览器请求重启(重启完后需要重新获取token)
http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

# 设置Bdata永久开启telnet
# 如果浏览器反馈显示{"code":0},则表示操作成功。
http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3B%20bdata%20set%20telnet_en%3D1%20%3B%20bdata%20set%20ssh_en%3D1%20%3B%20bdata%20set%20uart_en%3D1%20%3B%20bdata%20commit%20%3B%20

# 再重启一次
http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

永久固化ssh

  • 创建 Telnet 会话,链接设备。
    在主机地址中输入路由器的管理地址并点击链接即可。无用户名和密码
  • 这将会把设备的 SSH 密码设置为admin,用户名设置为root,并永久开启 SSH端口。同时,还会将您的设备从开发模式切换成常规模式。待设备重启完成后,你就可以使用该用户名密码连接设备的 SSH 了。
  • 如果执行过程中提示密码太简单不符合要求,可以自己重新设一个
sh 复制代码
# Telnet 登录设备并执行命令
echo -e 'admin\nadmin' | passwd root
nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
mkdir /data/auto_ssh
cd /data/auto_ssh
curl -O https://fastly.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
chmod +x auto_ssh.sh
uci set firewall.auto_ssh=include
uci set firewall.auto_ssh.type='script'
uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
uci set firewall.auto_ssh.enabled='1'
uci commit firewall
uci set system.@system[0].timezone='CST-8'
uci set system.@system[0].webtimezone='CST-8'
uci set system.@system[0].timezoneindex='2.84'
uci commit
mtd erase crash
reboot

ssh登录后的操作就是

sh 复制代码
scp /Users/xxx/Downloads/xxx.yaml root@192.168.31.1:/tmp
shell小猫咪 + dashboard+yard,,或者不介意负载高的话直接open小猫咪
shell版的话,只需要预留1MB的磁盘空间

cat /sys/class/thermal/thermal_zone0/temp | awk '{print ($1/1000) " Celsius"}'

遇到重启后重连ssh报错的情况

解决方案:1, 2, 3

sh 复制代码
# 报错
(base) xxx ~ % ssh root@192.168.31.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:uUaifSueUEux9sPuMv7enlaUgzei50j1/nOUohhGq2s.
Please contact your system administrator.
Add correct host key in /Users/xxx/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/xxx/.ssh/known_hosts:1
Host key for 192.168.31.1 has changed and you have requested strict checking.
Host key verification failed.


# 解决:
ssh-keygen -R 192.168.31.1

3、linux系统信息上报显示(系统资源、传感器、硬件信息),附小主机开坑

参考资料:1, 2, 34, 5

1、查看硬件传感器信息

lm_sensors简介:

  • lm_sensors是一款linux的硬件监控的软件,可以帮助我们来监控主板,CPU的工作电压,风扇转速、温度等数据。这些数据我们通常在主板的 BIOS也可以看到。
  • 实际上sensors命令只是读取了/sys/class/hwmon/目录下关于CPU等传感器温度参数并直观的展示给我们,我们不安装lm_sensors模块下也可以查看CPU温度。
sh 复制代码
yum install -y lm_sensors
sensors -v
sensors-detect
sensors

CPU温度
cat /sys/class/thermal/thermal_zone*/temp
cat /sys/class/thermal/thermal_zone0/temp | awk '{print ($1/1000) " Celsius"}'

硬盘温度
sudo apt-get install smartmontools
sudo smartctl -a /dev/sda | grep Temperature
sudo smartctl -l scttempsts /dev/sda

所有cpu核心及i350网卡温度:
grep . /sys/class/hwmon/hwmon*/name
grep . /sys/class/hwmon/hwmon*/temp*input

读取硬盘SMART查看温度:
ls -1 /dev/sd? | xargs -n1 smartctl -A | grep Celsius

2、查看系统资源使用情况

sh 复制代码
系统内存使用情况
free -h
grep MemTotal /proc/meminfo # 查看内存总量 
grep MemFree /proc/meminfo # 查看空闲内存量 
cat /proc/meminfo | grep MemTotal 

查看cpu使用情况
top

查看IO的情况
iostat -dx 如果没有此命令,使用yum install sysstat安装
iotop 如果没有此命令,使用yum install iotop安装

查看磁盘情况
df -ah 查看整个系统中所有的文件系统的信息
du -ach --max-depth=1 目录 查看指定目录下各一级目录磁盘占用情况
lsblk 查看磁盘挂载情况
fdisk -l |grep Disk 看硬盘大小
df -h # 查看各分区使用情况

查看网络情况
ifconfig 查看当前网卡的配置
ping ip/地址/域名 测试网络联通情况
traceroute ip/地址/域名 追踪到指定ip地址所经过的路由
mtr ip 地址 traceroute和ping的结合体
route 查看本机的静态路由表
telnet ip 端口 测试端口联通情况
netstat -lntp  查看所有监听端口 
netstat -antp 查看所有已经建立的连接 

查看防火墙情况
systemctl status firewalld

查看Linux系统cpu信息
cat /proc/cpuinfo
cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"  CPU大小

查看内核/操作系统/CPU信息 
cat /proc/version
cat /etc/issue
uname -r 查看核心版本
uname -a 查看位数等详细信息
lsb_release -a 查看详细版本信息
head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L
hostname # 查看计算机名的linux系统信息命令
lspci -tv # 列出所有PCI设备
env # 查看环境变量资源

查看进程情况
ps -ef  查看所有进程 

硬件配置软件(++)

  • macos/ios/安卓:系统自带即可, 或者aida64, cpu-dasher, 安兔兔,中关村,GeekBench、3D Mark、AI Benchmark
  • Windows:AIDA64, 鲁大师 , Everest, CPU-Z,CrystalDiskInfo
  • Linux:HardInfo, 物理看文件, 看文件+1
  • aida64官网, AIDA64 ------一款测试软硬件系统信息的工具
    四个版本的区别:
    AIDA64 Extreme 极致版本不可用于商业用途,且功能少。
    AIDA64 Engineer 工程师版本的网络、远程、企业功能无法使用。
    AIDA64 Networt Audit 网络版本少了硬件监控功能和远程功能,多了网络功能和企业功能。
    AIDA64 Business 商业版本支持所有功能

更多,后序看情况可能会更一期关于小主机的ALL IN ONE教程 1 2

  • 1、硬件配置与选购,N100小主机,型号,品牌,功耗(6w左右,最高27得解功耗墙),准系统or带内存磁盘。 1, 2, 3, 4 5 6
  • 2、虚拟化平台esxi, 型号驱动要求,教程等,没教程刷个pve也没问题,pve开源的,兼容性好 1
  • 3、应用平台:
    一个ikuai拨号的(做ddns), 1 2 3
    一个openwrt软路由,istoreOS, 1, 2
    一个ubuntu(小雅、bitwarden),1,t8plus 2
    一个NAS(可以OpenWrt+开源云平台) 1,
    一个家庭开源媒体系统(jellyfin / plex / emby ) 1, 23
    一个Windows/steamos/等等(临时数据)
相关推荐
冷曦_sole1 分钟前
linux-21 目录管理(一)mkdir命令,创建空目录
linux·运维·服务器
最后一个bug3 分钟前
STM32MP1linux根文件系统目录作用
linux·c语言·arm开发·单片机·嵌入式硬件
卫生纸不够用21 分钟前
子Shell及Shell嵌套模式
linux·bash
柒烨带你飞31 分钟前
路由器的原理
网络·智能路由器·php
xserver233 分钟前
ensp 基于EASY IP的公司出口链路配置
网络·tcp/ip·智能路由器
world=hello34 分钟前
关于科研中使用linux服务器的集锦
linux·服务器
bkspiderx41 分钟前
Xshell 和 Xftp 更新提示问题的解决方法及分析
bash·shell·xshell·xftp·破解版本更新
soragui1 小时前
【ChatGPT】OpenAI 如何使用流模式进行回答
linux·运维·游戏
白云coy2 小时前
Redis 安装部署[主从、哨兵、集群](linux版)
linux·redis