Usaremos o dnsmasq
pacote para esse fim, pois ele é um servidor DHCP e DNS combinado e também fácil de configurar.
Se você quiser algo um pouco mais pesado, você pode usar os
pacotes isc-dhcp-server
e bind9
para DHCP e DNS, respectivamente, mas, para nossos propósitos, dnsmasq
funciona muito bem.
sudo apt-get install dnsmasq
Precisamos configurar interfaces. Atribuiremos um endereço IP estático ao
eth0
qual será usado como gateway. Abra o arquivo de interfaces
sudo nano /etc/network/interfaces
Edite a eth0
seção assim:
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
Em seguida, vamos configurar dnsmasq
. O dnsmasq
arquivo de configuração enviado contém muitas informações sobre como usá-lo. Então, eu aconselho a movê-lo e criar um novo.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
Cole o seguinte no novo arquivo
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 o /etc/sysctl.conf
arquivo para ativar o encaminhamento de pacotes
sudo nano /etc/sysctl.conf
Remova o #
início da linha que contém
net.ipv4.ip_forward=1
Isto permitirá o encaminhamento de pacotes na próxima reinicialização. Mas se você quiser experimentá-lo agora mesmo sem reiniciar, faça isso.
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Também precisamos compartilhar a conexão de Internet da RPi com os dispositivos conectados por Wi-Fi. Vamos configurar um NAT entre eth0
e
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
No entanto, precisamos que essas regras sejam aplicadas toda vez que reiniciarmos o Pi, portanto, execute-o sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
para salvar as regras no arquivo /etc/iptables.ipv4.nat
. Agora, precisamos executar isso após cada reinicialização; portanto, abra o /etc/rc.local
arquivo com um
sudo nano /etc/rc.local
pouco acima da linha exit 0
e adicione a seguinte linha:
iptables-restore < /etc/iptables.ipv4.nat
E isso é tudo! Agora basta reiniciar o seu RPi e você poderá acessar a Internet
sudo reboot
A configuração acima não funcionará na versão mais recente do Raspbian. Então, eu criei um script para isso que torna possível com menos sofrimento.
Verifique se você forneceu o caminho completo para o arquivo. E você terminou. Agora reinicie para ver as alterações