AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1533984
Accepted
JBruyet
JBruyet
Asked: 2024-11-27 04:41:13 +0800 CST2024-11-27 04:41:13 +0800 CST 2024-11-27 04:41:13 +0800 CST

Não consigo mais me conectar à internet usando iptables

  • 772

Boa tarde. Aqui está um diagrama da minha rede doméstica:

            Internal
           Interface   
x.x.1.14    x.x.1.99                     
---------   ---------   ---------   ----------
|       |   |       |   |       |   |        |
| Comp1 |---|Rasp Pi|---|Router |---|Internet|
|       |   |       | | |       |   |        |
---------   --------- | ---------   ----------
            x.x.0.123 |   x.x.0.1      8.8.8.8
            External  |
           Interface  | ---------
                      | |       |
                      |-| Comp2 |
                        |       |
                        ---------
                        x.x.0.135

Conectei duas redes em casa (uma WiFi e uma com fio) executando iptables no Ubuntu 24.04.1 LTS em um Raspberry Pi. Do Comp1, consegui fazer ping no Comp2 e na internet, mas então fiz algo tolo no meu Pi (alterei a senha de root e joguei fora o post-it) e tive que refazer meu Pi. Refiz o Pi, com as mesmas configurações de rede, e agora posso fazer ping no Comp2 do Comp1 novamente, mas não na internet. Tenho uma infinidade de notas que digitei ao tentar fazer o Pi funcionar pela primeira vez, mas nada que fiz até agora me deu conectividade com a internet. Aqui está uma lista do que tentei até agora:

Não

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

Não

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

Não

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

Não

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

Não

sudo iptables -I FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
sudo iptables -I FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT

Não

sudo iptables -A FORWARD -i 192.168.0.123 -o 192.168.1.99 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i 192.168.1.99 -o 192.168.0.123 -j ACCEPT

Não

sudo iptables -I FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
sudo iptables -I FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT

Não

sudo iptables -I FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
sudo iptables -I FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT

Também adicionei a rota para a segunda rede na caixa Linux:

$ sudo ip route add 192.168.0.0/24 via 192.168.1.99

Eu tentei os flip-flops porque na primeira vez cometi um erro e inverti os rótulos de IP no que encontrei na internet e funcionou. ENTÃO, alguém consegue ver o que eu fiz errado ou o que estou esquecendo?

Obrigado,

João


e obrigado pela resposta rápida. Ok, aqui estão as informações:

Comp1 - Linux ens160 é 192.168.1.14

Pi - Linux eth0 é 192.168.1.99 wlan0 é 192.168.0.123

Comp2 - Windows 192.168.0.135

iptables-salvar

# Generated by iptables-save v1.8.10 (nf_tables) on Tue Nov 26 12:54:31 2024
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [204777:66752196]
:OUTPUT ACCEPT [0:0]
-A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
COMMIT
# Completed on Tue Nov 26 12:54:31 2024
# Generated by iptables-save v1.8.10 (nf_tables) on Tue Nov 26 12:54:31 2024
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [117749:8274546]
-A POSTROUTING -o 192.168.0.123 -j MASQUERADE
-A POSTROUTING -o 192.168.0.123 -j MASQUERADE
COMMIT
# Completed on Tue Nov 26 12:54:31 2024

João


E a saída de sysctl -p:

jfxb@Pi5:~$ sudo sysctl -p
[sudo] password for jfxb:
net.ipv4.ip_forward = 1
jfxb@Pi5:~$
networking
  • 1 1 respostas
  • 73 Views

1 respostas

  • Voted
  1. Best Answer
    mpboden
    2024-12-04T14:51:07+08:002024-12-04T14:51:07+08:00

    Você está inserindo incorretamente a regra iptables para a tabela nat . Em todos os seus exemplos, você está usando um endereço IP em vez de um nome de interface para a -oopção.

    Olhando a página de manual do iptables(8) :

    [!] -o, --out-interface name
                  Name of an interface via which a packet is going to be sent (for  packets  entering
                  the  FORWARD, OUTPUT and POSTROUTING chains).  When the "!" argument is used before
                  the interface name, the sense is inverted.  If the interface name ends  in  a  "+",
                  then  any  interface  which  begins  with  this name will match.  If this option is
                  omitted, any interface name will match.
    

    Seu primeiro exemplo foi inserido incorretamente da seguinte forma:

    sudo iptables -t nat -A POSTROUTING -o 192.168.0.123 -j MASQUERADE
    

    Portanto, altere o endereço IP para um nome de interface. Para sua configuração, a interface conectada ao roteador com um endereço IP de 192.168.0.123é wlan0.

    sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
    

    De acordo com a saída iptables-saveque você forneceu em seu post, sua política padrão para as cadeias INPUT, OUTPUT e FORWARD é ACCEPT. Portanto, as regras FORWARD que você definiu são desnecessárias:

    -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT
    -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
    

    Você também tem duas regras incorretas na sua tabela nat :

    -A POSTROUTING -o 192.168.0.123 -j MASQUERADE
    -A POSTROUTING -o 192.168.0.123 -j MASQUERADE
    

    Então, antes de inserir a regra nat correta , limpe todas as cadeias:

    sudo iptables -F
    sudo iptables -F -t nat
    

    Para tornar suas regras do iptables persistentes em cada reinicialização, você precisará primeiro instalar iptables-persistent:

    sudo apt install iptables-persistent
    

    Em seguida, salve suas regras atuais:

    sudo sh -c "iptables-save > /etc/iptables/rules.v4"
    

    Por fim, parece que você já habilitou o encaminhamento de IP no kernel, mas vou adicioná-lo aqui para completar:

    sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
    
    • 2

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve