Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # ----------------------------------------------------------
- # wifi_bridge.sh – Crea un puente NAT entre Wi-Fi y Ethernet
- # Compatible con Debian 12/13 (Bookworm/Trixie)
- # ----------------------------------------------------------
- # Interfaces
- WIFI_IF="wlp3s0"
- ETH_IF="enp0s25"
- # IP interna para la red compartida
- LAN_IP="192.168.137.1"
- LAN_NET="192.168.137.0/24"
- echo "[*] Configurando reenvío IPv4..."
- echo 1 | tee /proc/sys/net/ipv4/ip_forward >/dev/null
- # Aplicar persistencia en sysctl
- if ! grep -q '^net.ipv4.ip_forward=1' /etc/sysctl.conf; then
- echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
- fi
- echo "[*] Asignando IP local a $ETH_IF..."
- ip addr flush dev "$ETH_IF"
- ip addr add "$LAN_IP/24" dev "$ETH_IF"
- ip link set "$ETH_IF" up
- echo "[*] Limpiando reglas iptables anteriores..."
- iptables -t nat -F
- iptables -F
- iptables -X
- echo "[*] Configurando NAT y reenvío..."
- iptables -t nat -A POSTROUTING -o "$WIFI_IF" -j MASQUERADE
- iptables -A FORWARD -i "$ETH_IF" -o "$WIFI_IF" -j ACCEPT
- iptables -A FORWARD -i "$WIFI_IF" -o "$ETH_IF" -m state --state RELATED,ESTABLISHED -j ACCEPT
- # Guardar reglas
- if command -v iptables-save &>/dev/null; then
- mkdir -p /etc/iptables
- iptables-save > /etc/iptables/rules.v4
- echo "[*] Reglas iptables guardadas en /etc/iptables/rules.v4"
- else
- echo "[!] iptables-save no encontrado. Instala iptables-persistent si querés guardar reglas."
- fi
- # Opcional: iniciar dnsmasq si existe
- if command -v dnsmasq &>/dev/null; then
- echo "[*] Verificando configuración DHCP (dnsmasq)..."
- if ! grep -q "interface=$ETH_IF" /etc/dnsmasq.conf 2>/dev/null; then
- echo -e "\ninterface=$ETH_IF\ndhcp-range=192.168.137.10,192.168.137.100,12h" >> /etc/dnsmasq.conf
- fi
- systemctl restart dnsmasq
- echo "[*] dnsmasq configurado y reiniciado."
- else
- echo "[!] dnsmasq no instalado. Los clientes deberán usar IP manual o instalá dnsmasq."
- fi
- echo "[✔] Puente Wi-Fi ↔ Ethernet activado correctamente."
- echo " Wi-Fi: $WIFI_IF → Ethernet: $ETH_IF"
- echo " Red interna: $LAN_NET (Gateway: $LAN_IP)"
Advertisement
Add Comment
Please, Sign In to add comment