여러 네트워크 인터페이스를 구성하기 위해 bash 스크립트를 작성하려고 하는데 일부 NIC가 장치 이름 대신 유선 연결 이름을 가져오는 데 문제가 있습니다. 예를 들어
$ nmcli dev status
DEVICE TYPE STATE CONNECTION
ens22 ethernet connected ens22
ens18 ethernet connected Wired connection 2
ens19 ethernet connected ens19
ens20 ethernet connected Wired connection 1
ens21 ethernet connected ens21
lo loopback unmanaged --
그 영향은 장치 이름이 아닌 연결 이름을 예상하기 때문에 이러한 명령이 실패한다는 것입니다.
printf "\n${YELLOW}### Configure ens20: ###${NC}\n"
sudo nmcli con mod ens20 ipv4.addresses 10.70.20.254/24
sudo nmcli con mod ens20 ipv4.dns 8.8.8.8
sudo nmcli con mod ens20 ipv4.method manual
질문:
- 일부 인터페이스에만 "유선 연결"이라는 이름이 붙는 이유는 무엇입니까?
- 대신 인터페이스 이름을 사용하는 옵션이 nmcli에 있습니까?
- 연결 이름을 바꿀 수 있습니까? 연결 속성 이름을 바꾸려고 했지만 장치가 아닌 연결을 수정해야만 이 작업을 수행할 수 있습니다.
이것은 작동합니다:
sudo nmcli connection modify "Wired connection 2" connection.id "ens18"
이것은 작동하지 않습니다:
sudo nmcli device modify ens18 connection.id "ens18"
감사해요
답변1
NetworkManager 용어로 말하면,장비NIC(또는 NIC의 가상 추상화)입니다.연결하다적합한 네트워크 구성 매개변수 세트입니다.장비, 특정 장치에만 일치하도록 특별히 제한되지 않는 한. 이런 제한에도 불구하고,연결과 장치는 별도의 구성 개체입니다..
1.) Wired connection <number>
은 일부 GUI 도구(RHEL OS 설치 프로그램 포함)에서 사용되는 기본 연결 이름 형식이며, 이름을 지정하지 않고 새 연결을 생성할 때 사용되는 기본 이름 <interface name>
일 수 있습니다 . 이 인터페이스에 대한 기존 연결 정의입니다.nmcli
nmcli device connect <interface name>
2.) 특정 고유 방법 참조연결하다이름, UUID 또는 D-Bus 연결 경로 번호( path <N>
for /org/freedesktop/NetworkManager/Settings/<N>
또는 apath <N>
for /org/freedesktop/NetworkManager/ActiveConnection/<N>
)로 구성됩니다.
"이 장치의 활성 연결은 무엇입니까?"를 빠르게 참조하려면 다음과 같은 셸 기능을 만들 수 있습니다.
nm_connection_of() {
# $1 = name of network interface to query
con_name=$(nmcli -g GENERAL.CONNECTION device show "$1")
if [ "$con_name" = "" ]; then
echo "ERROR: no connection associated with $1" >&2
return 1
fi
echo "$con_name"
}
그런 다음 다음과 같이 사용할 수 있습니다.
sudo nmcli connection modify "$(nm_connection_of ens18)" connection.id ens18
네트워크 인터페이스는 현재 어떤 연결과도 연결되어 있지 않을 수 있으며, 이 경우 $(nm_connection_of <interface name>)
오류가 반환됩니다.
3.) 이 질문에 직접 답변하셨습니다.
연결 이름을 바꾸려면 명시적으로 식별해야 합니다.이름을 바꾸려는 연결,하나도 아니야장비가능한 연결 수에 관계없이 연결될 수도 있고 전혀 연결되지 않을 수도 있습니다.