Статический IP-адрес с NetworkManager?

25728
wullxz

Я просто хотел настроить статический IP-адрес для машины fedora 19 в моей локальной сети. Я привык к /etc/network/interfacesDebian, но этот файл здесь не существует.
Немного погуглив, я нашел небольшой учебник, в котором сказано отключить NetworkManager через systemctl и включить сеть. После этого можно настроить статический IP-адрес в файле с именем /etc/sysconfig/network-scripts/ifcfg-*interfacename*.

Вот моя первая проблема: я нашел файл с MAC-адресом моего интерфейса, который отображается как, ifconfigно имя после ifcfg- не совпадает с именем из ifconfig. Почему это так?

Моя вторая проблема связана с использованием NetworkManager.service или network.service. Я прочитал на форуме, что network.service по-прежнему включен по соображениям совместимости и может быть вскоре исключен. Если network.service скоро будет заменен NetworkManager.service, я не должен выбрать NetworkManager.service для настройки моих сетевых интерфейсов? Если да, то как мне это сделать с NetworkManager из оболочки?

Изменить:
Вот запрашиваемые результаты:

[root@bitch /]# ifconfig lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 97 bytes 12042 (11.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 97 bytes 12042 (11.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0  p3p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.178.11 netmask 255.255.255.0 broadcast 192.168.178.255 inet6 fe80::214:85ff:febc:1c63 prefixlen 64 scopeid 0x20<link> ether 00:14:85:bc:1c:63 txqueuelen 1000 (Ethernet) RX packets 134347 bytes 169988336 (162.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 78199 bytes 6595669 (6.2 MiB) TX errors 0 dropped 0 overruns 1 carrier 0 collisions 0  [root@bitch /]# ls -l /etc/sysconfig/network-scripts/ total 200 -rw-r--r--. 1 root root 437 Sep 15 02:05 ifcfg-enp2s5 -rw-r--r--. 1 root root 254 May 31 09:49 ifcfg-lo lrwxrwxrwx. 1 root root 24 Jun 27 19:12 ifdown -> ../../../usr/sbin/ifdown -rwxr-xr-x. 1 root root 627 May 31 09:49 ifdown-bnep -rwxr-xr-x. 1 root root 5553 May 31 09:49 ifdown-eth -rwxr-xr-x. 1 root root 781 May 31 09:49 ifdown-ippp -rwxr-xr-x. 1 root root 4141 May 31 09:49 ifdown-ipv6 lrwxrwxrwx. 1 root root 11 Jun 27 19:12 ifdown-isdn -> ifdown-ippp -rwxr-xr-x. 1 root root 1642 May 31 09:49 ifdown-post -rwxr-xr-x. 1 root root 1068 May 31 09:49 ifdown-ppp -rwxr-xr-x. 1 root root 837 May 31 09:49 ifdown-routes -rwxr-xr-x. 1 root root 1444 May 31 09:49 ifdown-sit -rwxr-xr-x. 1 root root 1462 May 31 09:49 ifdown-tunnel lrwxrwxrwx. 1 root root 22 Jun 27 19:12 ifup -> ../../../usr/sbin/ifup -rwxr-xr-x. 1 root root 12445 May 31 09:49 ifup-aliases -rwxr-xr-x. 1 root root 859 May 31 09:49 ifup-bnep -rwxr-xr-x. 1 root root 10234 May 31 09:49 ifup-eth -rwxr-xr-x. 1 root root 12033 May 31 09:49 ifup-ippp -rwxr-xr-x. 1 root root 10437 May 31 09:49 ifup-ipv6 -rwxr-xr-x. 1 root root 804 May 31 09:49 ifup-ipx lrwxrwxrwx. 1 root root 9 Jun 27 19:12 ifup-isdn -> ifup-ippp -rwxr-xr-x. 1 root root 642 May 31 09:49 ifup-plip -rwxr-xr-x. 1 root root 1043 May 31 09:49 ifup-plusb -rwxr-xr-x. 1 root root 2609 May 31 09:49 ifup-post -rwxr-xr-x. 1 root root 4154 May 31 09:49 ifup-ppp -rwxr-xr-x. 1 root root 1925 May 31 09:49 ifup-routes -rwxr-xr-x. 1 root root 3268 May 31 09:49 ifup-sit -rwxr-xr-x. 1 root root 2607 May 31 09:49 ifup-tunnel -rwxr-xr-x. 1 root root 3775 May 31 09:49 ifup-wireless -rwxr-xr-x. 1 root root 4623 May 31 09:49 init.ipv6-global -rw-r--r--. 1 root root 13836 May 31 09:49 network-functions -rw-r--r--. 1 root root 26134 May 31 09:49 network-functions-ipv6 

Содержимое / etc / sysconfig / network-scripts / ifcfg-enp2s5:

