【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/等等(临时数据)
相关推荐
ICscholar18 小时前
ExaDigiT/RAPS
linux·服务器·ubuntu·系统架构·运维开发
sim202018 小时前
systemctl isolate graphical.target命令不能随便敲
linux·mysql
米高梅狮子19 小时前
4. Linux 进程调度管理
linux·运维·服务器
再创世纪20 小时前
让USB打印机变网络打印机,秀才USB打印服务器
linux·运维·网络
fengyehongWorld21 小时前
Linux ssh端口转发
linux·ssh
知识分享小能手1 天前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04中的Shell编程详细知识点(含案例代码)(17)
linux·学习·ubuntu
Xの哲學1 天前
深入解析 Linux systemd: 现代初始化系统的设计与实现
linux·服务器·网络·算法·边缘计算
龙月1 天前
journalctl命令以及参数详解
linux·运维
EndingCoder1 天前
TypeScript 的基本类型:数字、字符串和布尔
linux·ubuntu·typescript
以太浮标1 天前
华为eNSP模拟器综合实验之-DHCP服务中继配置案例
网络·华为·智能路由器·信息与通信