Zmieniam nazwy interfejsów sieciowych, modyfikując pliki w /etc/sysconfig/network-scripts
.
- eth0 -> nic0
- eth1 -> nic1
Zawartość skryptów sieciowych wygląda następująco po modyfikacji:
# cat /etc/sysconfig/network-scripts/ifcfg-nic0
DEVICE=nic0
BOOTPROTO=static
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
USERCTL=no
IPV6INIT=no
MASTER=bond0
SLAVE=yes
Ponowne uruchomienie aktywuje nową konfigurację. Ale jak aktywować tę konfigurację bez ponownego uruchamiania?
A systemctl restart network
nie załatwia sprawy.
Mogę zamknąć jeden interfejs za pomocą jego starej nazwy ( ifdown eth0
), ale ifup
powoduje wyświetlenie poniższego komunikatu bez względu na to, czy podano starą czy nową nazwę:
BŁĄD: [/ etc / sysconfig / network-scripts / ifup-eth] Urządzenie nic0 wydaje się nie być obecne, opóźniając inicjalizację.
/etc/init.d/network status
pokazuje ten wynik:
Configured devices:
lo bond0 nic0 nic1
Currently active devices:
lo eth0 eth1 bond0
Zarówno ifconfig
i ip a
pokaż stare nazwy interfejsów.
centos
configuration
network-interface
udondan
źródło
źródło
Odpowiedzi:
Możesz zmienić nazwę urządzenia za pomocą polecenia ip:
Edytuj :
Możesz także upewnić się, że skonfigurowałeś regułę udev, aby działała również przy następnym restarcie. Ścieżka udev została przeniesiona w CentOS 7 do /usr/lib/udev/rules.d/60-net.rules, ale nadal możesz nią zarządzać w ten sam sposób. Jeśli dodałeś „net.ifnames = 0 biosdevname = 0” do łańcucha rozruchowego jądra, aby powrócić do starego schematu nazewnictwa dla twojej karty sieciowej , możesz usunąć
I zamień na
Potrzebujesz jednego wpisu na nic. Użyj poprawnego adresu MAC i zaktualizuj pole NAZWA. Jeśli nie użyłeś „net.ifnames = 0 biosdevname = 0”, zachowaj ostrożność, ponieważ mogą wystąpić niezamierzone konsekwencje.
źródło
/etc/udev/rules.d/90-eno-fix.rules
ponieważ zastępuje on wszystkie wcześniej działające rozwiązania w celu zmiany nazw urządzeń sieciowych.eno########
wartość, która zastępuje wszystkie próby zmiany nazwy na coś podobnegoeth0
. Czy to ma sens? Będę musiał zweryfikować na moim komputerze, której wersji używam, ale wczoraj uaktualniłem do najnowszego CentOS 7.3, więc myślę, że będę miał wspomnianą wersję.Właściwie najlepszą odpowiedzią, jaką uważam, jest kombinacja dwóch już opublikowanych odpowiedzi. Aby zmienić nazwę urządzenia bez ponownego uruchamiania usług sieciowych, użyj
ip link
poleceń sugerowanych przez Jamesa Shewey (ip link set <old_device_name> name <new_device_name>
).Aby zmiany przetrwały po ponownym uruchomieniu w systemie Red Hat Linux, zmodyfikuj odpowiedni plik w
/etc/sysconfig/network-scripts/
. Zmień nazwę plikuifcfg_<old_device_name>
naifcfg_<new_device_name>
i zmieńDEVICE
zmienną wewnątrz na<new_device_name>
. Upewnij się również, żeHWADDR
zmienna jest ustawiona i jest poprawna. Nie ma potrzeby dotykania reguł udev , ponieważ60-net.rules
tak naprawdę można tam czytać pliki konfiguracyjne ifcfg/etc/sysconfig/network-scripts
.źródło
Aby przywrócić starą konwencję nazewnictwa, musisz edytować
/etc/default/grub
plik i dodać następującena końcu
GRUB_CMDLINE_LINUX
zmiennejźródło
biosdevname
pakiet, jeśli jest zainstalowanyźródło
Odpowiedź udzielona przez Jamesa Sheweya wydaje się być dobrym sposobem na to.
Jeśli chcesz po prostu pracować z plikami konfiguracyjnymi,
/etc/sysconfig/network-scripts
a następnie uruchomić ponowne ładowanie, działa również rozładowanie i załadowanie modułu jądra, jak wspomniano w @Tom Hunt w komentarzach:Jeśli uzyskujesz dostęp do urządzenia zdalnie, upewnij się, że uruchomiłeś wszystkie polecenia w trybie nohup, w przeciwnym razie się zablokujesz:
Sterownik do przeładowania oczywiście zależy od twojego interfejsu.
źródło
Próbowałem powyższego z Vagrant / VirtualBox i ansible, ale jakoś to nie działało w moim środowisku programistycznym.
Stare nazwy interfejsów zostały zachowane bez względu na to, co zrobiłem, aż do pełnego ponownego uruchomienia.
Dodałem następujące reguły
/etc/udev/rules.d/60-persistent-net.rules
(na podstawie: https://access.redhat.com/solutions/112643 )Moim celem było nadanie interfejsowi określonej nazwy na podstawie adresu PCI.
Przykład:
Po dodaniu tych reguł wykonałem następujące polecenia:
Komunikat o błędzie był
Cannot find device "int0"
wip link set * up
poleceniu. I/var/log/messages
zauważyłem następujące wiadomościAle następujące działało, uzyskując dostęp do maszyny wirtualnej za pośrednictwem VirtualBox i uruchom następujące polecenia, aby usunąć i ponownie dodać moduł jądra.
Znalazłem to w następującym wątku: https://www.centos.org/forums/viewtopic.php?t=54695
Dziwną rzeczą, którą zauważyłem, to to, co
lsmod
daje mi (zwróć uwagę naUsed by
)źródło
ip link set eth0 down; ip link set eth0 name int0; ip link set int0 up
:? Bezudev...
polecenia!