Administrar redes con Netsh

Cualquiera que haya profundizado un poco en la configuración de redes con Windows se habrá encontrado tarde o temprano con Network Shell (Netsh). Este término designa una interfaz entre el usuario y el sistema operativo que permite la administración y configuración de las redes locales y remotas.

Sus aplicaciones van desde la configuración del cortafuegos de Windows, pasando por la gestión de redes LAN y WLAN, hasta las configuraciones IP y de servidores. Además, sirve para proteger las infraestructuras de red contra ataques externos. La herramienta de línea de comandos sirve también para diagnosticar problemas en la red y repararlos. Una de las grandes ventajas de Netsh es que las tareas de administración de la red pueden realizarse de manera particularmente rápida y cómoda y, además, automatizarse con un script.

Ejecutar los comandos de Netsh: abrir el símbolo del sistema

Para usar Netsh, tienes que ir al nivel de línea de comandos. Puedes llegar allí a través del menú Ejecutar (Run), al que puedes acceder de la siguiente manera:

  1. Pulsa la combinación de teclas [Windows] + [R].
  2. Escribe cmd en el campo de entrada (1).
  3. Pulsa el botón Aceptar (2).

Entonces, se abre el símbolo del sistema. Escribe netsh y confirma con [Intro] para iniciar el programa:

Si los comandos y scripts de Netsh no se ejecutan o si deseas realizar intervenciones más profundas en la configuración de la red, debes iniciar la Network Shell de la red con derechos de administrador. En Windows 10, puedes hacerlo de la siguiente manera:

  1. Haz clic con el botón derecho del ratón en el icono de Windows, a la izquierda de la barra de tareas, o pulsa [Windows] + [X].
  2. Selecciona Símbolo del sistema (Administrador) en el menú contextual que aparece.

Netsh incluye el archivo de programa netsh.exe, que se encuentra en la carpeta de sistema de Windows (%windir%\system32). Puedes usar una llamada directa para llegar antes a la entrada de comandos de Netsh. Escribe la ruta C:\NWindows\System32\netsh.exe en la barra de direcciones del Explorador de Windows y pulsa [Intro]. Podrás escribir directamente los comandos Netsh en la ventana de entrada que se abrirá.

Puedes llegar más rápidamente a la llamada directa mediante un acceso directo. Una vez creado, basta con hacer clic para iniciar la entrada de comandos:

  1. Haz clic con el botón derecho del ratón en el escritorio de Windows, luego, en el elemento de menú Nuevo (1) y después en Acceso directo en el siguiente menú contextual (2):
  1. En el asistente de accesos directos, escribe la ruta C:\Windows\System32\netsh.exe (1) y haz clic en Siguiente (2):
  1. A continuación, asigna un nombre significativo al atajo (1), que aparecerá en el escritorio al hacer clic en Finalizar (2):

La estructura de Netsh

El programa Netsh proporciona una sintaxis de comandos muy versátil. Si quieres utilizarlo para realizar tareas específicas, debes familiarizarte primero con la estructura específica de Network Shell. La estructura del programa se basa en contextos que representan diferentes niveles de administración. Cada contexto cubre una funcionalidad de red específica (por ejemplo, IP, LAN, y configuración del cortafuegos). Para interactuar contextualmente con otros componentes de Windows, el programa utiliza los archivos de la Dynamic Link Library (Biblioteca de Enlace Dinámico) (DLL): por ejemplo, Netsh accede a Dhcpmon.dll para cambiar y administrar la configuración del DHCP.

Para usar un contexto, debes llegar a este desde el símbolo del sistema de Windows. Para acceder al contexto de la gestión de LAN, por ejemplo, debes hacer lo siguiente:

  1. Escribe netsh en el símbolo del sistema y confirma con [Intro].
  2. Escribe lan y confirma con [Intro].
  3. Ahora, el símbolo del sistema muestra el cambio de contexto: netsh lan>

Si has cambiado al contexto LAN, se activarán los comandos de contexto específico y multicontexto. Entre los comandos específicos del contexto está set, que configura los ajustes en las interfaces. Un ejemplo de comando básico y multicontexto de Netsh es el comando de ayuda /?, que enumera los subcontextos y comandos disponibles en cada área. Al introducirlo, la sección LAN muestra la siguiente lista de comandos específicos de contexto y multicontexto:

Por ejemplo, si cambias al contexto del cortafuegos, aparecerá la siguiente lista de referencia de comandos:

Además de la estructura de cada contexto, manejar Netsh requiere tener en cuenta otras características especiales. Puede utilizarse de modo interactivo o no interactivo. En el modo no interactivo, por ejemplo, los ajustes de red importantes se exportan a un archivo de texto y después vuelven a importarse para posteriormente ser recuperados.

El modo interactivo, por su parte, permite realizar solicitudes directas. Al escribir netsh interface ip show address, se muestra la dirección IP actual del ordenador. El modo interactivo puede utilizarse en modo conectado o desconectado. El primer modo implementa los comandos directamente, el modo desconectado guarda las acciones y las ejecuta más tarde. Las acciones almacenadas se implementan en el momento deseado con el comando de Netsh commit.

Comandos de Netsh y sus contextos

Aquí hemos recopilado los comandos de Netsh más importantes con una breve explicación de sus contextos. Si se trata de un comando general multicontexto, se da información adicional en la columna de la derecha. Dependiendo de la versión del sistema operativo y el rol que se tenga en la red (cliente o servidor), los comandos disponibles pueden diferir en algunos aspectos. La lista de comandos para un ordenador con Windows Server 2016 Datacenter es la siguiente:

Comando Efecto Administrado en el contexto Netsh
.. Pasa a un nivel de contexto superior.  
? Muestra una lista de comandos.  
abort Descarta los cambios realizados sin conexión.  
add Añade una entrada de configuración a la lista.  
advfirewall Cambia al contexto de netsh advfirewall. Cortafuegos (directivas y configuración)
alias Añade un alias  
branchcache Cambia al contexto netsh branchcache. Configuración de BranchCache
bridge Cambia al contexto netsh bridge. Puente de red
bye Cierra el programa.  
commit Transfiere los cambios realizados sin conexión.  
delete Borra una entrada de configuración de la lista de entradas.  
dhcpclient Cambia al contexto netsh dhcpclient. Cliente DHCP
dnsclient Cambia al contexto netsh dnsclient. Configuración del cliente de DNS
dump Muestra un script de configuración.  
exec Ejecuta un archivo de script.  
exit Cierra el programa.  
firewall Cambia al contexto netsh firewall. Cortafuegos (directivas y configuración)
help Muestra una lista de comandos.  
http Cambia al contexto netsh http. Controlador del servidor http (http.sys)
interface Cambia al contexto netsh interface. Configuración IP (v4, v6)
ipsec Cambia al contexto netsh ipsec. Directivas de IPSec
ipsecdosprotection Cambia al contexto netsh ipsecdosprotection. Protección contra los ataques de negación de servicio del IPSEC
lan Cambia al contexto netsh lan. Interfaces de red inalámbrica
namespace Cambia al contexto netsh namespace. Directivas del cliente DNS
netio Cambia al contexto netsh netio. Filtro de unión
offline Establece el modo actual como desconectado.  
online Establece el modo actual como conectado.  
popd Cambia al contexto almacenado en la pila por pushd.  
pushd Transfiere el contexto actual a la pila.  
quit Cierra el programa.  
ras Cambia al contexto netsh ras. Servidor de acceso remoto
rpc Cambia al contexto netsh rpc. Servicio de configuración RPC
set Actualiza los ajustes de configuración.  
show Muestra información.  
trace Cambia al contexto netsh trace.  
unalias Borra un alias.  
wfp Cambia al contexto netsh wfp. Windows Filtering Platform
winhttp Cambia al contexto netsh winhttp. Configuración del proxy y el rastreo del cliente http de Windows
winsock Cambia al contexto netsh winsock. Configuración de Winsock
wlan Cambia al contexto netsh wlan. Interfaces de red inalámbrica

Parámetros de sintaxis para Netsh: ¿qué significan?

Para llevar a cabo acciones y tareas concretas, pueden añadirse parámetros opcionales a los comandos Netsh. La sintaxis para combinar los comandos y parámetros de Netsh es la siguiente:

netsh [-a archivo de alias] [-c contexto] [-r ordenador remoto] [-u [nombre de dominio\]nombre de usuario] [-p Contraseña | *] [Comando | -f Archivo de script]

Los siguientes parámetros son todos opcionales, por lo que se pueden añadir y utilizar según se requiera:

