CentOS·RHEL 계열에서 네트워크를 다루려면 리눅스 네트워크 명령어와 설정 파일의 위치를 함께 알아야 한다. 이 글에서는 현행 표준인 ip·nmcli 명령으로 IP·게이트웨이·DNS를 확인·설정하는 방법, 호스트명·DNS·hosts 같은 주요 설정 파일, NetworkManager 서비스 제어를 정리한다. 마지막에는 nmtui로 고정 IP와 DNS를 잡는 실습까지 한눈에 살펴본다.
목차
네트워크 확인 명령 (ip · nmcli)
예전에는 ifconfig·route·netstat(net-tools 패키지)로 네트워크를 다뤘지만, 현재 CentOS·RHEL 계열의 표준은 iproute2 패키지의 ip 명령과 NetworkManager의 nmcli 명령이다. ifconfig는 기본 미설치 상태이거나 일부 정보(별칭 IP 등)를 제대로 보여주지 못할 수 있으니, 새로 익힌다면 ip·nmcli를 쓰는 편이 좋다.
ip 명령 — IP · 인터페이스 · 라우팅 확인
장치의 IP 주소, 인터페이스 상태(UP/DOWN), 라우팅 테이블을 모두 ip 하나로 확인한다.
| 명령 | 설명 | 옛 명령(net-tools) |
|---|---|---|
ip addr (또는 ip a) | 모든 인터페이스의 IP 주소·상태 표시 | ifconfig |
ip link | 인터페이스 상태·MAC 주소 표시 | ifconfig -a |
ip route (또는 ip r) | 커널 라우팅 테이블 표시 | route -n |
ip link set ens32 up/down | 인터페이스 활성/비활성 | ifup/ifdown |
ip addr를 실행하면 다음과 비슷한 출력이 나온다. inet 뒤가 IP 주소와 서브넷(/24), state UP이 인터페이스 활성 여부다.
# IP 주소 확인
ip addr show ens32
# 출력 예시
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ... state UP
link/ether 00:0c:29:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.111.129/24 brd 192.168.111.255 scope global ens32
nmcli — NetworkManager 명령행 도구
nmcli는 NetworkManager를 명령행에서 조작하는 도구다. 장치 상태를 보거나(device), 연결 프로필을 만들고 수정한다(connection). 설정을 영구 저장하고 바로 적용할 수 있어 스크립트 자동화에도 적합하다.
# 장치(인터페이스) 상태 확인
nmcli device status
# 연결(프로필) 목록 확인
nmcli connection show
# 고정 IP · 게이트웨이 · DNS 설정 (프로필 이름이 'ens32'인 경우)
nmcli connection modify ens32 ipv4.method manual
ipv4.addresses 192.168.111.129/24
ipv4.gateway 192.168.111.2
ipv4.dns 192.168.111.2
# 변경 사항 적용 (연결 재활성화)
nmcli connection up ens32
DNS 서버를 여러 개 지정할 때는 따옴표로 묶어 공백으로 나열한다. 예: ipv4.dns "8.8.8.8 8.8.4.4". 자동 IP(DHCP)로 되돌리려면 ipv4.method auto로 바꾸면 된다.
진단용 명령 (ping · nslookup)
네트워크가 정상 동작하는지, DNS가 제대로 설정됐는지 점검하는 명령이다.
# 응답(도달) 확인 — Ctrl+C로 중단
ping 8.8.8.8
ping google.com
# DNS 조회 테스트 (bind-utils 패키지 필요)
nslookup google.com
ping은 대상 호스트가 네트워크상에서 응답하는지 확인한다. 단, 응답이 없다고 무조건 장애는 아니다. 보안상 ICMP(ping) 응답을 막아 둔 사이트도 많기 때문이다. 8.8.8.8(구글 DNS)처럼 ping에 응답하는 대상으로 확인하면 회선 자체의 정상 여부를 판단할 수 있다.
네트워크 관련 설정 파일
네트워크 설정을 영구 저장하는 파일들의 위치다. 명령으로 설정하더라도 결국 이 파일에 기록되므로, 위치를 알아 두면 문제 진단에 유용하다.
| 파일 / 경로 | 역할 |
|---|---|
/etc/sysconfig/network-scripts/ifcfg-ens32 | 인터페이스별 IP·게이트웨이·DNS 설정 (ifcfg 형식, CentOS 7 기본) |
/etc/NetworkManager/system-connections/*.nmconnection | 인터페이스별 연결 프로필 (keyfile 형식, CentOS·RHEL 9 기본) |
/etc/resolv.conf | 네임서버(DNS) 정보 — 보통 NetworkManager가 자동 관리 |
/etc/hostname | 시스템 호스트명 |
/etc/hosts | 호스트명 ↔ IP 정적 매핑(로컬 DNS 역할) |
주의할 점은 버전에 따라 설정 파일 형식이 다르다는 것이다. CentOS 7·8은 전통적인 ifcfg-* 파일을 기본으로 쓰지만, CentOS Stream 9·RHEL 9부터는 ifcfg 형식이 폐기(deprecated)되고 keyfile 형식(/etc/NetworkManager/system-connections/)이 기본이 됐다. nmcli·nmtui 같은 NetworkManager 도구로 새 프로필을 만들면 9 버전에서는 keyfile로 저장된다. 그래서 손으로 ifcfg-* 파일을 편집하기보다 nmcli·nmtui로 설정하는 방식이 버전 간 호환성 면에서 더 안전하다.
호스트명 · DNS · hosts 설정
호스트명 (hostnamectl · /etc/hostname)
호스트명은 /etc/hostname을 직접 편집해도 되지만, systemd 환경에서는 hostnamectl을 쓰는 것이 표준이다. 변경 즉시 영구 적용된다.
# 현재 호스트명·시스템 정보 확인
hostnamectl
# 영구 호스트명 변경
hostnamectl set-hostname server01.example.com
여기서 server01.example.com 같은 전체 이름을 FQDN(Fully Qualified Domain Name, 전체 도메인 네임)이라 한다. 예를 들어 www.tistory.com에서 www가 호스트, tistory.com이 도메인이며, 둘을 합쳐 전체 경로를 표기한 것이 FQDN이다.
DNS (/etc/resolv.conf)
이름 해석에 사용할 네임서버는 /etc/resolv.conf에 nameserver 항목으로 기록된다. 다만 NetworkManager 환경에서는 이 파일이 자동 생성·관리되므로, 직접 편집하기보다 nmcli ... ipv4.dns로 지정하는 편이 안전하다.
# /etc/resolv.conf 예시
nameserver 192.168.111.2
nameserver 8.8.8.8
hosts (/etc/hosts)
/etc/hosts는 호스트명과 IP를 로컬에서 정적으로 매핑하는 파일이다. DNS보다 우선 조회되므로, 내부 서버를 이름으로 부르거나 테스트용으로 도메인을 임의 IP에 연결할 때 쓴다.
# /etc/hosts 예시
127.0.0.1 localhost
192.168.111.129 server01.example.com server01
NetworkManager 서비스 제어
NetworkManager는 네트워크 연결을 관리하는 데몬으로, CentOS·RHEL 계열의 네트워크 백엔드다. 설정을 변경한 뒤 적용하거나 상태를 확인할 때 systemctl로 제어한다.
# 상태 확인 / 시작 / 재시작 / 부팅 시 자동 실행
systemctl status NetworkManager
systemctl start NetworkManager
systemctl restart NetworkManager
systemctl enable NetworkManager
참고로 CentOS 7에서 흔히 쓰던 systemctl restart network(network.service)는 NetworkManager로 일원화되면서 CentOS·RHEL 8 이후 기본 제공되지 않는다. 8 이상에서는 연결만 다시 올리는 nmcli connection up [프로필]이나 systemctl restart NetworkManager를 사용한다.
[실습] nmtui로 고정 IP · DNS 설정
명령행이 익숙하지 않다면 텍스트 UI 도구인 nmtui(NetworkManager Text User Interface)로 같은 작업을 시각적으로 할 수 있다. root 사용자로 접속한 뒤 nmtui를 입력하고 ENTER를 누르면 메뉴 화면이 뜬다.
nmtui
![[리눅스] 네트워크 명령어 및 설정 파일 nmtui 실행 메인 화면 - 리눅스 네트워크 명령어](https://nuschool.cc/wp-content/uploads/2024/10/image-45.png)
[TAB]과 방향키로 ‘연결 편집(Edit a connection)’에 커서를 올리고 ENTER를 누른다. 그러면 인터페이스 목록이 나오는데, 설정할 장치(예: ens32)를 고르고 ‘편집…(Edit)’으로 이동해 ENTER를 누르면 된다.
![[리눅스] 네트워크 명령어 및 설정 파일 nmtui 연결 편집 메뉴 - 인터페이스 선택](https://nuschool.cc/wp-content/uploads/2024/07/image-10.png)
편집 화면에서 IPv4 설정을 Manual(수동)로 바꾸고 IP 주소·게이트웨이·DNS를 입력한다. 본래 자동 할당(DHCP) 상태였다면 수동으로 전환하는 것이다. 이 실습에서 입력한 값은 다음과 같다.
- IP 주소 192.168.111.129/24
- 게이트웨이 192.168.111.2
- DNS 서버 192.168.111.2
![[리눅스] 네트워크 명령어 및 설정 파일 nmtui 고정 IP·게이트웨이·DNS 입력 화면](https://nuschool.cc/wp-content/uploads/2024/07/image-11.png)
입력을 마치면 OK로 저장하고 메인 메뉴로 빠져나온다. 이제 변경한 연결을 다시 활성화해 설정을 적용한다.
# 연결 재활성화 (권장)
nmcli connection up ens32
# 또는 NetworkManager 재시작
systemctl restart NetworkManager
systemctl status NetworkManager
![[리눅스] 네트워크 명령어 및 설정 파일 NetworkManager 서비스 재시작 후 active 상태 확인](https://nuschool.cc/wp-content/uploads/2024/07/image-12.png)
적용이 끝나면 검증한다. 먼저 nslookup으로 DNS가 설정대로 잡혔는지 확인한다.
![[리눅스] 네트워크 명령어 및 설정 파일 nslookup으로 DNS 서버 확인 결과](https://nuschool.cc/wp-content/uploads/2024/10/image-47.png)
설정한 DNS(192.168.111.2)가 정상적으로 조회됐다. 마지막으로 ping으로 외부 통신이 되는지 확인한다. 구글은 ping에 잘 응답한다.
![[리눅스] 네트워크 명령어 및 설정 파일 ping 응답 정상 - 네트워크 연결 확인](https://nuschool.cc/wp-content/uploads/2024/10/image-48.png)
응답(reply)이 돌아오면 네트워크가 정상이다. 반대로 아래처럼 응답이 없는 경우도 있는데, 이는 회선 장애가 아니라 해당 사이트가 ping(ICMP) 응답을 막아 둔 경우가 대부분이다.
![[리눅스] 네트워크 명령어 및 설정 파일 ping 응답 없음 사례 - ICMP 차단 사이트](https://nuschool.cc/wp-content/uploads/2024/10/image-49.png)
따라서 ping이 응답하는 대상(8.8.8.8, google.com 등)으로 한 번이라도 정상 응답을 받았다면 회선은 정상으로 판단하면 된다.
자주 묻는 질문
ifconfig가 동작하지 않는다. 왜인가?
ifconfig는 net-tools 패키지에 들어 있는데, CentOS·RHEL 7 이후 기본 설치되지 않는다. ip addr를 쓰는 것이 표준이며, 굳이 필요하면 yum install net-tools로 설치할 수 있다.
systemctl restart network가 없다고 나온다
CentOS·RHEL 8부터 network.service(network-scripts)가 기본 제거되고 NetworkManager로 일원화됐다. nmcli connection up [프로필] 또는 systemctl restart NetworkManager를 사용하면 된다.
설정 파일을 직접 고쳤는데 반영이 안 된다
NetworkManager가 연결 프로필을 메모리에 들고 있어, 파일만 고치면 즉시 반영되지 않는다. nmcli connection reload로 다시 읽은 뒤 nmcli connection up [프로필]로 적용한다. /etc/resolv.conf처럼 자동 관리되는 파일은 손편집보다 nmcli 사용을 권장한다.
정리
리눅스 네트워크 설정은 ip·nmcli로 상태를 확인하고, nmcli 또는 nmtui로 IP·게이트웨이·DNS를 지정한 뒤 NetworkManager를 재적용하고 nslookup·ping으로 검증하는 흐름으로 진행된다. 설정은 ifcfg-*(CentOS 7·8) 또는 keyfile(/etc/NetworkManager/system-connections/, CentOS·RHEL 9)에 저장되고, 호스트명·DNS·hosts는 각각 /etc/hostname·/etc/resolv.conf·/etc/hosts에 기록되므로 위치를 기억해 두면 문제 진단이 빨라진다. 여기서 설정한 DNS를 직접 서버로 운영하고 싶다면 네임(DNS) 서버 구축 글을 이어서 참고하면 좋다.



💬 댓글 0