Instalación de WireGuard en Windows | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

Instalación de WireGuard en Windows

Esta guía explica cómo configurar un túnel VPN de WireGuard entre dos equipos Windows: un servidor WireGuard que se ejecuta en un host Windows remoto, por ejemplo un VPS Windows, y un cliente WireGuard que se ejecuta en su equipo Windows local. Una vez que el túnel está activo, los dos equipos intercambian datos a través de una conexión privada cifrada, y opcionalmente puede enrutar todo el tráfico del cliente a través del servidor.

Para simplificar la generación de claves, esta guía crea tanto la configuración del servidor como la del cliente dentro de una sola aplicación WireGuard, y luego implementa cada archivo de configuración en el equipo al que pertenece. La configuración del servidor se ejecuta en el servidor y la configuración del cliente se ejecuta en el cliente. El servidor y el cliente son siempre equipos independientes. El mismo proceso se utiliza para añadir cualquier número de clientes adicionales.

Antes de empezar, instale la última versión de WireGuard desde la página de instalación oficial (https://www.wireguard.com/install/) tanto en el servidor como en el cliente, y asegúrese de tener derechos de administrador en cada equipo.

La configuración de esta guía es la siguiente:

Server (public IP, listening on UDP 51820) Tunnel address 10.0.0.1/24 | | encrypted WireGuard tunnel | Client Tunnel address 10.0.0.2/32

Creación de la configuración del servidor

Ejecute C:\Program Files\WireGuard\wireguard.exe, haga clic en Add tunnel y elija Add empty tunnel. WireGuard genera automáticamente un par de claves. La clave pública que se muestra en la parte superior de la ventana es la clave pública del servidor. La necesitará más adelante, al configurar el cliente.

Asigne un nombre al túnel y rellene la sección interface con la clave privada del servidor, el puerto en el que WireGuard escuchará y la dirección interna que el servidor utilizará dentro del túnel.

[Interface] PrivateKey = # private key of the WireGuard server ListenPort = # port that WireGuard will listen on Address = # internal IP address of the WireGuard server, for example 10.0.0.1/24

Utilice una subred privada para la red del túnel y mantenga el servidor y todos los clientes en el mismo rango. Una opción común es 10.0.0.1/24 para el servidor y 10.0.0.2/32, 10.0.0.3/32, y así sucesivamente para cada cliente. El servidor utiliza un prefijo /24, de modo que trata todo el rango del túnel como accesible a través de la interfaz de WireGuard. Cada cliente utiliza /32, porque un cliente representa una única dirección y no una subred. Un cliente configurado con /24 supondría que todo el rango está en su propia interfaz y no enviaría a través del túnel el tráfico destinado a otras direcciones del túnel.

En el editor del túnel, debajo del campo de configuración, puede activar opcionalmente Block untunneled traffic (kill-switch), que bloquea cualquier tráfico que saldría fuera del túnel, y establecer una Pre-shared key, que añade una capa adicional de seguridad. Ambas opciones son opcionales. Consulte la sección "Entender AllowedIPs" para saber cuándo es útil el kill-switch y qué bloquea.

Creación de la configuración del cliente

Haga clic en Add tunnel y elija Add empty tunnel una segunda vez, esta vez para el cliente. La clave pública que se muestra para este túnel es la clave pública del cliente, que el servidor necesita para aceptar al cliente.

Rellene la configuración del cliente:

[Interface] PrivateKey = # private key of the WireGuard client Address = # internal IP address of the WireGuard client, for example 10.0.0.2/32 DNS = 1.1.1.1, 1.0.0.1 [Peer] PublicKey = # public key of the WireGuard server AllowedIPs = # 0.0.0.0/0 for a full tunnel, or 10.0.0.0/24 for a split tunnel Endpoint = # public IP address and port of the WireGuard server PersistentKeepalive = 25

El Endpoint debe ser la dirección IP pública real del servidor junto con el puerto establecido en el ListenPort del servidor, no la dirección interna del túnel. Para obtener ayuda sobre cómo elegir el valor de AllowedIPs, consulte la sección "Entender AllowedIPs" más abajo.

Las líneas DNS y PersistentKeepalive son opcionales. DNS establece los servidores DNS que se utilizan mientras el túnel está activo, lo que evita problemas de resolución de nombres tras la conexión. Puede utilizar resolutores públicos como 1.1.1.1, 1.0.0.1 u 8.8.8.8, 8.8.4.4, o el propio servidor DNS de la red VPN. PersistentKeepalive = 25 envía un pequeño paquete cada 25 segundos y ayuda a mantener la conexión abierta cuando el cliente está detrás de NAT.

Copie las claves y el Endpoint con mucho cuidado. Una clave mal escrita o un Endpoint incorrecto es la causa más común de que un túnel no logre conectarse.

Añadir el cliente al servidor

Abra de nuevo la configuración del servidor y añada una sección [Peer] para el cliente, utilizando la clave pública del cliente del paso anterior.

[Peer] PublicKey = # public key of the WireGuard client AllowedIPs = # internal IP address of the client

En la configuración del servidor, AllowedIPs tiene dos funciones. Indica al servidor qué dirección del túnel pertenece a este cliente y actúa como una lista de enrutamiento: cualquier paquete dirigido a esos rangos se cifra y se envía a este peer. Para un único cliente, esta es su dirección del túnel, por ejemplo 10.0.0.2/32. Si el cliente también debe hacer accesible una red local a través del túnel, añada aquí también esa subred, por ejemplo 10.0.0.2/32, 192.168.1.0/24. Repita este paso para cada cliente adicional.

Configuración del Firewall de Windows en el servidor

El servidor debe aceptar el tráfico WireGuard entrante en su puerto UDP. Abra Firewall de Windows Defender con seguridad avanzada, seleccione Reglas de entrada y haga clic en Nueva regla. Elija Puerto y haga clic en Siguiente. Seleccione UDP, introduzca el puerto de WireGuard, por ejemplo 51820, y haga clic en Siguiente. Si utiliza más de un puerto, indíquelos separados por comas, por ejemplo 51820, 51821. Seleccione Permitir la conexión y haga clic en Siguiente. Seleccione los perfiles a los que se aplica la regla. Si el servidor está alojado en un centro de datos, normalmente basta con el perfil Público; de lo contrario, deje seleccionados los perfiles Dominio, Privado y Público. Haga clic en Siguiente, asigne a la regla un nombre claro como WireGuard UDP 51820 y haga clic en Finalizar.

Esta regla de entrada solo es necesaria en el servidor, porque el servidor es el lado que recibe las conexiones entrantes. En un VPS, asegúrese también de que su proveedor de alojamiento permita el tráfico UDP entrante en este puerto a nivel de red, no solo en el Firewall de Windows.

Exportación e implementación de las configuraciones

Cuando ambas configuraciones estén listas, haga clic en Export all tunnels to zip, elija una ubicación y guarde.

Abra el archivo comprimido para encontrar los archivos de configuración de todos los túneles. Coloque la configuración del servidor en el servidor y entregue a cada cliente su propio archivo de configuración. Si el equipo contiene muchos túneles, también puede exportar un único túnel desde su menú contextual. Exportar a un archivo zip es práctico cuando ambos túneles se crearon en el mismo equipo, como en esta guía. Si crea cada configuración directamente en su propio host, no es necesario exportar y puede copiar el archivo de configuración a mano.

En el servidor, seleccione la configuración del servidor y haga clic en Activar.

En el cliente, haga clic en Add Tunnel, seleccione el archivo de configuración del cliente y ábralo.

A continuación, haga clic en Activar.

El primer cliente ya está configurado. Añada más clientes de la misma manera: cree un nuevo túnel vacío para cada cliente y añada a la configuración del servidor una sección [Peer] correspondiente con la clave pública y la dirección del túnel de ese cliente, como se describe en "Añadir el cliente al servidor".

Warning: Si configura WireGuard en un servidor remoto a través de una sesión RDP, lea la sección "Entender AllowedIPs" antes de activar un túnel que enrute todo el tráfico. Una configuración con AllowedIPs = 0.0.0.0/0 puede redirigir el propio tráfico del servidor al túnel y cortar su conexión RDP.

Verificación de la conexión

Tras activar el túnel, Windows puede mostrar el adaptador de WireGuard como "Sin acceso a la red" o "Sin acceso a Internet" en el Centro de redes y recursos compartidos. Este es un comportamiento esperado, porque Windows no trata los adaptadores de túnel VPN como conexiones de Internet estándar, y no afecta al túnel. Windows determina este estado mediante su comprobación de conectividad, que sondea determinadas URL de Microsoft, por lo que la advertencia también puede aparecer si esos sondeos están bloqueados o no los resuelve su DNS, incluso cuando el túnel funciona.

Para confirmar que el túnel funciona, compruebe su estado en el cliente WireGuard. Un túnel activo muestra el estado Activo junto con los contadores de transferencia de datos. Si los contadores aumentan, el túnel está transmitiendo tráfico.

En el servidor también puede confirmar que WireGuard está escuchando en su puerto UDP mientras el túnel está activo:

netstat -ano | findstr 51820

En PowerShell el equivalente es:

Get-NetUDPEndpoint -LocalPort 51820

Sustituya 51820 por su puerto de WireGuard. Si no se devuelve nada, el túnel no está activo o el puerto difiere del establecido en la configuración del servidor.

A continuación, abra el Símbolo del sistema y haga ping a la dirección interna del túnel del servidor:

ping 10.0.0.1

Sustituya 10.0.0.1 por la IP interna real que estableció para el servidor. Las respuestas confirman que el túnel funciona.

Si el cliente utiliza AllowedIPs = 0.0.0.0/0, también puede confirmar que el tráfico se enruta a través del túnel:

tracert 8.8.8.8

El primer salto debe ser la dirección IP interna del servidor WireGuard.

Comprobación del handshake de WireGuard

El handshake es el indicador más útil al diagnosticar una conexión WireGuard. En la aplicación WireGuard, abra el túnel y observe el campo Latest handshake. En un túnel que funciona, el handshake aparece a los pocos segundos de la activación y luego se actualiza periódicamente mientras se transfieren datos. Si el túnel está inactivo, puede pasar algún tiempo entre handshakes, por lo que una breve pausa es normal. Si el campo permanece vacío, los peers no pueden alcanzarse entre sí, lo que suele apuntar a un Endpoint incorrecto, un puerto UDP cerrado o claves que no coinciden.

También puede comprobar el handshake desde la línea de comandos con la herramienta wg que se incluye con WireGuard:

wg show

La salida muestra cada peer junto con la hora de su último handshake y sus contadores de transferencia.

Entender AllowedIPs

El valor de AllowedIPs en la configuración del cliente decide qué tráfico se envía a través del túnel. En resumen, en el cliente AllowedIPs establece qué paquetes se envían al túnel, mientras que en el servidor establece qué paquetes se aceptan de un cliente determinado y a dónde se enrutan.

AllowedIPs = 0.0.0.0/0 enruta todo el tráfico a través del túnel, incluida la navegación normal por Internet. Utilícelo cuando desee una protección total del tráfico. Para que ese tráfico llegue a Internet, el servidor debe traducirlo. Consulte "Configuración de NAT en el servidor para el tunelizado completo" más abajo.

AllowedIPs = 10.0.0.0/24 enruta únicamente el tráfico de la red interna a través del túnel, mientras que el tráfico normal de Internet sigue utilizando la conexión habitual. Utilícelo cuando solo necesite acceder a recursos específicos de la red remota.

Puede indicar varias subredes separadas por comas, por ejemplo AllowedIPs = 10.0.0.0/24, 192.168.1.0/24.

Tip: La opción Block untunneled traffic (kill-switch) del editor del túnel surte pleno efecto con AllowedIPs = 0.0.0.0/0. Bloquea todo lo que circularía fuera del túnel, lo que también bloquea la red local. Si necesita acceder a impresoras u otros dispositivos de la LAN, deje el kill-switch desactivado.
Warning: Establecer AllowedIPs = 0.0.0.0/0 envía todas las conexiones a través del túnel. Si lo aplica en un servidor remoto que administra mediante RDP, la sesión RDP puede cortarse en el momento en que el túnel se activa, porque el tráfico del servidor se redirige. En un servidor al que se accede por RDP, enrute solo las subredes que necesite y haga pruebas con un valor de AllowedIPs reducido antes de cambiar a 0.0.0.0/0.

Configuración de NAT en el servidor para el tunelizado completo

Si los clientes utilizan AllowedIPs = 0.0.0.0/0 y desea que su tráfico llegue realmente a Internet a través del servidor, el servidor debe traducir las direcciones internas de WireGuard a su propia dirección externa. En Windows esto se hace con el comando New-NetNat, no con los scripts PostUp y PostDown que se utilizan en Linux.

Abra PowerShell como administrador en el servidor y ejecute lo siguiente, utilizando la subred del túnel que asignó al servidor:

New-NetNat -Name WireGuardNAT -InternalIPInterfaceAddressPrefix 10.0.0.0/24

Sustituya 10.0.0.0/24 por su subred del túnel y asegúrese de que el prefijo abarque todas las direcciones de cliente que asigne. Un cliente fuera de este rango, por ejemplo 10.0.1.2, no quedaría cubierto por esta regla. Puede revisar las reglas activas en cualquier momento:

Get-NetNat

Para eliminar la regla NAT más adelante, ejecute:

Remove-NetNat -Name WireGuardNAT

Si los clientes se conectan y el handshake se realiza correctamente, pero su tráfico de Internet sigue sin pasar por el servidor, active el reenvío de IP en las interfaces implicadas en el enrutamiento y vuelva a probar. La forma exacta depende de la versión de Windows, por ejemplo:

Set-NetIPInterface -InterfaceAlias "Ethernet" -Forwarding Enabled

Aplíquelo a la interfaz externa que transporta el tráfico de Internet y a la interfaz de WireGuard, utilizando sus nombres reales obtenidos con Get-NetIPInterface.

Info: New-NetNat requiere Windows 10, Windows 11 o Windows Server 2016 y posteriores, y en algunos sistemas necesita que la característica Hyper-V esté habilitada, aunque no utilice Hyper-V para otra cosa. En algunos planes de VPS no se puede habilitar Hyper-V, lo que bloquea este método. Si New-NetNat por sí solo es suficiente o si además debe habilitarse el reenvío de IP puede depender de la versión de Windows, así que confírmelo en su servidor cuando el tunelizado completo no funcione.

Solución de problemas

El túnel está activo pero no hay conexión con el servidor. Compruebe que el puerto UDP de WireGuard, por ejemplo 51820, está abierto en el firewall del servidor. Confirme que las claves públicas se copiaron correctamente entre las configuraciones del servidor y del cliente. Asegúrese de que el Endpoint de la configuración del cliente apunta a la dirección IP pública real del servidor, no a la dirección interna del túnel.

El DNS no funciona tras conectarse. Añada un servidor DNS a la sección interface del cliente:

[Interface] PrivateKey = ... Address = ... DNS = 1.1.1.1, 1.0.0.1

Los contadores de paquetes no aumentan. El túnel no está transmitiendo datos. Compruebe que AllowedIPs está configurado correctamente en ambos lados, que las direcciones internas de WireGuard no entran en conflicto con la red local existente y que el ListenPort no está ya en uso por otra aplicación.

Necesita más detalles para diagnosticar un problema. Abra el túnel en la aplicación WireGuard y consulte la pestaña Log, que registra los handshakes, errores y eventos de conexión a medida que se producen. Desde ahí puede exportar el registro si necesita compartirlo.

Inicio automático de WireGuard tras reiniciar el servidor

Para mantener el túnel en funcionamiento tras los reinicios, instálelo como servicio de Windows. Cuando un túnel se instala como servicio, se inicia automáticamente tras un reinicio. Abra el Símbolo del sistema o PowerShell como administrador y ejecute lo siguiente, utilizando la ruta a su archivo de configuración del servidor:

wireguard /installtunnelservice "C:\Program Files\WireGuard\wg_server.conf"

Tras la instalación, el túnel aparece en la lista de Servicios de Windows como WireGuard Manager, con el estado En ejecución y el tipo de inicio Automático, lo que confirma que se iniciará por sí solo tras un reinicio.

Ejecute este comando solo una vez, no en cada inicio. Activar el túnel desde la aplicación WireGuard normalmente instala el mismo servicio, por lo que en muchos casos basta con activarlo una vez. Para eliminar el servicio más adelante, utilice el nombre del túnel, que es el nombre del archivo de configuración sin la extensión .conf:

wireguard /uninstalltunnelservice wg_server

Para reiniciar el servicio, por ejemplo tras editar la configuración, ejecute el comando de desinstalación seguido del comando de instalación de nuevo.

Info: Como el túnel se ejecuta como servicio, no es necesaria una tarea independiente en el Programador de tareas.

Reinicie el servidor y confirme que el túnel se inicia por sí solo.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA