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
|