[꿀팁]Linux nmcli 사용법 - 네트웍 ip 설정하기
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