No logro compartir Wifi por el puerto Ethernet [SOLUCIONADO]

Cómo Hacer que Linux Comparta la Conexión Wi-Fi a través de Ethernet

Configuración de Red en Linux: Compartir Internet por Cable

Compartir la conexión a Internet desde un dispositivo con Linux a otro por medio de un cable Ethernet puede parecer una tarea compleja, especialmente si solemos depender de interfaces gráficas y la documentación existente no es clara o está dispersa. A menudo, se presentan situaciones donde necesitamos conectar un dispositivo que no tiene Wi-Fi, y contar con la habilidad de compartir la conexión de nuestro ordenador con Linux será de gran ayuda.

Este artículo detalla los pasos necesarios para convertir tu sistema Linux en un puente de red que comparte la conexión Wi-Fi por medio de un puerto Ethernet, proporcionando Internet a otro dispositivo.

Configuración del Sistema en el Host Linux

Para comenzar, se requiere ajustar la configuración de red del sistema anfitrión que proporcionará la conexión. Las modernas distribuciones de Linux ofrecen NetworkManager, una herramienta que simplifica la administración de redes. Sin embargo, para este propósito, será necesario realizar configuraciones más manualmente.

Determinar las Interfaces de Red

Inicialmente, es imperativo identificar correctamente las interfaces de red de tu ordenador. Para listar las interfaces disponibles, utiliza el siguiente comando en la terminal:

ip link show

Este comando mostrará todas las interfaces de red. Por ejemplo, una interfaz Wi-Fi típicamente se denomina `wlan0` o `wlp2s0`, mientras que una interfaz Ethernet podría ser `eth0` o `enp3s0`.

Configurar IP Estática en la Interfaz Ethernet

El siguiente paso es configurar una dirección IP estática en la interfaz Ethernet. Esto creará una subred local entre tu computadora y el dispositivo al que deseas proporcionar acceso a Internet. Puedes hacer esto editando el archivo de configuración correspondiente a tu distribución o a través de comandos. Un ejemplo de cómo asignar una IP estática usando `nmcli`, la línea de comandos de NetworkManager, es el siguiente:

sudo nmcli con mod enp3s0 ipv4.addresses 192.168.2.1/24 ipv4.method manual
sudo nmcli con up enp3s0

En este ejemplo, se asigna la dirección IP `192.168.2.1` a la interfaz `enp3s0`. La mascara `/24` representa la subred.

Habilitar el Reenvío de Paquetes

Para que las solicitudes de Internet del segundo dispositivo se enruten correctamente, es necesario activar el reenvío de paquetes en el kernel. Esto se hace modificando el archivo `/etc/sysctl.conf` y agregando la siguiente línea:

net.ipv4.ip_forward=1

Después de guardar el archivo, activa los cambios con el comando:

sudo sysctl -p

Establecer Reglas de NAT con iptables

El siguiente paso consiste en configurar reglas NAT (Network Address Translation) utilizando `iptables`. Estas reglas permitirán que los paquetes de datos del segundo dispositivo se traduzcan correctamente para que puedan atravesar la conexión Wi-Fi. El comando para hacer esto podría ser:

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Este comando agrega una regla al `POSTROUTING` chain de `nat` table, especificando que todos los paquetes salientes por la interfaz Wi-Fi (`wlan0`) aplicarán MASQUERADE, que permite que las direcciones IP se manejen de manera que paquetes procedentes de diferentes dispositivos parezcan provenir del mismo dispositivo.

Configuración del Dispositivo Cliente

Por el lado del dispositivo que recibirá la conexión a Internet, se necesitará establecer una dirección IP estática dentro de la misma subred de la interfaz Ethernet del sistema anfitrión, y configurar la puerta de enlace predeterminada para apuntar a la dirección IP del host Linux.

El comando para configurar una IP estática en el dispositivo cliente (reemplazando `eth0` con el nombre correspondiente a tu interfaz Ethernet en el dispositivo cliente) podría ser:

sudo nmcli con mod eth0 ipv4.addresses 192.168.2.2/24 ipv4.gateway 192.168.2.1 ipv4.method manual
sudo nmcli con up eth0

En este caso, la IP `192.168.2.2` es asignada al dispositivo cliente, con `192.168.2.1` siendo la dirección del host Linux que le servirá como puerta de enlace.

Automatizando el Proceso

Para quienes resulte tedioso ingresar estos comandos cada vez que deseen compartir su conexión, será útil crear scripts para automatizar el proceso.

Un script bash básico para configurar el host podría ser:

#!/bin/bash

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo nmcli con mod enp3s0 ipv4.addresses 192.168.2.1/24 ipv4.method manual
sudo nmcli con up enp3s0

Guarda este script con el nombre que prefieras, hazlo ejecutable con `chmod +x nombredelscript.sh` y podrás ejecutarlo cada vez que necesites compartir Internet.

Manteniendo la Configuración Después de Reinicios

Para mantener los cambios después de un reinicio, tendrás que realizar alguna configuración adicional, ya sea habilitando el servicio de NetworkManager para conservar la configuración de IP o haciendo las reglas de iptables persistentes con la ayuda del paquete `iptables-persistent`.

Conclusión

Este artículo ha presentado una guía paso a paso para configurar un sistema Linux y compartir la conexión Wi-Fi a través de un puerto Ethernet, facilitando el acceso a Internet en dispositivos sin conectividad Wi-Fi. Con algo de práctica y comprensión de los comandos y conceptos involucrados, podrás convertir cualquier máquina Linux en un punto de acceso improvisado para otros dispositivos.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad