本文主要是介绍【IoT】路由器/linux系统,如何使用shell查看系统硬件配置,传感器CPU温度,资源占用率等信息(以红米AX6000为例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【IoT】路由器/linux系统,如何使用shell查看硬件配置,传感器CPU温度,系统资源占用率等信息(以红米AX6000为例)
文章目录
- 1、路由器拆机与测评(Redmi AX6000)
- 2、通过telnet获得SSH
- 3、linux系统信息上报显示(系统资源、传感器、硬件信息),附小主机开坑
1、路由器拆机与测评(Redmi AX6000)
这台路由器被大家诟病最多就是没有配备 2.5G 网口,只拥有四个千兆网口,无法体验超千兆的网络带宽。TP-Link旗下相同的解决方案均已配备多个 2.5G 的网口。
红米AX6000搭载的是 MTK 在 2021 年发布的 Filogic 830 平台,具体型号是mt7986a,四核 ARM,A53 的架构,主频 2.0GHz ,制程 12nm,内存 512M,闪存 128M,对于路由器来说,这个配置已经非常耐打了。
参考:1, 2,3, 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 , 2, 3
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秘钥并记录。
# 开启设备 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 了。
- 如果执行过程中提示密码太简单不符合要求,可以自己重新设一个
# 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登录后的操作就是
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
# 报错
(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, 3, 4, 5
1、查看硬件传感器信息
lm_sensors简介:
- lm_sensors是一款linux的硬件监控的软件,可以帮助我们来监控主板,CPU的工作电压,风扇转速、温度等数据。这些数据我们通常在主板的 BIOS也可以看到。
- 实际上sensors命令只是读取了/sys/class/hwmon/目录下关于CPU等传感器温度参数并直观的展示给我们,我们不安装lm_sensors模块下也可以查看CPU温度。
yum install -y lm_sensors
sensors -v
sensors-detect
sensorsCPU温度
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、查看系统资源使用情况
系统内存使用情况
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, 2, 3
一个Windows/steamos/等等(临时数据)
这篇关于【IoT】路由器/linux系统,如何使用shell查看系统硬件配置,传感器CPU温度,资源占用率等信息(以红米AX6000为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!