root@wirenboard-AUSRVB3H:~# #!/bin/sh
Диагностика канала контроллер ↔ Wiren Board Cloud
Работает на bullseye и trixie, интерфейс определяется по маршруту по умолчанию.
Только читает и измеряет, ничего не меняет.
have() { command -v “$1” >/dev/null 2>&1; }
GW=$(ip route | awk ‘/^default/{print $3; exit}’)
IF=$(ip route | awk ‘/^default/{for(i=1;i<=NF;i++) if($i==“dev”){print $(i+1); exit}}’)
[ -n “$IF” ] || IF=eth0
echo “=== ВРЕМЯ ===”; date ‘+%F %T %Z (%z)’
echo; echo “=== ЛИНК $IF ===”
if have ethtool; then ethtool “$IF” 2>&1 | grep -E “*(Speed|Duplex|Auto-negotiation|Link detected):”; else echo “ethtool не установлен”; cat /sys/class/net/$IF/speed /sys/class/net/$IF/duplex /sys/class/net/$IF/carrier 2>&1; fi
echo; echo “=== СЧЁТЧИКИ $IF ===”; ip -s link show “$IF”
echo “— переходы линка с момента загрузки —”
for f in carrier carrier_changes carrier_up_count carrier_down_count; do printf "%-20s " “$f”; cat /sys/class/net/$IF/$f 2>/dev/null || echo “(нет)”; done
echo; echo “=== PING ШЛЮЗ $GW (100 пакетов) ===”; ping -c 100 -i 0.2 -q “$GW” 2>&1 | tail -4
echo; echo “=== PING 8.8.8.8 (100 пакетов) ===”; ping -c 100 -i 0.2 -q 8.8.8.8 2>&1 | tail -4
echo; echo “=== DNS ===”; cat /etc/resolv.conf | grep -v ‘^#’; getent hosts agent.wirenboard.cloud tunnels.wirenboard.cloud timescale.wirenboard.cloud 2>&1 || echo “имя не разрешается”
echo; echo “=== ТАЙМИНГИ HTTPS ДО ОБЛАКА (3 прогона) ===”
for i in 1 2 3; do
curl -o /dev/null -sS --max-time 30
-w “прогон$i: dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} first_byte=%{time_starttransfer} total=%{time_total} code=%{response_code}\n”
https://wirenboard.cloud/ 2>&1
done
echo; echo “=== СКОРОСТЬ КАНАЛА (3 прогона) ===”
. /usr/lib/wb-release 2>/dev/null
ARCH=$(dpkg --print-architecture 2>/dev/null || echo arm64)
URL=“https://deb.wirenboard.com/${TARGET}/dists/${SUITE}/main/binary-${ARCH}/Packages.gz”
echo “релиз: ${RELEASE_NAME} ${TARGET} ${SUITE} ${ARCH}”
echo “тестовый файл: $URL”
for i in 1 2 3; do
curl -L -o /dev/null -sS --max-time 60
echo; echo "=== ГОТОВО ===“ent-metrics@wirenboard.cloud -n 500 --no-pager 2>/dev/null | grep -E “ERROR” | tail -5рке нет”; else
=== ВРЕМЯ ===
2026-08-06 16:14:17 +05 (+0500)
=== ЛИНК eth0 ===
Speed: 100Mb/s
Duplex: Full
Auto-negotiation: on
Link detected: yes
=== СЧЁТЧИКИ eth0 ===
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:85:01:02:7d:36 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped missed mcast
304868881 3746082 0 0 0 0
TX: bytes packets errors dropped carrier collsns
1794160011 5750977 0 0 0 0
— переходы линка с момента загрузки —
carrier 1
carrier_changes 9
carrier_up_count 5
carrier_down_count 4
=== PING ШЛЮЗ 192.168.0.1 (100 пакетов) ===
— 192.168.0.1 ping statistics —
100 packets transmitted, 100 received, 0% packet loss, time 19976ms
rtt min/avg/max/mdev = 0.474/1.248/2.535/0.633 ms
=== PING 8.8.8.8 (100 пакетов) ===
— 8.8.8.8 ping statistics —
100 packets transmitted, 99 received, 1% packet loss, time 19877ms
rtt min/avg/max/mdev = 55.632/68.689/229.282/17.150 ms, pipe 2
=== DNS ===
nameserver 192.168.0.1
5.35.10.8 wirenboard.cloud agent.wirenboard.cloud
5.35.10.8 wirenboard.cloud tunnels.wirenboard.cloud
5.35.10.8 timescale.wirenboard.cloud
=== ТАЙМИНГИ HTTPS ДО ОБЛАКА (3 прогона) ===
прогон1: dns=0.003451 tcp=0.054496 tls=0.205160 first_byte=0.267599 total=0.272072 code=200
прогон2: dns=0.005949 tcp=0.053412 tls=0.194057 first_byte=0.262217 total=0.265989 code=200
прогон3: dns=0.005786 tcp=0.062228 tls=0.208225 first_byte=0.278162 total=0.291094 code=200
=== СКОРОСТЬ КАНАЛА (3 прогона) ===
релиз: wb-2606 wb8/bullseye stable arm64
тестовый файл: https://deb.wirenboard.com/wb8/bullseye/dists/stable/main/binary-arm64/Packages.gz
прогон1: speed=6918 байт/с size=55619 total=8.039984 c code=200
прогон2: speed=6743 байт/с size=55619 total=8.248832 c code=200
прогон3: speed=6892 байт/с size=55619 total=8.070498 c code=200
=== АГЕНТ ===
active
active
active
=== КОНТРОЛЬНЫЙ ЗАПРОС В ОБЛАКО ===
code=200 total=1.282877
=== ЗАМЕРЫ ОТПРАВКИ МЕТРИК ===
замеров: 35 | <1c: 20 | 1-3c: 12 | >=3c: 3
Aug 06 16:06:39 wirenboard-AUSRVB3H python3[384888]: 2026-08-06 16:06:39,580 ERROR wb-cloud-metrics: Metrics iteration failed: Network error while sending metrics (curl code=6): curl: (6) Could not resolve host: timescale.wirenboard.cloud
=== ГОТОВО ===