IP fija en WSL2
IP fija en WSL2 es uno de los mayores dolores de cabeza para los desarrolladores. Por suerte, hoy en día existen varias soluciones prácticas. Aquí te explico las mejores opciones, ordenadas de la más fácil a la más avanzada.
Opción 1: Modo Reflejado (Mirrored Mode) - La más fácil 🌟
Esta es la solución más moderna y sencilla. Hace que WSL2 use la misma IP que tu PC con Windows.
Pasos:
Abre tu editor de texto favorito como administrador y crea (o edita) el archivo:
C:\Users\TU_USUARIO\.wslconfigCopia y pega este contenido:
[wsl2] networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=trueReinicia WSL (abre PowerShell y ejecuta):
wsl --shutdownVuelve a abrir tu terminal WSL. ¡Ya está! Ahora la IP de tu WSL es la misma que la de tu PC con Windows.
Ventajas:
No necesitas scripts ni configuraciones complejas.
Funciona con cualquier versión moderna de Windows 11.
Requisitos: Windows 11 22H2 o superior.
Opción 2: Script Automático con PowerShell (el "doble IP") 🛠️
Este método es muy popular y consiste en añadir una IP fija adicional, sin eliminar la dinámica que ya tiene WSL2. Así tienes lo mejor de ambos mundos.
Paso 1: Crea el script
Crea un archivo llamado wsl2-static-ip.ps1 (puedes usar el Bloc de notas) y pega este contenido:
# Configura la IP fija que quieres (cámbiala si quieres)
$WSL_IP = "172.28.131.101"
$WIN_IP = "172.28.131.102"
# Elimina configuraciones IP existentes en el adaptador virtual
Get-NetAdapter -IncludeHidden 'vEthernet (WSL)' | Get-NetIPAddress | Remove-NetIPAddress -Confirm:$false
# Asigna la IP fija en Windows
New-NetIPAddress -IPAddress $WIN_IP -PrefixLength 24 -InterfaceAlias 'vEthernet (WSL)' -SkipAsSource $true
# Ejecuta comandos dentro de WSL para asignar la IP fija
wsl -d Ubuntu -u root ip addr add $WSL_IP/24 broadcast 172.28.131.255 dev eth0
wsl -d Ubuntu -u root ip link set eth0 upNota: Cambia
Ubuntupor el nombre de tu distribución si es diferente.
Paso 2: Ejecuta el script automáticamente al iniciar Windows
Guarda el script en una carpeta, por ejemplo:
C:\Scripts\wsl2-static-ip.ps1Abre el Programador de tareas de Windows.
Crea una nueva tarea:
Trigger: "Al iniciar sesión"
Acción: "Iniciar un programa"
Programa:
powershell.exeArgumentos:
-ExecutionPolicy Bypass -File "C:\Scripts\wsl2-static-ip.ps1"
¿Cómo funciona?
Este sistema asigna dos IPs: una dinámica para salir a Internet y una fija (la que tú eliges) para que tú siempre sepas cómo acceder a WSL2.
Opción 3: Puente (Bridge) con Hyper-V - La más profesional 🏗️
Si necesitas que tu WSL2 sea accesible desde toda la red local como si fuera un equipo más, esta es la opción.
Pasos:
Abre el Administrador de Hyper-V.
Crea un conmutador virtual externo (External Virtual Switch) que use tu tarjeta de red.
Crea o edita el archivo
.wslconfig:[wsl2] networkingMode=bridged vmSwitch="NOMBRE_DEL_SWITCH" ipv6=trueReinicia WSL con
wsl --shutdown.
Ahora, para que la IP no cambie: configura una IP fija en tu router para la MAC de WSL2 (asignación DHCP estática).
Comparativa rápida
| Método | Dificultad | ¿IP fija? | Acceso desde la red local |
|---|---|---|---|
| Modo reflejado | ⭐ Muy fácil | Usa la IP de Windows | Sí, con la IP de Windows |
| Script PowerShell | ⭐⭐ Fácil | Sí, IP propia fija | No directamente (solo desde Windows) |
| Puente (Bridge) | ⭐⭐⭐ Media | Sí (con DHCP del router) | Sí, como un equipo más |
Recomendación final
Si tienes Windows 11: ve directo a la Opción 1 (Modo reflejado). Es la más simple y funciona de maravilla.
Si usas Windows 10: la Opción 2 (Script PowerShell) es tu mejor aliada. Es la solución más probada y recomendada por la comunidad.
Si necesitas acceso desde otros dispositivos de la red: combina el Modo reflejado con abrir puertos en el firewall, o ve por la Opción 3 (Puente).
¡Elige la que mejor se adapte a tu flujo de trabajo y olvídate del problema de la IP cambiante.
**************************
WSL está diseñado para que compartir archivos entre Windows y Linux sea muy sencillo. La integración es tan directa que puedes ver y manipular los archivos de un sistema directamente desde el otro.
Aquí te explico cómo hacerlo en ambos sentidos.
📂 Desde WSL (Linux) hacia Windows
Desde tu terminal de WSL, puedes acceder a todas las unidades de Windows porque se montan automáticamente en la carpeta /mnt/.
Ver el contenido de tu disco C: Para listar los archivos de tu unidad C, usa el comando
ls:ls /mnt/c/Navegar a una carpeta específica: Para moverte a, por ejemplo, tu carpeta de "Documentos", usa
cd:cd /mnt/c/Users/TuUsuarioWindows/DocumentosRecuerda reemplazar
TuUsuarioWindowscon el nombre de tu usuario en Windows.Copiar un archivo de Windows a WSL: Una vez ubicado en la carpeta de Windows que te interesa, puedes usar el comando
cppara copiar un archivo a tu entorno de WSL. Por ejemplo, para copiarmi_archivo.txta tu carpeta de inicio en WSL:cp mi_archivo.txt /home/tu_usuario_wsl/(Reemplaza
tu_usuario_wslcon tu nombre de usuario en WSL).
🪟 Desde Windows hacia WSL (Linux)
Existen un par de métodos muy cómodos para hacer esto.
Usando el Explorador de Archivos de Windows (El más fácil): WSL expone sus archivos a través de una ruta de red especial.
Abre el Explorador de Archivos en Windows.
En la barra de direcciones, escribe
\\wsl$y presiona Enter.Verás una carpeta por cada distribución de Linux que tengas instalada (por ejemplo,
Ubuntu). Haz doble clic para entrar.Dentro, podrás navegar por todo el sistema de archivos de WSL. Ahora, puedes copiar y pegar archivos desde cualquier otra carpeta de Windows directamente en esta ventana, como si fuera una carpeta más de tu PC.
Copiar texto entre sistemas (Clipboard): Puedes usar el portapapeles para transferir texto entre ambos sistemas.
Comentarios
Publicar un comentario