PEERROUTES="yes" IPV6INIT="yes" NAME="enp2s5" IPV6_PEERDNS="yes" DEFROUTE="yes" UUID="7622e20e-3f2a-4b5c-83d8-f4f6e22ed7ec" PEERDNS="yes" IPV4_FAILURE_FATAL="no" HWADDR="00:14:85:BC:1C:63" BOOTPROTO="static" IPV6_DEFROUTE="yes" IPV6_AUTOCONF="yes" IPV6_FAILURE_FATAL="no" TYPE="Ethernet" ONBOOT="yes" IPV6_PEERROUTES="yes" IPADDR=192.168.178.11 NETMASK=255.255.255.0 BROADCAST=192.168.178.255 NETWORK=192.168.178.0 GATEWAY=192.168.178.1 

Grepping dmesg для udevd:

[root@bitch network-scripts]# dmesg | grep udevd [ 0.788381] systemd-udevd[97]: starting version 204 [ 2.457296] systemd-udevd[322]: starting version 204 [ 3.110272] systemd-udevd[329]: renamed network interface eth0 to p3p1 
7
Можете ли вы опубликовать вывод следующих двух команд: 1) `ls / etc / sysconfig / network-scripts` 2)` ifconfig` Drew Chapin 11 лет назад 0
Я знаю, что вы сказали, что хотите сделать это из командной оболочки, но я опубликовал ответ, подробно описывающий, как это сделать с помощью графического интерфейса. Если вы опубликуете вывод двух команд, которые я упомянул в предыдущем комментарии, я пересмотрю свой ответ, чтобы помочь сделать это через командную оболочку. Drew Chapin 11 лет назад 0
Я опубликую их, всего на секунду. wullxz 11 лет назад 0
Я чувствую, что `p3p1` настроен как псевдоним, а` enp2s5` - настоящее имя. А как насчет вывода из `grep -e" NAME = \ | HWADDR = "/ etc / sysconfig / network-scripts / ifcfg-enp2s5`? Значение `NAME =` равно `enp2s5` или` p3p1`? Drew Chapin 11 лет назад 0
Имя переменной может быть `DEVICE` вместо` NAME` ... Drew Chapin 11 лет назад 0
Еще может помочь `dmesg | grep udevd` Drew Chapin 11 лет назад 0
Я снова отредактировал. «ИМЯ» в enp2s5 установлено в enp2s5. Здесь нет псевдонима. dmesg говорит, что udevd переименовал eth0 в enp2s5. До сих пор не знаю, откуда взялся p3s1 ... wullxz 11 лет назад 0
`udevd` - это служба, которая отвечает за назначение« предсказуемых имен »сетевым устройствам. Это переименование `eth0` в` p3p1`, которое является текущим именем, отображаемым `ifconfig`. Итак, что-то происходит при создании ваших файлов `/ etc / sysconfig / network-scripts / ifcfg- *`. Я все еще ищу, откуда эти имена на самом деле берутся. Drew Chapin 11 лет назад 0
Вывод `dmesg | grep enp2s5` может показать, что заставляет сетевые сценарии использовать `enp2s5` вместо` p3p1` (что и следует использовать). Drew Chapin 11 лет назад 0
Мне было бы интересно посмотреть, что произойдет, если вы переименуете `/ etc / sysconfig / network-scripts / ifcfg-enp2s5` в` ifcfg-p3p1` и измените `NAME = enp2s5` на` NAME = p3p1` (в основном переименуйте сетевой скрипт для использования имени устройства из `ifconfig`). Но вы сказали, что обращались к нему только через SSH, поэтому я не хочу предлагать ничего, что могло бы помешать вам вернуться на ПК / сервер. Drew Chapin 11 лет назад 0
Я обновил свой ответ с решением, я думаю, будет работать. Drew Chapin 11 лет назад 0

2 ответа на вопрос

5
Drew Chapin

Инструкции командной строки

После долгих поисков я обнаружил, что имена файлов ifcfg- * и NAME=переменная в файле имеют мало общего с фактическим назначением. Вы можете буквально поменять их на что угодно ... Я провел тест на своей машине, изменив их, eth0и ручной / статический IP-адрес все еще применялся при запуске. Ключ здесь, кажется, является HWADDRпеременной внутри файла. NAME=Значение только кажется, имя, отображаемое в настройках графики Network Manager. Итак, как говорится, я верю, что все, что вам нужно сделать, это ...

  1. Убедитесь, что NetworkManager.serviceон по-прежнему включен и network.serviceотключен.

  2. Самый ВАЖНЫЙ шаг, чтобы удалить текущий ifcfg-enp2s5 сценарий.

    sudo rm /etc/sysconfig/network-scripts/ifcfg-enp2s5 
  3. Создайте новый скрипт с именем ifcfg-p3p1

    sudo nano /etc/sysconfig/network-scripts/ifcfg-p3p1 
  4. Установите содержимое ifcfg-p3p1 на следующее и обновите соответствующие настройки IP -адреса с помощью желаемых настроек.

    TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=p3p1 UUID=7622e20e-3f2a-4b5c-83d8-f4f6e22ed7ec ONBOOT=yes DNS1=10.0.0.1 IPADDR0=10.0.0.2 PREFIX0=24 GATEWAY0=10.0.0.1 HWADDR=00:14:85:BC:1C:63 IPV6_PEERDNS=yes IPV6_PEERROUTES=yes 

