Comprobar conectividad a una URL y puerto usando PowerShell

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

En sistemas Windows, especialmente en entornos administrativos o de soporte técnico, es frecuente necesitar validar rápidamente si un servidor o un servicio específico está accesible mediante una URL y puerto concretos. PowerShell ofrece herramientas integradas fáciles de usar para realizar estas comprobaciones.

Uso del comando Test-NetConnection

El comando más común y sencillo para realizar estas comprobaciones es Test-NetConnection. Este cmdlet es nativo desde PowerShell 4.0 en adelante.

Sintaxis básica

Test-NetConnection -ComputerName <URL o IP> -Port <Número_Puerto>

Ejemplo práctico

Si deseas comprobar si el servidor web de Google (www.google.com) está disponible mediante el puerto HTTPS (443):

Test-NetConnection -ComputerName www.google.com -Port 443

Salida típica del comando

ComputerName     : www.google.com
RemoteAddress    : 142.250.201.4
RemotePort       : 443
InterfaceAlias   : Ethernet
SourceAddress    : 192.168.1.10
TcpTestSucceeded : True

La clave en la salida es la propiedad TcpTestSucceeded. Si su valor es True, significa que el puerto está accesible.

Respuesta rápida (True/False)

Si solo deseas obtener rápidamente una respuesta booleana para automatizar scripts:

(Test-NetConnection www.google.com -Port 443).TcpTestSucceeded

Esto devuelve:

  • True si el puerto responde correctamente.
  • False si el puerto no está accesible.

Alternativa con TcpClient para sistemas heredados

En sistemas anteriores o para un control más granular, se puede utilizar la clase TcpClient desde .NET.

Función personalizada

function Test-Port ($host, $port, $timeout=2000) {
    $tcpClient = New-Object System.Net.Sockets.TcpClient
    try {
        $connectTask = $tcpClient.ConnectAsync($host, $port)
        if ($connectTask.Wait($timeout)) {
            return $true
        } else {
            return $false
        }
    } catch {
        return $false
    } finally {
        $tcpClient.Dispose()
    }
}

Ejemplo con función personalizada

# Comprobando el puerto SMTP (25) en un servidor de correo electrónico
Test-Port -host "smtp.ejemplo.com" -port 25

Esto devolverá True o False según el resultado de la prueba.

Casos de uso típicos

  • Diagnóstico rápido de accesibilidad a servicios web.
  • Automatización de chequeos previos en scripts de instalación o despliegue.
  • Validaciones periódicas en herramientas de monitorización.

Conclusión

Utilizar estos comandos facilita enormemente el diagnóstico inicial y el troubleshooting de conectividad a servicios específicos desde entornos Windows, optimizando tiempos de respuesta y mejorando la eficiencia en tareas administrativas o de soporte.

Binario 0
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.