Tutoriel Linux

네트워크 접근을 잃지 않고 nmcli로 프로필 수정하기

Débutant2 min de lecture

원격 머신에서 IP 주소, 게이트웨이 또는 DNS를 수정하는 것은 단일 nmcli 명령으로 수행할 수 있습니다. 이러한 설정은 NetworkManager 프로필에 저장되며, 해당 프로필을 재활성화하면 명령을 입력하는 데 사용되는 SSH 세션이 끊길 수 있습니다.

프로필을 수정하기 전에 활성 연결을 갖고 있는 프로필을 식별하고, 두 번째 세션을 열어 두거나 하이퍼바이저의 콘솔을 유지하십시오. 각 수정은 설정 범위에 한정하고, 수정한 값을 재확인한 다음, 재활성화하고 SSH 세션을 종료하기 전에 경로와 DNS를 확인하십시오.

보조 연결이 표시된 미니 리눅스 서버에 연결된 이더넷 케이블
네트워크 프로필을 재활성화하기 전에 콘솔이나 두 번째 연결을 준비하십시오.

관리자를 확인하고 비상 접근을 준비하기

nmcli는 NetworkManager에 의해 관리되는 연결만을 제어합니다. systemd-networkd, ifupdown 또는 Netplan과 같은 다른 백엔드에서 관리되는 머신에서는 이러한 명령이 실제 네트워크에 영향을 미치지 않습니다.

systemctl is-active NetworkManager
nmcli general status
nmcli connection show --active
ip route get 1.1.1.1

systemctl is-active는 active를 반환해야 하며, nmcli general status는 오류 없이 응답해야 합니다. ip route get 1.1.1.1은 이 대상을 연결하는 데 사용되는 인터페이스, 게이트웨이 및 소스 주소를 제공합니다: 이 세 값을 기록하십시오. 이는 재활성화 후 참조 용으로 사용됩니다.

SSH 세션 하나만으로는 수정할 프로필이 이 세션을 운반하는 경우 충분하지 않습니다: 재활성화 중 끊어지면 세션이 종료되고 뒤로 돌아가는 수단이 사라집니다. 두 번째 세션을 열어 두십시오; VM 또는 원격 서버에서 하이퍼바이저 또는 호스팅 제공자가 이 두 번째 접근을 제공합니다.

활성 연결을 가진 프로필 식별하기

등록된 프로필을 나열한 다음, 활성 인터페이스에 연결된 프로필을 검사하십시오.

nmcli -f NAME,UUID,TYPE,DEVICE connection show
PROFILE='유선 연결 1'
nmcli -f connection.id,connection.uuid,connection.interface-name,ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns connection show "$PROFILE"
nmcli connection show --active

유선 연결 1을 머신에서 기록한 이름으로 교체하십시오. 이름에 띄어쓰기가 포함된 경우 따옴표로 묶어야 합니다. PROFILE 변수는 같은 터미널에서 이후 명령에 사용할 수 있습니다. 출력은 IPv4가 DHCP에서 오는지 수동 구성에서 오는지를 보여주며, 현재 프로필에 연결된 주소, 게이트웨이 및 DNS를 표시합니다.

프로필의 DEVICE 필드를 nmcli connection show --active의 활성 행과 비교하십시오. Wi-Fi 프로필과 이더넷 프로필이 동시에 존재하는 경우가 많습니다: 비활성 프로필을 수정해도 현재 세션이 끊기지는 않지만, 목표 네트워크 경로는 변경되지 않습니다.

속성 수정 및 값 재확인하기

주소나 경로에 영향을 주지 않는 속성부터 시작하십시오: 이 단계는 프로필 이름과 sudo 권한을 확인하면서 현재 세션을 노출하지 않는 데 유용합니다. connection.autoconnect-priority가 적합하며, 이것은 다음 프로필 선택에만 적용되고 아무것도 재활성화하지 않습니다. 현재 활성 세션을 운반하지 않는 프로필에서는 이 조치가 선택적입니다: 실패해도 아무 것도 끊기지 않습니다.

sudo nmcli connection modify "$PROFILE" connection.autoconnect-priority 20
nmcli -f connection.id,connection.autoconnect-priority connection show "$PROFILE"

