![Изменения в /etc/network/interfaces игнорируются и восстанавливаются при перезагрузке](https://rvso.com/image/1428763/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B2%20%2Fetc%2Fnetwork%2Finterfaces%20%D0%B8%D0%B3%D0%BD%D0%BE%D1%80%D0%B8%D1%80%D1%83%D1%8E%D1%82%D1%81%D1%8F%20%D0%B8%20%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%B0%D0%B2%D0%BB%D0%B8%D0%B2%D0%B0%D1%8E%D1%82%D1%81%D1%8F%20%D0%BF%D1%80%D0%B8%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B5.png)
Я хотел настроить виртуальную машину по этой инструкции: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 остался прежним, и когда я перезагрузил свой сервер, файл интерфейса выглядит так же, как и раньше. Почему это происходит?
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
и управление вашими сетевыми подключениями, представляет собой просто набор скриптов оболочки, вызывающих соответствующие инструменты более низкого уровня (например,iproute
и т. д.) , dhcp3-client
поэтому, если у вас отсутствуют инструменты, которые отвечают за тяжелую работу по установке мостов, ifupdown
в одиночку вы не сможете установить мост.
Во-вторых, вместо «перезапуска сети» вам следовало бы использовать интерактивные возможности, предлагаемые ifupdown
в виде скриптов ifup
и ifdown
скриптов: чтобы проверить, может ли интерфейс моста запуститься, вы должны сделать следующее:
# ifup br0
и посмотрим, что произойдет. Пожалуйста, проконсультируйтесьсоответствующие страницы руководства.
В-третьих, пожалуйста, прекратите использовать
# /etc/init.d/<foo> <action>
и делай
# service <foo> <action>
вместо этого (доступно с Squeeze). Это имеет ряд преимуществ:
Он работает независимо от того, какая система инициализации установлена, то есть он работает даже с
upstart
,systemd
,openrc
и т. д., хотя каждая из этих систем предоставляет свои собственные инструменты для управления службами.Таким образом, использование
service
облегчит ваш переход на другую систему инициализации в дальнейшем (Джесси переведет вашу систему на , как этоsystemd
происходит по умолчанию), так как вам не придется быстро переучиваться, как управлять своими службами.- С
sysvinit
(тем, что вы сейчас используете) он должным образом очищает среду перед вызовом целевого сценария инициализации. Старый подход прямого вызова уязвим к влиянию состояния оболочки, вызвавшей сценарий. Скриптservice
гарантирует, что вызываемый им сценарий инициализации видит среду с разумным$PATH
,umask
, рабочим каталогом и т. д.