03-oct: superguardado automático
This commit is contained in:
60
scripts/acceso_remoto/setup_tailscale.ps1
Normal file
60
scripts/acceso_remoto/setup_tailscale.ps1
Normal file
@@ -0,0 +1,60 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Instala y conecta Tailscale en un PC Windows (malla privada para acceso remoto).
|
||||
|
||||
.DESCRIPTION
|
||||
Idempotente. Tailscale une los equipos (sobremesa, portatil...) en una red privada
|
||||
cifrada, sin abrir puertos en el router ni depender de la red local.
|
||||
|
||||
Hace:
|
||||
1. Instala Tailscale via winget (si falta).
|
||||
2. Ejecuta `tailscale up --hostname <nombre>` (autenticacion en el navegador, una vez).
|
||||
3. Muestra estado y la IP de la tailnet.
|
||||
|
||||
Ejecutar en CADA equipo que quiera usar la malla (sobremesa Y portatil).
|
||||
|
||||
.EXAMPLE
|
||||
powershell -ExecutionPolicy Bypass -File setup_tailscale.ps1 -Hostname sobremesa
|
||||
#>
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[string]$Hostname = $env:COMPUTERNAME.ToLower()
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'Continue'
|
||||
|
||||
function Get-TailscaleExe {
|
||||
$cmd = Get-Command tailscale -ErrorAction SilentlyContinue
|
||||
if ($cmd) { return $cmd.Source }
|
||||
foreach ($p in @("$env:ProgramFiles\Tailscale\tailscale.exe", "${env:ProgramFiles(x86)}\Tailscale\tailscale.exe")) {
|
||||
if (Test-Path $p) { return $p }
|
||||
}
|
||||
return $null
|
||||
}
|
||||
|
||||
Write-Host '== Tailscale (malla privada para acceso remoto) ==' -ForegroundColor Cyan
|
||||
|
||||
$ts = Get-TailscaleExe
|
||||
if (-not $ts) {
|
||||
Write-Host ' - Instalando Tailscale via winget...' -ForegroundColor Yellow
|
||||
$wg = Get-Command winget -ErrorAction SilentlyContinue
|
||||
if (-not $wg) { Write-Error 'winget no disponible. Instala Tailscale manualmente desde https://tailscale.com/download/windows'; exit 1 }
|
||||
winget install --id Tailscale.Tailscale -e --accept-source-agreements --accept-package-agreements
|
||||
Start-Sleep -Seconds 5
|
||||
$ts = Get-TailscaleExe
|
||||
if (-not $ts) { Write-Error 'No se encuentra tailscale.exe tras la instalacion.'; exit 1 }
|
||||
}
|
||||
Write-Host " - tailscale: $ts" -ForegroundColor Green
|
||||
|
||||
$svc = Get-Service -Name Tailscale -ErrorAction SilentlyContinue
|
||||
if ($svc) { Set-Service -Name Tailscale -StartupType Automatic; if ($svc.Status -ne 'Running') { Start-Service Tailscale } }
|
||||
|
||||
Write-Host " - Conectando a la tailnet como '$Hostname' (se abrira el navegador para autenticar)..." -ForegroundColor Yellow
|
||||
& $ts up --hostname $Hostname
|
||||
|
||||
Write-Host ''
|
||||
Write-Host 'Estado:' -ForegroundColor Cyan
|
||||
& $ts status
|
||||
$ip = (& $ts ip -4 2>$null) -join ', '
|
||||
Write-Host "IP Tailscale : $ip"
|
||||
Write-Host "Conexion : ssh $env:USERNAME@$Hostname (o a la IP Tailscale)"
|
||||
Reference in New Issue
Block a user