두 번째 명령은 20을 표시해야 합니다. 값을 수정하기 전에 원래 값을 기록하여 복원할 수 있도록 하십시오. 각 수정은 오직 하나의 설정 범위에 제한해야 합니다: 자동 연결 우선 순위, DNS 또는 주소 지정. 재확인은 재활성화에 앞서 수행해야 하며, 이후 확인이 실패하면 원인은 이 수정으로 제한됩니다.

DHCP에서 제공된 DNS를 무시하려면 설정을 명시적으로 설정하십시오:

sudo nmcli connection modify "$PROFILE" ipv4.ignore-auto-dns yes

그 다음 ipv4.dns와 함께 해석기를 지정하십시오. 공백으로 구분하고 따옴표로 묶으십시오:

sudo nmcli connection modify "$PROFILE" ipv4.dns "1.1.1.1 1.0.0.1"
nmcli -f ipv4.ignore-auto-dns,ipv4.dns connection show "$PROFILE"

1.1.1.1과 1.0.0.1은 예시로 사용됩니다. 기업이나 호스팅 제공자가 자신의 DNS를 강제하는 경우, 이를 유지하십시오: 공개 주소로 대체하기 전에 네트워크 정책을 확인하십시오. 잘못된 해상도는 잘못된 경로보다 더 불안정하게 접근을 차단합니다.

프로필을 수동 주소 지정으로 전환하기 위해, 한 명령으로 방법, 주소 및 게이트웨이를 그룹화합니다:

sudo nmcli connection modify "$PROFILE" ipv4.method manual ipv4.addresses 198.51.100.10/24 ipv4.gateway 198.51.100.1
nmcli -f ipv4.method,ipv4.addresses,ipv4.gateway connection show "$PROFILE"

198.51.100.10/24와 198.51.100.1은 예시 주소입니다: 머신의 주소 지정 계획에 맞게 조정하십시오. 전환 전에 ip route get에 의해 표시된 DHCP 임대의 주소와 게이트웨이를 기록하십시오: 되돌리기는 ipv4.method를 auto로 되돌리고 프로필을 재활성화합니다.

공식 문서 NetworkManager의 nmcli는 속성 이름과 설치된 버전에 따른 구문을 나열합니다.

연결을 재활성화한 뒤 경로와 DNS를 확인하기

수정된 값은 프로필이 재활성화되지 않는 한 유효하지 않습니다. nmcli connection up은 트래픽, SSH를 포함하여 잠깐 끊길 수 있으며, 명령이 올바를 때에도 발생할 수 있습니다.

sudo nmcli connection up id "$PROFILE"
nmcli connection show --active
ip route get 1.1.1.1
getent hosts example.com
resolvectl status

nmcli connection up는 오류 없이 완료되어야 하며, 프로필은 nmcli connection show --active에서 활성 상태로 나타나야 합니다. ip route get에 의해 반환된 인터페이스와 게이트웨이를 진단에서 기록한 값과 비교하십시오.

getent hosts example.com은 머신에 구성된 메커니즘을 사용하여 해상도를 테스트합니다. resolvectl status는 systemd-resolved가 해상도를 관리할 때 활성 DNS를 자세히 보여줍니다; 만약 당신의 배포판에 해당 명령이 없다면, 실제로 사용되는 해석기를 확인하십시오. DNS가 유효하다고 간주하기 전에 말입니다.

정상 경로를 갖지만 이름이 더 이상 해상되지 않는다는 것은 DNS 문제이지 경로 문제가 아닙니다. 가이드 리눅스에서의 ip route는 경로, 게이트웨이 및 소스 주소를 분리합니다. 인터페이스의 주소를 다시 읽기 위해 가이드 리눅스에서의 ip addr가 검증을 보완합니다.

다른 도구가 네트워크를 관리할 경우 절차 중지하기

초기 진단에서 다른 관리자가 발견되면 nmcli로 프로필을 재활성화하지 마십시오. Ubuntu에서는 YAML 파일이 Netplan으로 관리되며, 이는 NetworkManager와 다른 백엔드일 수 있습니다: reversible test Netplan이 이 구성에 적합합니다.

두 번째 SSH 세션과 비상 콘솔은 전환 중 접근 손실 위험을 제한하지만, 잘못된 대상을 무해하게 만들지 않습니다. 비상 세션을 닫기 전에 프로필, 인터페이스, 경로 및 해상도가 예상 값과 일치하는지 확인하십시오.