이름을 바꾸는 대신 별칭을 사용하는 영구 네트워크 이름

이름을 바꾸는 대신 별칭을 사용하는 영구 네트워크 이름

영구 네트워크 이름(예: enx00b56d00d500)을 Linux( )에서 제공하는 표준 이름의 별칭(대체가 아닌)으로 어떻게 변경합니까 eth0?

두 이름을 모두 사용할 수 있기를 원하지만 systemd.link는 현재 원래 인터페이스 이름을 손상시켰으며 그렇게 하지 않도록 지시할 확실한 방법이 없습니다.

배경

저는 Debian GNU/Linux를 사용하고 있습니다. 영구 이름의 이점을 이해하고 이를 계속 사용하고 싶지만 명령줄에서 실행되는 간단한 Linux 이름에 의존할 수 없다는 점은 실망스럽습니다.

예를 들어, 내 컴퓨터 중 일부에는 이더넷이 내장되어 있지 않고 작업대에 12개의 서로 다른 USB-이더넷 어댑터가 있습니다. 나는 내가 삽입한 것이 무엇 eth0이든 systemd가 제공하고자 하는 영구 이름 으로 모두 사용할 수 있기를 원합니다 .

나는 알고있다데비안 위키커널 매개변수를 사용하여 네트워크 이름 변경을 비활성화 할 수 있지만 net.ifnames=0페이지에는아니요어떤 이름이든 자유롭게 사용할 수 있도록 별칭을 만들 수 있습니다. Linux가 이미 가지고 있는 것처럼 이것은 오래된 정보일 수 있다고 생각합니다.대체 네트워크 이름을 추가하는 기능2019년부터.

저는 하고 싶지 않으니 참고해주세요수동으로 인터페이스 이름 바꾸기. 이상적으로 솔루션은 systemd가 원래 이름을 제거하는 것을 방지하지만 Linux 이름을 대안으로 다시 추가하는 자동 방법이 있다면 좋을 것입니다.

답변1

Debian 11(또는 그 이상)을 실행 중이라면 원하는 동작이 이미 구현되어 있을 것입니다. 인터페이스의 자동 구성은 altname다음과 같이 수행됩니다.AlternativeNamesPolicy에서 설정합니다 /usr/lib/systemd/network/99-default.link. 기본 구성을 사용합니다.

[Match]
OriginalName=*

[Link]
NamePolicy=keep kernel database onboard slot path
AlternativeNamesPolicy=database onboard slot path
MACAddressPolicy=persistent

다음을 사용하여 Debian 11 시스템을 부팅하는 경우 net.ifnames=0:

2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:f7:e2:94 brd ff:ff:ff:ff:ff:ff
    altname eth0

이 인터페이스를 호출 enp1s0하거나 다음을 수행할 수 있습니다 eth0.

root@debian:~# ip -br link show eth0
enp1s0           UP             52:54:00:f7:e2:94 <BROADCAST,MULTICAST,UP,LOWER_UP>
root@debian:~# ip -br link show enp1s0
enp1s0           UP             52:54:00:f7:e2:94 <BROADCAST,MULTICAST,UP,LOWER_UP>

데비안 11보다 오래된 데비안 버전을 실행하고 있다면 운이 좋지 않을 수도 있습니다. iproute이전 릴리스의 패키지는 지원되지 않습니다 altname.


귀하의 의견에 답하십시오:

*.link데비안에는 이 기능(및 향후 생성될 수 있는 다른 파일) 을 비활성화할 수 있는 방법이 있나요 ?

*.link"나중에 생성될 수 있는 다른 파일"을 비활성화할 수는 없지만 특정 파일을 비활성화하거나 동등한 이름의 파일로 바꿀 수 있습니다 /etc/systemd/network(이는 모든 종류의 시스템 단위 파일에 해당됩니다). "비활성화"된 경우 가장 간단한 해결책은 파일을 에서 심볼릭 링크하는 것입니다 /dev/null.https://www.freedesktop.org/software/systemd/man/systemd.link.html:

/etc/에 있는 파일이 가장 높은 우선순위를 갖고 /run/에 있는 파일이 /usr/lib/에 있는 같은 이름의 파일보다 우선합니다. 원하는 경우 시스템 제공 링크 파일을 로컬 파일로 덮어쓰는 데 사용할 수 있습니다. 특별한 경우로, 빈 파일(파일 크기 0) 또는 /dev/null을 가리키는 동일한 이름의 심볼릭 링크는 구성 파일을 완전히 비활성화합니다("마스크됨").

따라서 73-usb-net-by-mac.link다음 명령을 실행하여 파일을 차단할 수 있습니다.

ln -s /dev/null /etc/systemd/network/73-usb-net-by-mac.link

관련 정보