[리눅스] 네트워크 명령어 및 설정 파일

[리눅스] 네트워크 명령어 및 설정 파일

목차

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.confnameserver 항목으로 기록된다. 다만 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 실행 메인 화면 - 리눅스 네트워크 명령어

[TAB]과 방향키로 ‘연결 편집(Edit a connection)’에 커서를 올리고 ENTER를 누른다. 그러면 인터페이스 목록이 나오는데, 설정할 장치(예: ens32)를 고르고 ‘편집…(Edit)’으로 이동해 ENTER를 누르면 된다.

nmtui 연결 편집 메뉴 - 인터페이스 선택

편집 화면에서 IPv4 설정을 Manual(수동)로 바꾸고 IP 주소·게이트웨이·DNS를 입력한다. 본래 자동 할당(DHCP) 상태였다면 수동으로 전환하는 것이다. 이 실습에서 입력한 값은 다음과 같다.

  • IP 주소 192.168.111.129/24
  • 게이트웨이 192.168.111.2
  • DNS 서버 192.168.111.2
nmtui 고정 IP·게이트웨이·DNS 입력 화면

입력을 마치면 OK로 저장하고 메인 메뉴로 빠져나온다. 이제 변경한 연결을 다시 활성화해 설정을 적용한다.

# 연결 재활성화 (권장)
nmcli connection up ens32

# 또는 NetworkManager 재시작
systemctl restart NetworkManager
systemctl status NetworkManager
NetworkManager 서비스 재시작 후 active 상태 확인

적용이 끝나면 검증한다. 먼저 nslookup으로 DNS가 설정대로 잡혔는지 확인한다.

nslookup으로 DNS 서버 확인 결과

설정한 DNS(192.168.111.2)가 정상적으로 조회됐다. 마지막으로 ping으로 외부 통신이 되는지 확인한다. 구글은 ping에 잘 응답한다.

ping 응답 정상 - 네트워크 연결 확인

응답(reply)이 돌아오면 네트워크가 정상이다. 반대로 아래처럼 응답이 없는 경우도 있는데, 이는 회선 장애가 아니라 해당 사이트가 ping(ICMP) 응답을 막아 둔 경우가 대부분이다.

ping 응답 없음 사례 - ICMP 차단 사이트

따라서 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

💬 댓글을 남기려면?
첫 댓글을 남겨보세요 ✨

이 콘텐츠가 도움이 됐나요?

누스쿨 커뮤니티에서 더 많은 커리어 전략을 나눠요