-a Vuelve al indicador de Netsh después de ejecutar el archivo de alias.
Archivo de alias (inglés: AliasFile) Especifica el nombre del archivo de texto que contiene al menos un comando Netsh.
-c Cambia al contexto especificado de Netsh.
Contexto (inglés: Context) Marcador de posición para el contexto que se va a introducir (por ejemplo, WLAN).
-r Hace que el comando se ejecute en un ordenador remoto (remotecomputer) donde debe estar funcionando el Servicio de Registro Remoto.
Ordenador remoto (inglés: RemoteComputer) Nombre del ordenador remoto que se está configurando
-u Indica que el comando Netsh se está ejecutando bajo una cuenta de usuario.
Nombre de dominio\ (inglés: DomainName\) Identifica el dominio de la cuenta de usuario (por defecto es el dominio local si no se menciona un nombre de dominio específico).
Nombre de usuario (inglés: UserName) Nombre de la cuenta de usuario
-p Puede indicarse una contraseña para la cuenta de usuario.
Contraseña (inglés: Password) Indica la contraseña de la cuenta de usuario especificada con -u nombre de usuario.
Comando Netsh (inglés: NetshCommand) Comando Netsh que se va a ejecutar
-f Termina Netsh después de la ejecución del archivo de script.
Archivo de script (inglés: ScriptFile) Script por ejecutar

Restablecer la pila TCP / IP con Netsh

Un uso común de los comandos Netsh es el restablecimiento de la pila TCP / IP que maneja el intercambio de paquetes de datos en las redes. Si aparecen problemas en la red y en Internet, esta medida puede ser de utilidad, ya que elimina, por ejemplo, los defectos o la configuración incorrecta de protocolos TCP/IP. El siguiente comando de reparación realiza un restablecimiento y reinstala el TCP/IPv4:

netsh int ip reset

También puede crearse un archivo de registro que documente los cambios realizados:

netsh int ip reset c:\tcpipreset.txt

Después del restablecimiento, es preciso reiniciar el ordenador.

Consejo

Los comandos de Netsh también pueden utilizarse en archivos por lotes (*.bat) para automatizar tareas rutinarias. Para saber más, consulta nuestra guía Crear archivo por lotes.

Importación y exportación de configuraciones de red

Con Netsh también es posible exportar la configuración actual de la red a un archivo de texto simple. Si hay problemas de red, se restablece rápidamente una configuración funcional y sin errores.

En el primer paso (exportación) se lee la configuración de la red, se escribe en un archivo de texto (netcnfig.txt) y se almacena en el directorio de ejemplo Configuración de red, en la unidad C:\. La carpeta Configuración de red debe crearse manualmente en la unidad de destino antes de realizar la primera exportación (Netsh no lo hace automáticamente). Ve al símbolo del sistema y escribe el siguiente código:

netsh -c interface dump>c:\Configuración de red\netcnfig.txt

Para la importación de ajustes posterior, debe introducirse el siguiente comando:

netsh -f c:\Configuración de red\netcnfig.txt
Consejo

Windows 10 también permite copiar y pegar en el símbolo del sistema. Puedes simplemente copiar la sintaxis del comando de este artículo y pegarla en la ventana de entrada.

Configuración de IP con Netsh

Un uso típico de Netsh es cambiar la configuración de la IP. Para que un ordenador de la red no obtenga automáticamente una dirección IP estática sino una asignada, puedes activar el protocolo de configuración dinámica de host (DHCP). Este protocolo de comunicación asigna automáticamente direcciones IP y otros datos de configuración necesarios para los clientes de una red. Este proceso requiere varios pasos.

El primer paso es recuperar la configuración actual y los nombres de los adaptadores de red disponibles:

netsh interface ipv4 show interface

A continuación, se determina un adaptador LAN específico (en este ejemplo, Ethernet) como la dirección para la asignación de IP a través de DHCP:

netsh interface ipv4 set address name="Ethernet" source=dhcp

El DHCP se encarga de la gestión dinámica de los ajustes de red relacionados con el adaptador de Ethernet.

Activar y desactivar el cortafuegos de Windows

Si quieres habilitar o deshabilitar el Firewall de Windows, basta con una simple sintaxis de comando de Netsh. Para habilitar un cortafuegos, sigue estos pasos:

netsh firewall set opmode enable 

Para desactivar el cortafuegos, utiliza la siguiente línea de comandos:

netsh firewall set opmode disable
Nota

En algunos contextos, Windows recomienda utilizar alternativas a Netsh para administrar las redes. En esos casos, a menudo se utiliza el Windows PowerShell, acerca del cual encontrarás una introducción en nuestra Digital Guide.