Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#!/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)"
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)