Utilizaremos el dnsmasq
paquete para este propósito porque es un servidor combinado de DHCP y DNS y también es fácil de configurar.
Si desea algo un poco más 'pesado', puede usar los
paquetes isc-dhcp-server
y bind9
para DHCP y DNS respectivamente, pero para nuestros propósitos, dnsmasq
funciona bien.
sudo apt-get install dnsmasq
Necesitamos configurar interfaces. Asignaremos una dirección IP estática a la
eth0
que se utilizará como puerta de enlace. Abra el archivo de interfaces.
sudo nano /etc/network/interfaces
Edite la eth0
sección así:
allow-hotplug eth0
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
A continuación, lo configuraremos dnsmasq
. El dnsmasq
archivo de configuración enviado contiene mucha información sobre cómo usarlo. Por lo tanto, aconsejaré moverlo y crear uno nuevo.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
Pegue lo siguiente en el nuevo archivo
interface=eth0 # Use interface eth0
listen-address=192.168.2.1 # listen on
# Bind to the interface to make sure we aren't sending things
# elsewhere
bind-interfaces
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
# Never forward addresses in the non-routed address spaces.
bogus-priv
# Assign IP addresses between 192.168.2.2 and 192.168.2.100 with a
# 12 hour lease time
dhcp-range=192.168.2.2,192.168.2.100,12h
Edite el /etc/sysctl.conf
archivo para habilitar el reenvío de paquetes
sudo nano /etc/sysctl.conf
Elimine #
desde el principio de la línea que contiene
net.ipv4.ip_forward=1
Esto permitirá el reenvío de paquetes en el próximo reinicio. Pero si quieres probarlo ahora mismo sin reiniciar, hazlo.
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
También necesitamos compartir la conexión a Internet de RPi con los dispositivos conectados a través de Wi-Fi. Configuraremos un NAT entre eth0
y
wlan0
:
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
Sin embargo, necesitamos que estas reglas se apliquen cada vez que reiniciamos el Pi, por lo tanto, ejecute sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
para guardar las reglas en el archivo /etc/iptables.ipv4.nat
. Ahora necesitamos ejecutar esto después de cada reinicio, así que abra el /etc/rc.local
archivo con
sudo nano /etc/rc.local
y justo encima de la línea exit 0
, agregue la siguiente línea:
iptables-restore < /etc/iptables.ipv4.nat
¡Y eso es todo! Ahora solo reinicie su RPi y podrá acceder a Internet
sudo reboot
La configuración anterior no funcionará en la versión más nueva de Raspbian. Entonces, he creado un script para esto que lo hace posible con menos dolor.
Asegúrese de haber proporcionado la ruta completa al archivo. Y tu estas listo. Ahora reinicie para ver los cambios