InfraPlatform

[꿀팁]Linux nmcli 사용법 - 네트웍 ip 설정하기

IT오이시이 2024. 12. 21. 05:28
728x90

Redhat 리눅스 8 이상에서 네트워크 IP 설정을 수동으로 설정하는 방법을 소개합니다.

예전에는 ifconfig 나 setup tool을 통해 쉽게 등록했는데 그런 기능들이 사라지고 별도 명령을 이용하게 됩니다.

 

Linux nmcli를 이용하여 네트워크 IP 수동 설정하기

 
리눅스 버전이 바뀌면서 새로운 환경 설정 명령들이 나옵니다.

CentOs/ RHEL 8 버전부터 service network restart와 systemctl restart network 등 network.service는 지원하지 않습니다.


리눅스 ip 설정

nmcli는 네트워크 ip 설정을 지원하는 명령입니다. (nmcli: Console 방식,  nmtui : GUI 방식)

네트워크 설정을 위해서는 NetworkManager.service의 nmcli 명령어를 사용해야 합니다.

nmcli는 NetworkManager의 커맨드라인 인터페이스입니다. 이를 통해 네트워크 연결을 관리하고 설정할 수 있습니다. nmcli는 주로 레드헷 리눅스 계열 시스템에서 사용됩니다.


1. [nmcli 기본 명령어 구조]

nmcli [OPTIONS] [OBJECT] [COMMAND] [ARGS...]
   OBJECT: 네트워크 리소스 유형 (예: connection, device, networking 등)
   COMMAND: 수행할 작업 (예: show, add, delete 등)
   ARGS...: 명령어에 대한 추가 인자

 

사용법 : nmcli [<옵션>] <개체> { <명령> | help }

<옵션>
  -a, --ask                                매개변수 누락되면 물어보기
  -c, --colors auto|yes|no                 출력에 색을 사용할지 여부
  -e, --escape yes|no                      값에 열 구분 기호를 이스케이프
  -f, --fields <필드,...>|all|common       출력할 필드 지정
  -g, --get-values <필드,...>|all|common   '-m tabular -t -f' 옵션의 줄임
  -h, --help                               이 도움말 표시
  -m, --mode tabular|multiline             출력 모드
  -o, --overview                           개요 모드
  -p, --pretty                             예쁜 출력
  -s, --show-secrets                       암호 표시 허용
  -t, --terse                              간결하게 출력
  -v, --version                            프로그램 버전 표시
  -w, --wait <초>                          작업을 마칠 때 기다리는 제한 시간을 설정

 
 
2. 연결 상태 확인

# 연결 상태 확인
nmcli connection show

nmcli con show


# 연결 세부 상태 확인
nmcli connection show <connection_name>

 
 
3. 연결 수정

# consol방식 network 수정
$ nmcli

# GUI 방식 network 수정
$ nmtui

 
(참고)
[ nmcli로 IP 네트워킹 구성 ] https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/7/html/networking_guide/sec-Configuring_IP_Networking_with_nmcli
 
 
 
4. 수정 사항 reload
   - 연결 프로필을 다시 로드합니다.

# 모든 연결 프로필을 다시 Reload
nmcli connection reload

# 특정 Config 설정 Reload
nmcli con load /etc/sysconfig/network-scripts/ifcfg-ifname

 
 


 
우선 NetworkManager.service를 통해서 서비스의 기동 상태를 확인합니다.


[기동 된 NETWORK MANAGER 서비스 확인]

systemctl status NetworkManager.service
systemctl start NetworkManager.service


[네트워크 디바이스 설정 상태 확인]

nmcli dev status
nmcli con show
ip addr show enp0s8



[네트워크 연결 설정 불러오기]

- /etc/sysconfig/network-scripts/ifcfg-enp* 에서 수정 시 reload 명령어 수행
 

nmcli con reload



[네트워크 연결 생성]

- enp0s8 이라는 정적 연결(connection)을 enp0s80 라는 device로 정적 연결

nmcli con add con-name enp0s8 type ethernet ifname enp0s8
nmcli con add con-name enp0s8 type ethernet ifname enp0s80 ip4 192.168.56.103/24 gw4 192.168.56.254

 

[네트워크 연결 삭제]

nmcli con del epns0

 - (/etc/sysconfig/network-scripts/ 안의 파일도 같이 삭제한다)


[네트워크 연결 활성화]

nmcli con up enp0s8



[네트워크 연결 비활성화]

nmcli con down enp0s8

 

[네트워크 연결 수정]

nmcli con modify enp0s8

​(예시)
[root@node2 apache-pulsar]# nmcli dev status

DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected enp0s3
enp0s8 ethernet connected enp0s8
virbr0 bridge connected virbr0
lo loopback unmanaged --


# 수정 사항 리로드
nmcli con reload
nmcli connection reload

 

728x90
반응형