Skip to content

KabraX/ergo-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ergo-proxy

Hotspot manager para extender una conexión Router ISP Wireless desde una máquina Linux con una sola tarjeta WiFi.

La máquina actúa simultáneamente como cliente WiFi (conectada al Router ISP Wireless) y como punto de acceso, usando una interfaz virtual ap0 sobre la misma tarjeta física.


Requisitos

  • Linux (Ubuntu/Debian)
  • Una tarjeta WiFi que soporte modo AP (verificable con iw list)
  • hostapd, dnsmasq, iptables-persistent

Instalación

1. Instalar dependencias

sudo apt update && sudo apt install -y hostapd dnsmasq iptables-persistent

2. Crear interfaz virtual ap0

sudo iw dev wlp1s0 interface add ap0 type __ap
sudo ip link set ap0 up
sudo ip addr add 192.168.10.1/24 dev ap0

Sustituye wlp1s0 por el nombre de tu interfaz WiFi si es diferente.

3. Configurar hostapd

sudo nano /etc/hostapd/hostapd.conf

Contenido:

interface=ap0
driver=nl80211
ssid=NombreDeTuRed
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=1
wpa=2
wpa_passphrase=TuContraseña
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

ignore_broadcast_ssid=1 hace la red oculta. Cambia a 0 si quieres que sea visible.

Luego indica la ruta del config:

sudo nano /etc/default/hostapd

Cambia #DAEMON_CONF="" por:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

4. Configurar dnsmasq

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
sudo nano /etc/dnsmasq.conf

Contenido:

interface=ap0
dhcp-range=192.168.10.50,192.168.10.150,255.255.255.0,12h
dhcp-option=3,192.168.10.1
dhcp-option=6,8.8.8.8,8.8.4.4

5. Activar IP forwarding y NAT

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf

sudo iptables -t nat -A POSTROUTING -o wlp1s0 -j MASQUERADE
sudo iptables -A FORWARD -i ap0 -o wlp1s0 -j ACCEPT
sudo iptables -A FORWARD -i wlp1s0 -o ap0 -m state --state RELATED,ESTABLISHED -j ACCEPT

sudo netfilter-persistent save

6. Servicio para crear ap0 al arranque

sudo nano /etc/systemd/system/ap0-create.service

Contenido:

[Unit]
Description=Crear interfaz virtual ap0
Before=hostapd.service
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c '/usr/sbin/iw dev ap0 del 2>/dev/null; /usr/sbin/iw dev wlp1s0 interface add ap0 type __ap'
ExecStart=/usr/sbin/ip link set ap0 up
ExecStart=/usr/sbin/ip addr add 192.168.10.1/24 dev ap0
ExecStop=/usr/sbin/iw dev ap0 del

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable ap0-create
sudo systemctl start ap0-create

7. Drop-in para reasignar IP tras reinicio de hostapd

sudo mkdir -p /etc/systemd/system/hostapd.service.d
sudo nano /etc/systemd/system/hostapd.service.d/fix-ip.conf

Contenido:

[Service]
ExecStartPost=/bin/bash -c '/usr/sbin/ip addr add 192.168.10.1/24 dev ap0 2>/dev/null || true'
ExecStartPost=/bin/systemctl restart dnsmasq
sudo systemctl daemon-reload

8. Activar y arrancar servicios

sudo systemctl unmask hostapd
sudo systemctl enable hostapd dnsmasq
sudo systemctl start hostapd dnsmasq

9. Instalar el script de gestión

sudo cp ergoproxy /usr/local/bin/ergoproxy
sudo chmod +x /usr/local/bin/ergoproxy

10. Configurar aliases de dispositivos (opcional)

sudo nano /etc/hotspot-aliases

Formato:

aa:bb:cc:dd:ee:ff Nombre del dispositivo

Uso

ergoproxy start      # Inicia el hotspot
ergoproxy stop       # Detiene el hotspot
ergoproxy status     # Muestra estado y dispositivos conectados en tiempo real
ergoproxy alias <mac> <nombre>   # Añade o actualiza un alias

Notas

  • La red es oculta por defecto. Al conectar manualmente en Android activar la opción "Red oculta".
  • En Android, desactivar la MAC aleatoria por red para que los aliases sean estables: Ajustes → WiFi → (mantener pulsada la red) → Privacidad MAC → MAC del dispositivo.
  • Si el Router/ISP se cae y vuelve, internet se recupera solo sin intervención.
  • Los leases de dnsmasq duran 12h, por eso ergoproxy status puede mostrar dispositivos ya desconectados en el archivo de leases, pero el status en tiempo real usa iw dev ap0 station dump para mostrar solo los realmente conectados.

About

Hotspot manager para extender una conexión Router ISP Wireless desde una máquina Linux con una sola tarjeta WiFi.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages