ağ arayüzlerinin adlarını değiştirme, debian wheezy


14

Bir arabirim, "ethLan" yerine eth0 için bir ad belirlemeye çalışıyorum. Bunu yapmak, if adının her yeniden başlatma ve çekirdekte tutarlı kalmasını sağlar.

Konuyla ilgili bazı makaleler buldum, ancak hepsi birkaç yaşında:
http://www.debian-administration.org/articles/463
http://www.linuxfromscratch.org/hints/downloads/files/ nameif.txt

Dedikleri gibi yaptım ve / etc / mactabs / ' e ethLan mac ekledim . Bu noktada iki problemim var:
1) /etc/network/if-pre-up.d/ dizinineif [...] && /sbin/nameif koyduğum script çalışmıyor. Bunu /etc/init.d/networking adresine ekleyerek çözdüm , ama neden pre-up.d çalışmıyor? 2) / etc / network / interfaces komutuna eklemesine rağmen ifconfig ethLan'ı elle yapmadıkça arayüz yüklenmeyecektir . Neyi yanlış yapıyorum?

Yanıtlar:


17

Bulduğunuz makaleler biraz modası geçmiş. Artık ağ arabirimlerine Udev aracılığıyla ad atamak için kolay bir yöntem var .

Debian ve türevlerinde (Ubuntu dahil), adlı dosyayı arayın /etc/udev/rules.d/70-persistent-net.rules. Bu dosya /lib/udev/rules.d/75-persistent-net-generator.ruleskomut dosyasının yardımıyla oluşturulur /lib/udev/write_net_rules. Udev her yeni ağ cihazı gördüğünde, ona yeni bir numara atar ve bu numarayı buraya ekler /etc/udev/rules.d/70-persistent-net.rules. Bu şekilde, arabirim numaraları yeniden başlatmalarda kalıcı olur ve geri yüklendikten sonra yeniden yüklemeden sonra da devam eder /etc.

(Dağıtımınız bu dosyaları göndermiyorsa , Debian paketinde arayın .)

Bir arabirime anlamlı bir ad vermek istiyorsanız ve varsa /etc/udev/rules.d/70-persistent-net.rules, yapmanız gereken tüm dosya ve değişime bu düzenleme etmektir "eth0"için "ethLan". udevadm trigger --sysname eth0Dosyayı düzenledikten sonra mevcut cihazı yeniden adlandırmak için çalıştırın (bunun arayüzün kapatılmasını gerektirdiğini düşünüyorum). Bu dosyaya sahip değilseniz, tek satır eşleşmeyi kendiniz yazabilirsiniz (Debian'ın eklediği karmaşık komut dosyaları bunu yalnızca otomatik olarak yapar):

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="01:23:45:67:89:ab", NAME="ethLan"

1
Udev kurallarında kullanılabilen kullanışlı bir özellik listesi istiyorsanız, benzer bir şey deneyebilirsiniz udevadm info -a /sys/class/net/eth0. ( udevadm(8)ayrıntılar için bakınız)
Austin Adams

1
Soru açıkça Wheezy için olduğunu belirtiyor, ancak bu cevabın artık daha yeni Debian ve Ubuntu için geçerli olmadığını belirtmek gerekebilir. Systemd 220-7 arayüz adından başlayarak başka yollarla yapılmalıdır.
sampi

@sampi Cevabım Debian jessie (mevcut kararlı sürüm) için hala geçerli. Esneme başarısız mı, yoksa sadece kullanımdan kaldırılmış bir yöntem mi öneriyor? Hangi Ubuntu sürümünün kesme olduğunu biliyor musunuz?
Gilles 'SO- kötü olmayı bırak'

@Gilles Gerçekten başarısız olup olmadığını veya sadece önerilen bir kullanımdan kaldırılma olduğunu bilmek için ayrıntıları yeterince derinlemesine incelemedim. Ubuntu Wily ve daha yeni kullanım sistemi 220-7'den daha yüksek görünüyor .
sampi

6

Bu yayına benim gibi bir arama motoru aracılığıyla rastlayan kullanıcılar için:

Debian streç ve daha yenisinde, udev'in cihazları yeniden adlandırmasını sağlamak için systemd .link dosyalarını kullanabilirsiniz. Manpage için https://manpages.debian.org/stretch/udev/systemd.link.5.en.html adresine bakın .

Bir örnek:

cat /etc/systemd/network/10-uplink0.link 
[Match]
MACAddress=00:0d:b9:49:8a:18

[Link]
Name=uplink0

Daha update-initramfs -usonra bu güncellenmiş yapılandırma dosyalarını uygulanacakları initramf'lerinize gömmek için çalıştırmayı unutmayın .


Bağlantı dosyaları udev.rules.d içeren bir sistemde mevcutsa hangisi öncelikli olur?
vfclists

1

Bunu adında bir paketle yapmanın biraz daha basit bir yolu var ifrename. Ayrı bir (başlangıç udev) yapılandırma dosyasına sahiptir ve arayüzleri tanımlamak için MAC adreslerini kullanabilirsiniz.

wireless-toolsAncak bununla çelişir .


2
Her ikisinin de arabirimlere kalıcı adlar vermek için kullanılması durumunda ifrenameçakışacağı unutulmamalıdır udev.
Mischa Arefiev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.