Meu conhecimento de interfaces de rede no Linux é, na melhor das hipóteses, limitado, então esperava que alguém pudesse me ajudar a descobrir a melhor solução para um problema que causei inadvertidamente.
Após a inicialização, o dispositivo de loopback na minha estação de trabalho parece não existir. Coisas que exigem o endereço de loopback (como executar conjuntos de testes JUnit no Eclipse) não funcionam corretamente. No entanto, costumava funcionar bem até recentemente, não muito depois de eu estar mexendo no iptables para encaminhar a porta 80 para a porta 8080, então provavelmente é algo que fiz, mas não tenho ideia de como consertar, e até agora, todas as pesquisas no Google não encontraram nenhuma indicação (provavelmente não conheço os termos de pesquisa corretos ...)
Em primeiro lugar, o conteúdo de /etc/network/interfaces
:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
pre-up iptables-restore /etc/iptables.conf
post-down /etc/iptables-flush-all
Agora, depois de inicializar minha máquina:
$ sudo ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:e8:25:90:5d
inet addr:10.33.1.106 Bcast:10.33.1.255 Mask:255.255.255.0
inet6 addr: fe80::224:e8ff:fe25:905d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:500239 errors:0 dropped:0 overruns:0 frame:0
TX packets:334565 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:617321176 (588.7 MiB) TX bytes:36019254 (34.3 MiB)
Interrupt:26 Base address:0x8000
Se eu executar ifconfig lo 127.0.0.1
, tudo estará bem e a saída será ifconfig
alterada para:
$ sudo ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:e8:25:90:5d
inet addr:10.33.1.106 Bcast:10.33.1.255 Mask:255.255.255.0
inet6 addr: fe80::224:e8ff:fe25:905d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:606221 errors:0 dropped:0 overruns:0 frame:0
TX packets:407173 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:767892736 (732.3 MiB) TX bytes:42051623 (40.1 MiB)
Interrupt:26 Base address:0x8000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:65 errors:0 dropped:0 overruns:0 frame:0
TX packets:65 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:35668 (34.8 KiB) TX bytes:35668 (34.8 KiB)
Então, alguém pode me ajudar a descobrir o que fiz para quebrar meu endereço de loopback?
Editar 0: Conteúdo de /etc/iptables.conf
:
chris@PC:~$ sudo cat /etc/iptables.conf
# Generated by iptables-save v1.4.8 on Thu Nov 10 17:01:44 2011
*nat
:PREROUTING ACCEPT [2:440]
:POSTROUTING ACCEPT [2:102]
:OUTPUT ACCEPT [1:58]
-A PREROUTING -d 127.0.0.1/32 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination :8080
-A OUTPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
COMMIT
# Completed on Thu Nov 10 17:01:44 2011
# Generated by iptables-save v1.4.8 on Thu Nov 10 17:01:44 2011
*mangle
:PREROUTING ACCEPT [4787:2521834]
:INPUT ACCEPT [4544:2507689]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4190:913164]
:POSTROUTING ACCEPT [4117:908160]
COMMIT
# Completed on Thu Nov 10 17:01:44 2011
# Generated by iptables-save v1.4.8 on Thu Nov 10 17:01:44 2011
*filter
:INPUT ACCEPT [2699:1514101]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2525:612477]
COMMIT
# Completed on Thu Nov 10 17:01:44 2011
cris@PC:~$sudo iptables -L -t filter
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
cris@PC:~$sudo iptables -L -t mangle
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
cris@PC:~$sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Editar 1: Comentar as linhas de pré-up e post-down eth0
em meu /etc/network/interfaces
parece eliminar o problema.
Meu endereço de loopback foi configurado corretamente durante a inicialização após mudar /etc/network/interfaces
para isto:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
#pre-up iptables-restore /etc/iptables.conf
#post-down /etc/iptables-flush-all
Estas 2 linhas têm como objetivo carregar e descarregar as regras do iptables quando a interface está habilitada e desabilitada. Eu li que esta é a melhor maneira de configurar o firewall no Debian do que carregar todas as regras na inicialização.
O conteúdo de /etc/iptables-flush-all
é:
cris@PC:~$sudo cat /etc/iptables-flush-all
#!/bin/sh
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
iptables -t filter --flush
Responder1
Funciona sem que seu firewall esteja carregado?
Aliás, "ifconfig" está obsoleto; é melhor usar "ip" para tudo, inclusive diagnósticos. Não que eu ache que isso esteja relacionado ao seu problema.
Responder2
No meu caso, foi uma questão de configuração adequada do /etc/hosts.
Obtenha seu nome de host com o comandonome de anfitriãoe configure o /etc/hosts desta forma:
127.0.0.1 host local 127.0.1.1 NOME DO HOST
Responder3
No meu caso foihttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739251 ... Eu tenho o iptables-restore no pré-up e inclui -A INPUT -i ! lo -d 127.0.0.0/8 -j rejeitar que agora é uma sintaxe obsoleta ...
Então, se você tiver uma linha como
pré-up iptables-restore /etc/iptables.up.rules
em /etc/network/interfaces, verifique se as regras estão corretas.
No caso específico do bug 739251, substitua
-A ENTRADA -eu ! lo -d 127.0.0.0/8 -j rejeitar
com
-UMA ENTRADA! -i lo -d 127.0.0.0/8 -j rejeitar