웹사이트 검색

Linux에서 'nmcli'를 사용하여 IP 네트워킹을 구성하는 방법


Linux 관리자에게는 nmtui, GNOME 그래픽 사용자 인터페이스가 포함된 NetworkManager, 물론 등 네트워크 연결을 구성하는 데 사용할 수 있는 다양한 도구가 있습니다. >nmcli(네트워크 관리자 명령줄 도구).

저는 많은 관리자들이 단순함 때문에 nmtui를 사용하는 것을 보았습니다. 그러나 nmcli를 사용하면 시간이 절약되고, 자신감이 높아지고, 스크립트에 통합될 수 있으며, Linux 서버 네트워킹 문제를 해결하고 해당 기능을 신속하게 복원하기 위한 기본 도구입니다.

nmcli에 대한 도움을 요청하는 수많은 댓글을 보고 이 글을 쓰기로 결정했습니다. 물론, 맨 페이지를 항상 주의 깊게 읽어야 합니다(이 맨 페이지는 여러분에게 최고의 리소스입니다). 제 목표는 여러분의 시간을 절약하고 몇 가지 유용한 힌트를 제공하는 것입니다.

nmcli 명령 구문

nmcli의 구문은 다음과 같습니다.

nmcli [OPTIONS] OBJECT {COMMAND | help}

여기서 OBJECT는 일반, 네트워킹, 무선, 연결, 장치 및 에이전트 중 하나입니다.

Linux에서 네트워크 장치 상태 확인

좋은 출발점은 장치를 확인하는 것입니다.

nmcli dev status

DEVICE      TYPE      STATE         CONNECTION 
docker0     bridge    connected     docker0    
virbr0      bridge    connected     virbr0     
enp0s3      ethernet  connected     enp0s3     
virbr0-nic  ethernet  disconnected  --         
lo          loopback  unmanaged     --         

첫 번째 열에서 볼 수 있듯이 네트워크 장치 목록이 있습니다. enp0s3이라는 이름의 네트워크 카드가 하나 있습니다. 컴퓨터에 다른 이름이 표시될 수 있습니다.

이름은 네트워크 카드의 유형(온보드, PCI 카드 등)에 따라 다릅니다. 마지막 열에는 장치에서 네트워크에 연결하는 데 사용되는 구성 파일이 표시됩니다.

우리의 장치 자체로는 아무것도 할 수 없다는 것을 이해하는 것은 간단합니다. 네트워크 연결을 달성하는 방법을 지시하기 위해 구성 파일을 생성해야 합니다. 이러한 파일은 '연결 프로필'이라고도 하며 /etc/sysconfig/network-scripts 디렉터리에서 찾을 수 있습니다.

cd /etc/sysconfig/network-scripts/
ls
샘플 출력
ifcfg-enp0s3  ifdown-isdn      ifup          ifup-plip      ifup-tunnel
ifcfg-lo      ifdown-post      ifup-aliases  ifup-plusb     ifup-wireless
ifdown        ifdown-ppp       ifup-bnep     ifup-post      init.ipv6-global
ifdown-bnep   ifdown-routes    ifup-eth      ifup-ppp       network-functions
ifdown-eth    ifdown-sit       ifup-ib       ifup-routes    network-functions-ipv6
ifdown-ib     ifdown-Team      ifup-ippp     ifup-sit
ifdown-ippp   ifdown-TeamPort  ifup-ipv6     ifup-Team
ifdown-ipv6   ifdown-tunnel    ifup-isdn     ifup-TeamPort

여기에서 볼 수 있듯이 이름이 'ifcfg-'(인터페이스 구성)로 시작하는 파일은 연결 프로필입니다. nmcli 또는 nmtui를 사용하여 새 연결을 생성하거나 기존 연결을 수정하면 결과가 여기에 연결 프로필로 저장됩니다.

내 컴퓨터에서 두 개를 보여드리겠습니다. 하나는 DHCP 구성이고 다른 하나는 고정 IP입니다.

cat ifcfg-static1
cat ifcfg-Myoffice1

일부 속성은 다른 값을 가지며 일부 속성은 필요하지 않으면 존재하지 않는다는 것을 알고 있습니다.

가장 중요한 사항을 간단히 살펴보겠습니다.

  • TYPE – 여기에는 이더넷 유형이 있습니다. WiFi, 팀, 유대감 등을 가질 수도 있습니다.
  • DEVICE – 이 프로필과 연결된 네트워크 장치의 이름입니다.
  • BOOTPROTO – 값이 “dhcp ”인 경우 연결 프로필은 DHCP 서버에서 동적 IP를 얻습니다. 'none' 값이 있으면 동적 IP를 사용하지 않으며 고정 IP를 할당할 가능성이 높습니다.
  • IPADDR – 프로필에 할당하는 고정 IP입니다.
  • PREFIX – 서브넷 마스크입니다. 24 값은 255.255.255.0을 의미합니다. 바이너리 형식을 기록하면 서브넷 마스크를 더 잘 이해할 수 있습니다. 예를 들어 16, 2426 값은 첫 번째 16, 24<를 의미합니다. 또는 26 비트는 각각 1로 설정되고 나머지는 0으로 설정됩니다. 이는 할당할 수 있는 네트워크 주소와 IP 주소 범위를 정의합니다.
  • GATEWAY – 게이트웨이 IP입니다.
  • DNS1, DNS2 – 사용하려는 두 개의 DNS 서버입니다.
  • ONBOOT“yes” 값이 있으면 부팅 시 컴퓨터가 이 프로필을 읽고 장치에 할당하려고 시도한다는 의미입니다.

