Назад | Перейти на главную страницу

Устройство обратной петли не настроено при загрузке

Мои знания о сетевых интерфейсах в Linux в лучшем случае ограничены, поэтому я надеялся, что кто-то поможет мне найти лучшее решение проблемы, которую я случайно вызвал.

После загрузки устройство обратной связи на моей рабочей станции не существует. Вещи, для которых требуется адрес обратной связи (например, запуск наборов тестов JUnit в Eclipse), работают неправильно. Однако до недавнего времени все было в порядке, вскоре после того, как я возился с iptables для перенаправления порта 80 на порт 8080, так что, вероятно, это то, что я сделал, но я не знаю, как это исправить, и пока весь поиск в Google не нашел никаких указателей (я, вероятно, не знаю правильных условий поиска ...)

Во-первых, содержание /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

Теперь, после загрузки моей машины:

$ 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 

Если я сбегу ifconfig lo 127.0.0.1, то все в порядке и вывод ifconfig изменения к:

$ 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)

Итак, может ли кто-нибудь помочь мне выяснить, что я сделал, чтобы сломать свой адрес обратной связи?

Редактировать 0: Содержание /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

Крис @ ПК: ~ $ 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         

Крис @ ПК: ~ $ 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         

Крис @ ПК: ~ $ 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   

Редактировать 1: Комментирование строк до и после завершения для eth0 в моем /etc/network/interfaces похоже, устраняет проблему.

Мой адрес обратной связи был правильно настроен во время загрузки после изменения /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

Эти 2 строки предназначены для загрузки и выгрузки правил iptables, когда интерфейс включен и отключен. Я читал, что это лучший способ настройки брандмауэра в Debian, чем загрузка всех правил во время загрузки.

Содержание /etc/iptables-flush-all является:

Крис @ ПК: ~ $ sudo cat /etc/iptables-flush-all

#!/bin/sh

iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
iptables -t filter --flush

В моем случае речь шла о правильной настройке / etc / hosts.

Получите свое имя хоста с помощью команды имя хоста и установите / etc / hosts следующим образом:

127.0.0.1       localhost
127.0.1.1       HOSTNAME

Работает ли он без загрузки брандмауэра?

Кстати, ifconfig устарел; лучше всего использовать "ip" для всего, включая диагностику. Не то чтобы я думаю, что это вообще связано с вашей проблемой.

В моем случае это было https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739251 ... У меня есть iptables-restore в предустановке lo, и он включает -A INPUT -i! lo -d 127.0.0.0/8 -j reject, который теперь является устаревшим синтаксисом ...

Итак, если у вас есть строка вроде

предварительная установка iptables-restore /etc/iptables.up.rules

в / etc / network / interfaces проверьте, что правила в порядке.

В конкретном случае ошибки 739251 замените

-A INPUT -i! lo -d 127.0.0.0/8 -j отклонить

с участием

-ВХОД! -i lo -d 127.0.0.0/8 -j отклонить