- Netsh permite consultar, configurar y diagnosticar la red en Windows mediante contextos especializados (IPv4, Wi-Fi, firewall, TCP, proxy, etc.).
- Con sus comandos puedes gestionar direcciones IP, DNS, perfiles Wi-Fi, reglas del firewall y restablecer la pila TCP/IP y Winsock.
- Netsh facilita la automatización: admite scripts, exportación e importación de configuración y ejecución remota con distintas credenciales.
- Aunque no es tan amigable como la interfaz gráfica, sigue siendo una herramienta clave para administración y resolución avanzada de problemas de red.
Si trabajas con Windows y tocas redes a menudo, tarde o temprano vas a cruzarte con el comando netsh y todo su potencial para gestionar redes y Wi‑Fi con comandos. Aunque la mayoría de cosas se pueden hacer desde la interfaz gráfica, cuando quieres ir rápido, automatizar tareas o arreglar un problema serio, la línea de comandos es tu mejor amiga.
Este tutorial reúne y reorganiza de forma clara lo que explican las mejores guías sobre el tema, para que tengas en un solo sitio un manual completo de netsh: qué es, cómo funciona y los comandos más útiles para IPv4, Wi-Fi, firewall, DNS, proxy, scripts y diagnóstico de red en Windows.
Qué es netsh y para qué sirve en Windows
Netsh (Network Shell) es una herramienta de consola incluida en Windows que permite consultar, configurar y diagnosticar la red, tanto en equipos cliente (Windows 10, 11…) como en servidores Windows Server. Todo se hace a base de comandos, sin ventanas gráficas.
Esta utilidad trabaja por contextos de comandos que se cargan mediante DLL. Cada archivo DLL añade un grupo de órdenes para una función concreta: DHCP, firewall, IP, Wi-Fi, TCP, etc. Por ejemplo, la biblioteca dhcpmon.dll añade el contexto para administrar servidores DHCP desde netsh.
En muchos casos, los comandos netsh ofrecen la misma funcionalidad que los complementos MMC (Microsoft Management Console) que usas en modo gráfico: firewall avanzado, NPS (Network Policy Server), BranchCache, IPsec, HTTP, entre otros. En otros escenarios incluso llegas donde la interfaz gráfica no llega, como ciertos ajustes de IPv6, WFP o RPC.
La gran ventaja de netsh es que puedes automatizar cambios, ejecutar acciones en remoto y generar scripts reutilizables, lo que es oro puro si administras varios equipos o servidores y quieres trabajar de forma coherente.
Sintaxis general del comando netsh
La sintaxis básica de netsh, tal y como la documenta Microsoft, es esta (adaptada al castellano):
netsh
Cada parámetro tiene un propósito concreto y todos son opcionales, salvo el propio comando o el script que quieras ejecutar:
- -a <ArchivoDeAlias>: indica que quieres ejecutar un archivo de alias (texto plano con varios comandos netsh) y, al terminar, volver al shell de netsh en lugar de salir.
- -c <Contexto>: define el contexto inicial, es decir, el área de comandos con la que vas a trabajar (por ejemplo,
wlan,interface,advfirewall). - -r <EquipoRemoto>: ejecuta el comando en otro equipo, usando su nombre de equipo, FQDN o dirección IP. Requiere que el servicio de Registro remoto esté activo; si no lo está verás errores de tipo «Ruta de acceso de red no encontrada».
- -u <Dominio\Usuario>: permite lanzar netsh con las credenciales de otra cuenta de usuario, local o de dominio.
- -p <Contraseña> | *: acompaña a -u para pasar la contraseña de la cuenta. Con
*fuerzas a que la clave se te pida de forma segura sin mostrarla en pantalla. - -f <ArchivoDeScript>: ejecuta un script de netsh (lista de órdenes) y sale automáticamente al terminarlo.
Cuando un valor de cadena tiene espacios, es obligatorio encerrarlo entre comillas dobles. Por ejemplo, para usar un equipo remoto cuyo nombre incluye espacios, tendrías algo como: -r "equipo remoto oficina".
Contextos, subcontextos y ayuda integrada de netsh
Netsh funciona como una especie de “mini consola” interna donde vas cambiando de contextos y subcontextos en función del componente de red que quieras administrar: interfaz, IPv4, IPv6, firewall, Wi-Fi, TCP, UDP, etc.
Si desde CMD o PowerShell escribes solo netsh y pulsas Intro, entrarás en el shell interactivo de netsh. Ahí verás un prompt similar a netsh>, y desde ahí puedes ir cambiando de contexto:
- Escribiendo
dhcpcliententrarás en el contexto del cliente DHCP. - Si escribes
interface, saltas al contexto de interfaces de red. - Desde
interfacepuedes ir al subcontextoipv4oipv6, entre otros.
El texto que aparece antes del símbolo > te indica dónde estás en cada momento. Por ejemplo, netsh interface ipv4> te deja claro que estás en el subcontexto IPv4 de interfaz.
Para ver qué contextos admite tu sistema puedes usar netsh ? o netsh help. Entre la lista típica encontrarás cosas como:
- advfirewall: administración del Firewall de Windows con seguridad avanzada.
- wlan: todo lo relacionado con redes Wi-Fi.
- interface: gestión de interfaces de red y sus subcontextos (ipv4, ipv6, tcp, udp…).
- branchcache, http, ipsec, ras, winsock, winhttp y otros muchos.
Además, cada contexto tiene sus propios subcontextos anidados. Por ejemplo, dentro de interface dispones de ipv4, ipv6, tcp, udp, portproxy, teredo, etc., cada uno con sus propios comandos específicos.
Si no quieres cambiar de sitio, puedes usar la ruta completa del comando. Por ejemplo, desde cualquier lugar (incluso fuera de netsh) puedes ejecutar:
netsh interface ipv4 set address "NetLAN1" static <IP> <MASCARA> <PUERTA_DE_ENLACE>
Con eso aplicas una IP estática a la interfaz «NetLAN1» sin necesidad de ir saltando manualmente de contexto en contexto.
Leyenda y sintaxis de los comandos netsh
En la documentación de netsh se usa una convención muy clara para explicar qué partes de un comando son literales y cuáles debes sustituir por tus propios datos.
- El texto en cursiva suele señalar información que debes cambiar, como nombres de usuario, archivos o interfaces.
- El texto en negrita representa lo que tienes que escribir tal cual, sin modificar.
- Cuando se ve un parámetro seguido de puntos suspensivos (…) significa que ese parámetro puede repetirse varias veces en la misma línea.
- Todo lo que va entre corchetes es opcional.
- Los elementos entre llaves { } separados por
|implican que solo puedes elegir una de las opciones, por ejemplo{enable|disable}. - El texto con fuente monoespaciada (tipo Courier) representa código o salida de comandos.
Ten en cuenta que muchos parámetros aceptan valores de cadena. Si contienen espacios, recuerda rodearlos con comillas dobles, por ejemplo al configurar una interfaz llamada Conexión de red inalámbrica:
netsh interface ipv4 set address name="Wireless Network Connection" dhcp
En lugar del nombre de la interfaz, también puedes utilizar su número de índice (útil cuando el nombre está en otro idioma o es muy largo), por ejemplo:
netsh interface ipv4 set address name=15 dhcp
Cómo ejecutar netsh: CMD, PowerShell y modo interactivo
Netsh se puede lanzar tanto desde Windows PowerShell como desde el símbolo del sistema clásico (CMD), pero la forma de trabajar con él cambia ligeramente en cada caso.
Para abrirlo en modo administrador puedes:
- Pulsar Windows + X y elegir “Windows PowerShell (Administrador)” o “Símbolo del sistema (Administrador)”.
- O buscar “cmd” o “PowerShell” en el menú Inicio, botón derecho y ejecutar como administrador.
Desde cualquiera de las dos consolas puedes escribir netsh para entrar en el shell de netsh. Ahí irás introduciendo los comandos uno tras otro, cambiando de contexto y usando ? para ver las opciones disponibles en cada punto.
Si prefieres no entrar en el modo interactivo, en CMD es muy habitual escribir el comando completo de una sola vez y pulsar Intro, por ejemplo netsh /? para ver la ayuda general o algo como netsh interface tcp show global para consultar los parámetros globales de TCP.
Usar netsh con IPv4: IP, máscara, gateway y DNS
Una de las aplicaciones más típicas de netsh es consultar y modificar la configuración IPv4 de las interfaces: IP, máscara de subred, puerta de enlace y servidores DNS.
Para mostrar un resumen de la configuración actual de IPv4 en todas las interfaces puedes usar:
netsh interface ip show config
La salida es algo menos exhaustiva que ipconfig /all, pero ofrece todos los datos importantes de un vistazo: IP actual, máscara, puerta de enlace y DNS configurados.
Si quieres cambiar la IP de una interfaz de red a una dirección estática, por ejemplo para optimizar juego en red, puedes usar la sintaxis clásica de IPv4:
netsh interface ip set address name="Ethernet" source=static addr=192.168.1.10 mask=255.255.255.0 gateway=192.168.1.1
Con ese comando estableces para la interfaz «Ethernet» IP 192.168.1.10, máscara /24 y puerta de enlace 192.168.1.1. Si posteriormente quieres que la IP vuelva a asignarse por DHCP, solo tendrías que ejecutar:
netsh interface ip set address name="Ethernet" source=dhcp
Con los servidores DNS pasa exactamente lo mismo. Para fijar un DNS estático:
netsh interface ip set dnsserver "Ethernet" static 8.8.8.8 primary
Y para devolver la resolución de nombres a DHCP:
netsh interface ip set dnsserver "Ethernet" dhcp
En IPv4 también tendrás a mano comandos para mostrar estadísticas de IP, la tabla ARP o las conexiones TCP configuradas:
netsh interface ip show ipstats– estadísticas del protocolo IP.netsh interface ip show ipnet– direcciones IP y MAC asociadas (dispara solicitudes ARP en la red).netsh interface ip show tcpconn– resumen de conexiones TCP existentes.
Gestión de interfaces: nombres, índices y estado
Antes de cambiar nada es importante saber qué interfaces tienes, cómo se llaman y en qué estado están. Con netsh es muy sencillo: para entender mejor el flujo de conexión de red te será útil listar las interfaces antes de tocar configuraciones.
Para ver el listado general de interfaces de red y su estado (conectado, desconectado, deshabilitado):
netsh interface show interface
Si necesitas los índices numéricos de todas las interfaces IPv4 (útiles cuando el nombre tiene espacios o acentos):
netsh interface ip show interfaces
También dispones de comandos para mostrar las direcciones y DNS configurados por interfaz, por ejemplo:
netsh interface ipv4 show address Wi-Finetsh interface ipv4 show dns Wi-Finetsh interface ipv4 show address Ethernetnetsh interface ipv4 show dns Ethernet
Cuando estés fuera de cualquier subcontexto, puedes usar la ruta completa, por ejemplo:
netsh interface ipv4 show interfaces
Con ello ves de un plumazo todas las interfaces IPv4 con sus índices, MTU y estado, sin necesidad de ir saltando al contexto interface.
Redes Wi-Fi: perfiles, claves, drivers y capacidades
El contexto wlan concentra prácticamente todo lo que puedes hacer con redes inalámbricas desde netsh: listar perfiles, ver contraseñas guardadas, comprobar drivers, capacidades y generar informes. También permite, por ejemplo, crear una red Wi‑Fi virtual usando netsh.
Para listar todos los perfiles Wi-Fi que el sistema tiene memorizados:
netsh wlan show profiles
Si quieres filtrar por una interfaz inalámbrica concreta, puedes usar:
netsh wlan show profiles interface="nombre_interfaz"
Para ver el controlador Wi-Fi en detalle (fabricante, versión, fecha, tipo de radio, etc.):
netsh wlan show drivers
En sistemas recientes también puedes ver las capacidades inalámbricas soportadas por el adaptador:
netsh wlan show wireless capabilities
Si lo que quieres es ver datos en tiempo real sobre la interfaz Wi-Fi activa (SSID conectado, canal, potencia de señal, velocidad de enlace):
netsh wlan show interfaces
Y si tienes varias, puedes concretar el nombre:
netsh wlan show interface name="Nombre_interfaz"
Para listar las redes inalámbricas que ve tu adaptador en ese momento:
netsh wlan show networks
Si necesitas información mucho más fina de cada BSSID (canal, potencias, velocidades admitidas), puedes añadir el modo BSSID:
netsh wlan show networks mode=bssid
Una utilidad muy habitual es recuperar la clave Wi-Fi guardada de un perfil concreto. Para eso puedes ejecutar:
netsh wlan show profile name="NombrePerfil" key=clear
En la salida aparecerá la clave en texto claro dentro del apartado de configuración de seguridad, así que úsalo solo en equipos que controles, porque cualquiera con acceso de administrador puede ver esas contraseñas.
Si quieres que una red Wi-Fi deje de conectarse sola al detectarla, puedes cambiar su modo de conexión:
netsh wlan set profileparameter name="Nombre de perfil" connectionmode=manual
Y si te interesa justo lo contrario, que se conecte automáticamente cuando esté al alcance:
netsh wlan set profileparameter name="Nombre de perfil" connectionmode=auto
Para desconectarte de la Wi-Fi actual vía consola puedes hacer:
netsh wlan disconnect
Y para conectarte a otra red cuyo perfil ya existe en el equipo, algo como:
netsh wlan connect name="NombreDeTuSSID"
Exportar, importar y limpiar perfiles Wi-Fi
Cuando administras varios equipos puede ser muy cómodo exportar los perfiles Wi-Fi de uno ya bien configurado, y luego importarlos en otros sin tener que escribir claves a mano.
Para exportar todos los perfiles a una carpeta concreta, usando las claves en claro para poder migrarlas sin problemas:
netsh wlan export profile key=clear folder="C:\perfileswifi"
Esto generará uno o varios archivos XML en la ruta indicada. Más adelante, para importarlos en otro equipo bastará con:
netsh wlan add profile filename="C:\perfileswifi\perfil1.xml"
Si tienes perfiles antiguos de redes a las que ya no te conectas, conviene limpiarlos para evitar confusiones y problemas de conexión. Para borrar uno en concreto:
netsh wlan delete profile name="Nombre de perfil"
Si quieres tener un informe completo en HTML sobre la historia de conexiones Wi-Fi, errores y configuración del adaptador, puedes generar un reporte con:
netsh wlan show wlanreport
El comando te indicará la ruta de un archivo .html con toda la información; al abrirlo en el navegador verás un resumen muy detallado de conexiones, eventos y estadísticas Wi-Fi del equipo.
Firewall de Windows y netsh advfirewall
Otro contexto clave es advfirewall, que te permite gestionar de forma avanzada el Firewall de Windows: ver reglas, crear nuevas, permitir puertos, bloquear ICMP, restablecer la configuración, etc.; si necesitas guías prácticas para usar Windows Defender Firewall como referencia, te será de ayuda.
Para listar todas las reglas de firewall configuradas:
netsh advfirewall firewall show rule name=all
Si solo te interesa el perfil actual del usuario (privado, público, dominio), con sus parámetros activos:
netsh advfirewall show currentprofile
Si necesitas ver u abrir puertos concretos, una orden muy utilizada es:
netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80
Así creas una regla entrante para permitir tráfico TCP en el puerto 80. Para abrir el puerto de Escritorio Remoto (3389), otro ejemplo clásico es:
netsh advfirewall firewall add rule name="Open Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
Si más adelante quieres eliminar una regla concreta puedes utilizar:
netsh advfirewall firewall delete rule name="NombreDeLaRegla" protocol=udp localport=500
En muchas auditorías de redes se pide no responder a ping (ICMP) desde el exterior. Para permitir solicitudes ping ICMPv4 entrantes puedes usar:
netsh advfirewall firewall add rule name="All ICMP V4" dir=in action=allow protocol=icmpv4
Y para bloquearlas, cambiando la acción:
netsh advfirewall firewall add rule name="All ICMP V4" dir=in action=block protocol=icmpv4
También es posible desactivar por completo el firewall para todos los perfiles (con mucho cuidado):
netsh advfirewall set allprofiles state off
Si necesitas volver a la configuración de fábrica porque has tocado demasiado, puedes restablecer todas las reglas:
netsh advfirewall reset
DNS, proxy, TCP/IP y reparación de red
Netsh también resulta muy útil para tocar aspectos avanzados de TCP/IP, Winsock y configuración de proxy, especialmente cuando tienes incidencias que no se arreglan con un simple reinicio de adaptador.
Para revisar la configuración de proxy WinHTTP que usa el sistema:
netsh winhttp show proxy
Si necesitas configurar un proxy concreto para las conexiones WinHTTP, puedes hacerlo así:
netsh winhttp set proxy "servidorproxy.dominio.com:8484" "<local>"
Sustituye el host y el puerto por los de tu servidor real, y adapta la lista de exclusiones para direcciones locales o dominios que no deban pasar por proxy.
Cuando las cosas se tuercen a nivel de pila de red, muchas guías recomiendan restablecer Winsock y TCP/IP. Los dos comandos típicos son:
netsh winsock reset catalog– reinicia el catálogo de Winsock.netsh int ip reset reset.log– restablece la pila TCP/IP a valores por defecto y guarda un log enreset.log.
Después de ejecutar estos comandos es recomendable reiniciar el equipo para que se apliquen todos los cambios en la pila de red.
Si quieres consultar los parámetros globales de TCP y UDP configurados en tu máquina, puedes usar:
netsh interface tcp show globalnetsh interface udp show global
Algunas optimizaciones o diagnósticos avanzados pasan por cambiar estos valores. Un ejemplo típico es el Receive Side Scaling (RSS), que reparte la carga de red entre varios núcleos del procesador.
Para desactivar RSS:
netsh interface tcp set global rss=disabled
Y para volver a activarlo:
netsh interface tcp set global rss=enabled
Cuando trabajas con multidifusión (videoconferencia, streaming, etc.), también puedes comprobar las suscripciones multicast activas en las interfaces con:
netsh interface ip show joins
Configurar IP, DNS y DHCP desde netsh int ip
Además de lo ya visto en IPv4, el contexto int ip (interface IP) te permite realizar cambios rápidos sobre direcciones, DNS y comportamiento DHCP.
Un ejemplo clásico para configurar IP y gateway estáticos en una interfaz LAN sería:
netsh int ip set address "local area connection" static 192.168.29.101 255.255.255.0 192.168.29.254 1
netsh interface ip add dns name="Local Area Connection" addr=192.168.0.131
Recuerda que debes reemplazar las direcciones IP por las que correspondan a tu red (segmento, puerta de enlace, DNS propio o externo).
Si trabajas con DHCP, también puedes cambiar una interfaz que está en estático para que reciba tanto IP como DNS por DHCP, en el caso de Wi-Fi por ejemplo:
netsh interface ipv4 set address "Wi-Fi" dhcp
netsh interface ipv4 set dnsservers "Wi-Fi" dhcp
Volcado de configuración, alias y uso en scripts por lotes
Uno de los puntos fuertes de netsh es la posibilidad de volcar la configuración de red a un archivo de texto, que luego puedes usar como copia de seguridad o como script para clonar esa configuración en otros equipos.
Por ejemplo, puedes crear una carpeta C:\redes y volcar ahí la configuración actual con:
netsh dump >> C:\redes\configuracion.txt
Si algún día necesitas restaurar esa configuración, bastaría con ejecutar:
netsh -f C:\redes\configuracion.txt
Además de dumps completos, puedes preparar archivos por lotes (.bat o .cmd) con varias órdenes netsh que se ejecuten de golpe. Por ejemplo, un script que fije IP, DNS primario y secundario, y active el firewall:
@echo off
echo Configurando red...
REM IP, máscara y puerta de enlace
netsh interface ip set address name="Ethernet" static 192.168.1.100 255.255.255.0 192.168.1.1
REM DNS principal
netsh interface ip set dns name="Ethernet" static 8.8.8.8
REM DNS secundario
netsh interface ip add dns name="Ethernet" 8.8.4.4 index=2
REM Activar firewall para todos los perfiles
netsh advfirewall set allprofiles state on
echo Configuración de red aplicada.
pause
Las líneas que empiezan por REM son comentarios y no se ejecutan. Para lanzar el script solo tendrías que hacer doble clic o ejecutarlo desde CMD/PowerShell con permisos de administrador.
Otra función curiosa es la de los alias, que te permiten abreviar comandos largos. Puedes ver todos los alias definidos con:
netsh show alias
Captura de tráfico, diagnóstico y limitaciones de netsh
Cuando un problema de red se resiste, a veces no queda más remedio que capturar paquetes para analizarlos con detalle. Netsh integra un sistema de trazas que genera archivos ETL para analizar luego con herramientas como Microsoft Message Analyzer o Wireshark (tras convertir el formato).
Para iniciar una captura general de tráfico:
netsh trace start capture=yes tracefile=C:\trace.etl persistent=yes maxsize=4096
Y para detenerla cuando ya tengas suficiente información:
netsh trace stop
Aunque netsh es tremendamente potente, también tiene sus desventajas y limitaciones en entornos modernos:
- Su sintaxis no es especialmente amigable; si no estás acostumbrado a la consola, es fácil cometer errores de tecleo.
- No tiene interfaz gráfica: todo se hace escribiendo, así que no es tan intuitivo para usuarios novatos.
- Parte de su funcionalidad no está pensada para redes muy modernas (SDN, configuraciones IPv6 muy avanzadas) y Microsoft empuja cada vez más hacia PowerShell y cmdlets específicos.
- La mayoría de acciones requieren permisos de administrador, por lo que no es una herramienta para usuarios estándar.
Aun con todo, netsh sigue siendo una de las navajas suizas imprescindibles para cualquiera que administre redes en Windows. Con los comandos que has visto puedes configurar IP y DNS, gestionar Wi-Fi, abrir o cerrar puertos en el firewall, tocar proxy, reparar la pila TCP/IP y hasta sacar capturas de tráfico o scripts de configuración completos, de forma rápida y repetible cuando la interfaz gráfica se queda corta o simplemente te hace perder más tiempo.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.