啟動時未配置環回設備

啟動時未配置環回設備

我對 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 ……我在 pre-up 中有 iptables-restore ,它包括 -A INPUT -i ! lo -d 127.0.0.0/8 -j拒絕現在已棄用的語法...

所以,如果你有這樣的行

準備 iptables-restore /etc/iptables.up.rules

在 /etc/network/interfaces 中,檢查規則是否正確。

在 739251 bug 的具體情況下,替換

-A 輸入 -i ! lo -d 127.0.0.0/8 -j 拒絕

- 輸入! -i lo -d 127.0.0.0/8 -j 拒絕

相關內容