У меня есть несколько сетевых интерфейсов - eth0, eth1.
ETH0 подключен к изолированной локальной сети (с коммутатором) и имеет 2 статических IP-адреса. Он был настроен с помощью файла /etc/network/interfaces
и все работает довольно хорошо.
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.54.254
gateway 192.168.54.1
netmask 255.255.255.0
broadcast 192.168.0.255
auto eth0:1
iface eth0:1 inet static
address 192.168.168.110
gateway 192.168.168.1
netmask 255.255.255.0
broadcast 192.168.0.255
Интерфейс ETH1 должен быть подключен к Интернету и должен использовать DHCP для получения правильного IP адреса от главного маршрутизатора. Когда я запускаю sudo systemctl status dhcpcd.service
, становится ясно, что dhcpcd конфликтует с /etc/network/interfaces
.
Jun 03 13:09:17 raspberrypi systemd[1]: Starting dhcpcd on all interfaces...
Jun 03 13:09:17 raspberrypi dhcpcd[1210]: Not running dhcpcd because /etc/network/interfaces
Jun 03 13:09:17 raspberrypi dhcpcd[1210]: defines some interfaces that will use a
Jun 03 13:09:17 raspberrypi dhcpcd[1210]: DHCP client or static address
Однако я нашел одно решение, которое работает, но я не уверен, считается ли оно лучшей практикой. Когда я выполняю sudo dhcpcd eth1
, я могу запустить DHCP только на eth1. Я планирую создать системную службу, которая будет выполнять sudo dhcpcd eth1
при каждом запуске.
Я видел в интернете, что некоторые люди могут выполнить sudo systemctl enable dhcpcd@eth1.service
, но у меня нет такой службы, и я получаю ошибку:
Failed to enable unit: Unit file dhcpcd@eth1.service does not exist.
Правилен ли мой подход к созданию пользовательской службы с помощью sudo dhcpcd eth1
?
Нет, ваш подход неверен. Raspbian по умолчанию использует dhcpcd вместо / etc / network / interfaces
(который считается устаревшим). Но поскольку вы уже настроили свои статические IP-адреса через этот файл, вы все равно можете добавить к нему eth1
и включить для него DHCP. Т.е. в старом стиле, например:
auto eth1
allow-hotplug eth1
iface eth1 inet dhcp
Просто добавьте эти строки в конец вашего / etc / network / interfaces
и перезагрузитесь.
На самом деле это считается лучшим подходом со стороны «создателей» Debian, а файл dhcpcd.conf считается небезопасным. Также кажется, что он не позволяет создавать псевдонимы обычным способом.
Или вместо этого, если вы предпочитаете использовать dhcpcd, вы можете указать ему не связываться с eth0 и настроить DHCP только на eth1 в / etc / dhcpcd.conf
:
denyinterfaces eth0
См. также этот вопрос по проблеме: https://raspberrypi.stackexchange.com/questions/45330/set-multiple-static-ip-in-dhcpcd-conf-raspbian- 8-Джесси