启动时未配置环回设备

启动时未配置环回设备

我对 Linux 网络接口的了解非常有限,所以我希望有人能帮助我找到解决我无意中造成的问题的最佳方法。

启动后,我的工作站上的环回设备似乎不存在。需要环回地址的操作(例如在 Eclipse 中运行 JUnit 测试套件)无法正常工作。但是,直到最近,在我摆弄 iptables 将端口 80 转发到端口 8080 之后不久,它才恢复正常,所以这可能是我做了什么,但我不知道如何修复它,到目前为止,所有谷歌搜索都没有找到任何指针(我可能不知道正确的搜索词......)

首先,内容/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

克里斯@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         

克里斯@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         

克里斯@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   

编辑1:注释掉eth0我的pre-up 和 post-down 行/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

这两行用于在启用和禁用接口时加载和卸载 iptables 规则。我读到,这是在 Debian 中配置防火墙的更好方法,而不是在启动时加载所有规则。

的内容/etc/iptables-flush-all为:

克里斯@PC:~$sudo cat /etc/iptables-flush-all

#!/bin/sh

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

答案1

如果防火墙没有加载,它还能工作吗?

顺便说一句,“ifconfig”已弃用;最好使用“ip”进行所有操作,包括诊断。我认为这与您的问题完全无关。

答案2

就我而言,这是一个正确配置 /etc/hosts 的问题。

使用命令获取您的主机名主机名并按如下方式设置 /etc/hosts:

127.0.0.1 本地主机
127.0.1.1 主机名

答案3

就我而言https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739251 ...我在 lo 预备中获得了 iptables-restore,它包含 -A INPUT -i ! lo -d 127.0.0.0/8 -j rejection,这是现在已弃用的语法...

所以如果你有这样的行

准备 iptables-restore /etc/iptables.up.rules

在 /etc/network/interfaces 中,检查规则是否正确。

对于 739251 错误的具体情况,请替换

-A 输入-i !lo -d 127.0.0.0/8 -j 拒绝

-A 输入!-i lo -d 127.0.0.0/8 -j 拒绝

相关内容