對 /etc/network/interfaces 的變更將被忽略並在重新啟動時恢復

對 /etc/network/interfaces 的變更將被忽略並在重新啟動時恢復

我想根據本教學設定虛擬機器:http://www.howtoforge.com/virtualization-with-kvm-on-a-debian-lenny-server

我已經到了必須修改介面文件的地步,它看起來像這樣:

auto lo
iface lo inet loopback

auto  eth0
iface eth0 inet static
      address   176.9.XXX.XXX
      netmask   255.255.255.255
      pointopoint   176.9.XXX.XXX
      gateway   176.9.XXX.XXX

並將其更改為這樣:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
    address   176.9.XXX.XXX
    netmask   255.255.255.255
    pointopoint   176.9.XXX.XXX
    gateway   176.9.XXX.XXX
    bridge_ports eth0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off

然後我做了:/etc/init.d/networking restart,但我的 ifconfig 輸出保持不變,當我重新啟動伺服器時,介面檔案看起來像以前一樣。為什麼會發生這種情況?

如果配置:

eth0      Link encap:Ethernet  HWaddr 00:18:51:XX:XX:XX
          inet addr:176.9.XXX.XXX  Bcast:176.9.XXX.XXX Mask:255.255.255.255
          inet6 addr: fe80::218:51ff:XXXX:XXXX/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4236 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4569 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:414559 (404.8 KiB)  TX bytes:501379 (489.6 KiB)

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:3406 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3406 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:319219 (311.7 KiB)  TX bytes:319219 (311.7 KiB)

答案1

並不是真正的答案,但有些觀察太長而無法發表評論,這可能會有所幫助...

首先,你有沒有bridge-utils安裝了?原因是,ifupdown負責解析/etc/network/interfaces和管理網路的套件只是一堆調用適當的較低層級工具(例如iproutedhcp3-client等等),因此,如果您缺少負責建立橋樑的繁重工作的工具,則ifupdown僅靠自己將無法建立橋樑。

其次,您應該利用其和腳本ifupdown形式提供的互動式內容,而不是「重新啟動網路」 :要測試 brindge 介面是否能夠啟動,您可以這樣做ifupifdown

# ifup br0

看看會發生什麼事。請諮詢適當的手冊頁


三、請停止使用

# /etc/init.d/<foo> <action>

並做

# service <foo> <action>

相反(自 Squeeze 以來可用)。這有很多優點:

  • 無論安裝哪個 init 系統,它都可以工作,也就是說,它甚至可以與 、 等一起工作,upstartsystemd每個openrc系統都提供自己的特定工具來控制服務。

    因此,使用service後可以輕鬆過渡到另一個 init 系統(systemd預設情況下 Jessie 會將您的系統過渡到),而不需要您快速重新學習如何管理您的服務。

  • 使用sysvinit(您目前正在使用的),它會在呼叫目標初始化腳本之前正確清理環境。舊的直接呼叫方法很容易受到呼叫腳本的 shell 狀態的影響。該service腳本確保它所呼叫的 init 腳本看到具有合理的$PATHumask、 工作目錄等的環境。

相關內容