Eu segui estas instruções para configurar uma conexão de internet compartilhada com o iptables. Especificamente, eu:
-
Adicionada uma interface de rede para minha segunda NIC em / etc / network / interfaces da seguinte forma:
auto eth1
iface eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
-
Insira exatamente essas regras:
sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
-
Salvar minhas regras em um arquivo e adicioná-lo ao /etc/rc.local
-
Enabled IP forwarding alterando o valor de / proc / sys / net / ipv4 / ip_forward para 1
-
Uncommented a linha net.ipv4.ip_forward=1
em /etc/sysctl.conf
-
Reiniciado
Agora, quando conecto meu laptop à interface eth1, obtenho um endereço IP e posso fazer ping no gateway, mas não consigo acessar nada além disso. ou seja, não posso fazer ping 8.8.8.8.
Caso seja relevante, minha outra interface é uma conexão PPPoE. Parece assim:
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up
provider dsl-provider
auto eth0
iface eth0 inet manual
Eu pensei que talvez o problema fosse que o dnsmasq não estava designando servidores de nomes, então eu adicionei dns-nameservers 8.8.8.8 8.8.8.4
em ambas as interfaces em / etc / network / interfaces. Isso não ajudou, então tentei adicionar os servidores de nomes ao /etc/resolv.conf. Não há ajuda lá. Finalmente, tentei adicioná-los ao /etc/dnsmasq.conf:
no-resolv
server=8.8.8.8
server=8.8.4.4
Isso também não ajudou. No entanto, não tenho certeza se meu problema realmente tem algo a ver com servidores de nomes ou se isso é apenas mais um caso de documentação desatualizada e sem valor.
Consegui fazer isso funcionar com o Network Manager em determinado momento, mas não gostei de como o Network Manager não me permitiu atribuir um intervalo de DHCP. Então, eu gostaria de evitar voltar a isso.