Linux에서 네트워크 연결 확인

이제 계속해서 연결을 확인해 보겠습니다.

nmcli con show

기기의 마지막 열은 'UP' 상태이고 실행 중인 연결과 그렇지 않은 연결을 이해하는 데 도움이 됩니다. 위 이미지에서는 Myoffice1enp0s8이라는 두 개의 활성 연결을 볼 수 있습니다.

힌트: 활성 연결만 보려면 다음을 입력하세요.

nmcli con show -a

힌트: nmcli를 사용할 때 Tab을 눌러 자동 완성 기능을 사용할 수 있지만 사용하는 것이 더 좋습니다. 명령의 최소 형식.

따라서 다음 명령은 동일합니다.

nmcli connection show
nmcli con show
nmcli c s

Linux에서 IP 주소 확인

내 장치의 IP 주소를 확인하는 경우:

ip a

내 장치 enp0s3가 dhcp 서버에서 192.168.1.6 IP를 가져온 것을 확인했습니다. 연결된 프로필 Myoffice1에 dhcp 구성이 있기 때문입니다.

이름이 static1인 연결 프로필을 “up” 가져오면 내 장치는 다음에 정의된 대로 고정 IP 192.168.1.40을 사용하게 됩니다. 연결 프로필.

nmcli con down Myoffice1 ; nmcli con up static1
nmcli con show

IP 주소를 다시 살펴보겠습니다.

ip a

첫 번째 연결 프로필을 만들 수 있습니다. 정의해야 하는 최소 속성은 type, ifname,con-name입니다.

  • type - 연결 유형입니다.
  • ifname – 연결에 할당된 장치 이름입니다.
  • con-name - 연결 이름입니다.

Linux에서 새 이더넷 연결 만들기

enp0s3 장치에 할당된 Myhome1이라는 이름으로 새 이더넷 연결을 만들어 보겠습니다.

nmcli con add type ethernet con-name Myhome1 ifname enp0s3

구성을 확인하세요.

cat ifcfg-Myhome1

보시다시피 고정 IP 주소를 제공하지 않았기 때문에 BOOTPROTO=dhcp가 있습니다.

힌트: “nmcli con mod“ 명령을 사용하면 모든 연결을 수정할 수 있습니다. 그러나 DHCP 연결을 수정하고 정적으로 변경하는 경우 “ipv4.method ”“auto ”에서 “manual ”로 변경하는 것을 잊지 마세요. . 그렇지 않으면 두 개의 IP 주소(DHCP 서버의 IP 주소와 고정 IP 주소)가 생성됩니다.

고정 IP 192.168.1.50, 서브넷을 사용하여 enp0s3 장치에 할당될 이름이 static2인 새 이더넷 연결 프로필을 만들어 보겠습니다. 마스크 255.255.255.0=24, 및 게이트웨이 192.168.1.1.

nmcli con add type ethernet con-name static2 ifname enp0s3 ip4 192.168.1.50/24 gw4 192.168.1.1

구성을 확인하세요.

cat ifcfg-static2

Linux에서 DNS 서버 수정

마지막 연결 프로필을 수정하고 두 개의 DNS 서버를 추가해 보겠습니다.

nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

힌트: 여기서 주의해야 할 사항이 있습니다. 연결을 추가할 때와 수정할 때 IP 주소 및 게이트웨이 속성의 이름이 다릅니다. 연결을 추가할 때는 “ip4 ”“gw4 ”를 사용하고, 연결을 수정할 때는 “ipv4 ”“를 사용합니다. gwv4”.

Linux에서 이더넷 연결 시작

이제 이 연결 프로필을 불러오겠습니다.

nmcli con down static1 ; nmcli con up static2

보시다시피 enp0s3 기기는 이제 192.168.1.50의 IP 주소를 갖습니다.

ip a

힌트: 수정할 수 있는 속성이 많이 있습니다. 기억나지 않는다면 “nmcli con show ”를 입력하고 그 뒤에 연결 이름을 입력하여 도움을 받을 수 있습니다.

nmcli con show static2

소문자로 작성된 모든 속성을 수정할 수 있습니다.

예: 연결 프로필을 종료하면 NetworkManager는 다른 연결 프로필을 검색하여 자동으로 표시합니다. (확인하기 위한 연습으로 남겨둡니다). 연결 프로필이 자동 연결되는 것을 원하지 않는 경우:

nmcli con mod static2 connection.autoconnect no

마지막 연습은 매우 유용합니다. 연결 프로필을 만들었지만 이를 특정 사용자가 사용하도록 하려고 합니다. 사용자를 분류하는 것이 좋습니다!

Linux에서 사용자에게 이더넷 연결 권한 설정

stella 사용자만 이 프로필을 사용할 수 있습니다.

nmcli con mod static2 connection.permissions stella

힌트: 두 명 이상의 사용자에게 권한을 부여하려면 사이에 공백 없이 user:user1,user2를 입력해야 합니다.

nmcli con mod static2 connection.permissions user:stella,john

다른 사용자로 로그인하면 이 연결 프로필을 “위로” 가져올 수 없습니다.

nmcli con show
nmcli con up static2
ls /etc/sysconfig/network-scripts

연결이 존재하는 것으로 확인되더라도 'static2'가 존재하지 않습니다라는 오류 메시지가 나타납니다. 이는 현재 사용자에게 이 연결을 설정할 권한이 없기 때문입니다.

결론: 주저하지 말고 nmcli를 사용하세요. 쉽고 도움이 됩니다.