all repos — zion-terminal @ main

dotfiles

opt/zion-terminal/bin/zion-tailscale (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
#!/usr/bin/env bash
# ZION TERMINAL - Diagnostico do Tailscale
# Cyberdeck criado por Pablo Murad em 2026
export LC_ALL=C
. /opt/zion-terminal/bin/zion-lib.sh 2>/dev/null
[ "$1" = "--help" ] && { echo "Uso: zion tailscale — estado, IP, MagicDNS, peers, direto/DERP, netcheck e recomendacoes."; exit 0; }
ui_dep tailscale || exit 1

ui_header "TAILSCALE"
ui_section "ESTADO"
printf '  %b%-14s%b %b\n' "$ZDISC" "Conexao" "$ZR" "$(tailscale status >/dev/null 2>&1 && ui_state ok || ui_state off)"
ui_kv "Versao"  "$(tailscale version 2>/dev/null | head -1)"
ui_kv "IPv4"    "$(tailscale ip -4 2>/dev/null | head -1)"
ui_kv "IPv6"    "$(tailscale ip -6 2>/dev/null | head -1)"
ui_kv "Servico" "$(systemctl is-enabled tailscaled 2>/dev/null)/$(systemctl is-active tailscaled 2>/dev/null)"

ui_section "PEERS"
online=$(tailscale status 2>/dev/null | awk '/^100\./ && !/offline/{c++} END{print c+0}')
total=$(tailscale status 2>/dev/null | awk '/^100\./{c++} END{print c+0}')
ui_kv "Online" "$online de $total"
tailscale status 2>/dev/null | awk '/^100\./{printf "  %-16s %-10s %s\n",$2,$4,$5}' | head -10

ui_section "REDE (netcheck)"
nc=$(tailscale netcheck 2>/dev/null)
udp=$(echo "$nc" | awk -F': ' '/UDP/{print $2; exit}')
derp=$(echo "$nc" | grep -A20 "DERP latency" | grep -m1 "ms" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
varies=$(echo "$nc" | awk -F': ' '/MappingVariesByDestIP/{print $2; exit}')
printf '  %b%-14s%b %b  %s\n' "$ZDISC" "UDP" "$ZR" "$([ "$udp" = true ] && ui_state ok || ui_state warn)" ""
ui_kv "DERP proximo" "${derp:-?}"
printf '  %b%-14s%b %b  %s\n' "$ZDISC" "NAT dificil" "$ZR" "$([ "$varies" = true ] && ui_state warn || ui_state ok)" "${varies:-?}"

ui_section "RECOMENDACOES"
tailscale status 2>/dev/null | grep -q "advertising routes" && ui_info "Peers anunciam rotas — se precisar: tailscale set --accept-routes (nao aplicado)"
[ "$varies" = true ] && ui_info "NAT dificil: fora da LAN tende a DERP-SP (~19ms). Normal."
ui_info "Teste um peer: zion radar  ou  tailscale ping <host>"
ui_rule