Что касается того, почему имя ifcfg- * отличалось от фактического имени устройства. Я не знаю, но подозреваю, что это как-то связано с тем, как сетевые настройки применялись во время установки.

Графические инструкции

  1. Открыть системные настройки
  2. Нажмите на сеть
  3. Нажмите на Опции ...
  4. Нажмите на вкладку Настройки IPv4 * или IPv6 в зависимости от того, какую версию IP использует ваша домашняя сеть (скорее всего, IPv4 ).
  5. Нажмите на поле со списком Method и выберите опцию Manual .
  6. Нажмите на кнопку Добавить .
  7. Введите нужный адрес в столбцах Адрес (например, 10.0.0.20).
  8. Введите маску сети для своей сети в столбце « Маска сети» (например, 255.255.255.0).
  9. Введите шлюз (обычно IP-адрес вашего маршрутизатора) в столбце Шлюз (например, 10.0.0.1).
  10. Введите свой DNS-сервер в текстовом поле DNS-серверы (например, 10.0.0.1)

    Wired Connection Options Dialog

  11. Нажмите на Сохранить ...
  12. Когда вы вернетесь к сети настройки, включите проводной интерфейс OFF .
  13. Он должен автоматически включиться со статической адресной информацией, введенной вами на предыдущих шагах. Если он не включается, нажмите тумблер, чтобы включить его.

    Network Settings After Manual IP Selection


Чтобы ответить на ваш вопрос об использовании NetworkManager.serviceболее network.service. Существует определенная возможность, что это может быть удалено в более поздних выпусках. Тем не менее, как правило, независимо от темы, вы всегда должны стараться избегать использования чего-либо «включенного для обратной совместимости» . Итак, вы должны придерживаться, NetworkManager если можете .

потому что я контролирую эту машину через SSH. GUI материал не является решением. Вот почему я хотел найти решение для настройки NetworkManager в оболочке, и мне также интересно, почему сетевой сервис следует заменить, несмотря на то, что его легко настроить из оболочки. wullxz 11 лет назад 0
И для вашего практического правила: вот почему я спрашиваю об использовании одного из этих двух, но мне нужно использовать решение на основе оболочки. Linux часто используется как серверная ОС. Там * должен * быть что-то, чтобы использовать из оболочки, верно? wullxz 11 лет назад 0
NetworkManager является частью проекта GNOME, и я верю, что это было их делом, но я не могу найти ничего, что могло бы его поддержать. Если вы еще не знаете, [GNOME делает какие-то безумные штуки] (http://en.wikipedia.org/wiki/Controversy_over_GNOME_3). Drew Chapin 11 лет назад 0
Я удалил файлы `ifcfg-eth *` из `/ etc / sysconfig / network` и Network Manager начал работать как надо! Paul 8 лет назад 0
1
terdon

Я не использую Fedora, но, согласно этому сообщению, файл, который вы ищете, /etc/sysconfig/network-scripts/ifcfg-p3p1должен выглядеть примерно так:

DEVICE=eth0 BOOTPROTO=none HWADDR=00:13:20:5E:C0:47 ONBOOT=yes DHCP_HOSTNAME=balthasar.benhome.com TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=no IPADDR=172.16.3.3 NETMASK=255.255.255.192 GATEWAY=172.16.3.1 

Настройка IP там должна работать.

Нет, это не так. Я где-то читал, что нужно просто создать ifcfg- * interfacename *, перезапустить network.service и отредактировать свойства. Но когда я создал пустой ifcfg-p3p1, network.service не запустился бы снова. Это определенно enp2s5, где настроен p3p1 (статический IP-адрес, который я настроил там, был применен к моему сетевому интерфейсу). wullxz 11 лет назад 0
@wullxz да, похоже, это enp2s5, но вы не публиковали содержимое этого файла раньше. Попробуйте добавить к нему `NM_CONTROLLED = no`, чтобы сообщить интерфейсу, что он не контролируется сетевым менеджером. terdon 11 лет назад 0
как мне тогда это контролировать, если NetworkManager нет? Он должен появиться автоматически при перезагрузке. wullxz 11 лет назад 0
@wullxz на самом деле не знаю, поэтому это был просто комментарий. Возможно, вы захотите пометить это для перехода на [Unix.se], у вас там больше шансов. terdon 11 лет назад 0
хорошо, попробую это. wullxz 11 лет назад 0
@wullxz просто не пересекайте пост, отметьте внимание модератора, выберите другой и объясните, что вы хотите перенести. terdon 11 лет назад 0
сделал это уже wullxz 11 лет назад 0
@wullxz Вы задали этот (хороший) вопрос меньше, чем день назад. Пока у него хорошие ответы, и мы обычно не любим переносить вопросы, если они не сидят здесь без особого внимания или надежды получить ответ в течение дня или двух. Я предлагаю вам пометить это снова через день или около того, если это не решено - просто скажите, что я сказал вам. Спасибо за понимание. slhck 11 лет назад 1