Rocky Linux 네트워크 설정 삽질 끝에 찾은 확실한 방법 3가지

Rocky Linux 서버에 고정 IP를 잡으려다 먹통이 된 경험? nmcli, nmtui, keyfile 직접 수정까지 세 가지 방법을 실전 삽질 끝에 정리한 네트워크 설정 가이드입니다.

Rocky Linux 서버에 고정 IP를 잡으려다 네트워크가 먹통이 된 경험, 한 번쯤 있지 않나요? nmcli, nmtui, 설정 파일 직접 수정까지 세 가지 방법을 직접 시도해보고 정리한 실전 가이드입니다.

CentOS 7 쓰던 시절에는 /etc/sysconfig/network-scripts/ifcfg-eth0 파일 열어서 IPADDR 넣고 service network restart 치면 끝이었거든요. 근데 Rocky Linux 9부터 이 방식이 사실상 쓸모없어졌어요. network-scripts 패키지가 deprecated됐고, Rocky Linux 10에서는 아예 제거되었습니다.

저도 처음에 CentOS 습관대로 ifcfg 파일부터 만들었다가 한 시간을 날렸어요. 설정은 분명히 맞는데 인터페이스가 올라오질 않더라고요. 결국 원인은 NetworkManager가 keyfile 방식으로 바뀌었기 때문이었습니다. 이런 삽질을 안 하려면 버전별 차이부터 제대로 알아야 해요.

nmcli device status 명령어 실행
nmcli device status 명령어 실행

Rocky Linux 네트워크, CentOS 때와 뭐가 달라졌나

핵심은 딱 하나예요. NetworkManager가 전면에 나서고, ifcfg 파일이 퇴장했다는 겁니다. Rocky Linux 8까지는 /etc/sysconfig/network-scripts/ 디렉토리에 ifcfg-ens33 같은 파일을 만들어서 네트워크를 잡았잖아요. Rocky 9부터 이 방식이 deprecated 처리됐고, 10에서는 완전히 사라졌습니다.

대신 NetworkManager가 기본 네트워크 관리자로 확정됐어요. 설정 파일 포맷도 ifcfg에서 keyfile(.nmconnection 확장자)로 바뀌었고, 저장 경로도 /etc/NetworkManager/system-connections/로 이동했습니다. 그러니까 CentOS 7이나 Rocky 8 방식을 그대로 쓰면 당연히 안 되는 거예요.

NetworkManager를 제어하는 도구는 크게 세 가지입니다. 커맨드라인의 nmcli, 텍스트 기반 GUI인 nmtui, 그리고 keyfile 직접 수정. 각각 장단점이 다르기 때문에 상황에 맞게 골라 쓰면 됩니다.

한 가지 흔한 오해가 있는데, ip addr 명령어로 IP를 추가하면 고정 IP 설정이 되는 줄 아는 분들이 꽤 있어요. 이 명령어는 임시로 IP를 붙이는 것이지, 재부팅하면 날아갑니다. 영구 설정은 반드시 NetworkManager를 통해야 해요.

nmcli로 고정 IP 설정하는 방법

서버 관리자라면 nmcli를 가장 많이 쓰게 될 거예요. SSH로 접속해서 바로 명령어를 때릴 수 있으니까요. 먼저 현재 네트워크 상태를 확인합니다.

nmcli device status를 치면 인터페이스 목록이 나와요. 보통 ens33이나 enp0s3 같은 이름으로 잡힙니다. 여기서 TYPE이 ethernet이고 STATE가 connected인 녀석이 현재 활성화된 인터페이스입니다.

고정 IP로 바꾸는 명령어는 이렇게 한 줄로 쭉 이어서 칠 수 있어요. nmcli con mod ens33 ipv4.method manual ipv4.address 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,8.8.4.4" connection.autoconnect yes — 이렇게요. 그 다음 nmcli con down ens33 && nmcli con up ens33으로 인터페이스를 재시작하면 적용됩니다.

💡 꿀팁

nmcli con mod 명령어에서 +ipv4.address를 쓰면 기존 IP에 추가하는 것이고, ipv4.address만 쓰면 완전히 교체하는 것입니다. 서버에 여러 IP를 물려야 할 때는 +를 붙이세요. 모르고 + 없이 치면 기존 IP가 날아가요.

설정이 제대로 들어갔는지 확인하려면 nmcli con show ens33 | grep ipv4를 쳐보세요. ipv4.method가 manual로 바뀌어 있고, ipv4.addresses에 내가 넣은 IP가 보이면 성공입니다. ip addr 명령어로도 확인할 수 있는데, inet 뒤에 나오는 주소가 내가 설정한 IP와 일치하면 됩니다.

nmtui 텍스트 GUI로 쉽게 설정하기

명령어 한 줄에 옵션이 주르륵 붙는 nmcli가 부담스러우면 nmtui를 쓰세요. 터미널에서 nmtui를 입력하면 파란색 텍스트 기반 GUI가 뜹니다. 마우스는 안 되지만 Tab 키와 방향키로 조작할 수 있어요.

처음 화면에서 "Edit a connection"을 선택하고 Enter를 누릅니다. 그러면 현재 이더넷 연결 목록이 나와요. 내 인터페이스를 선택하고 "Edit"으로 들어가면 됩니다.

IPv4 CONFIGURATION 옆에 < Automatic >이라고 적혀 있을 텐데, 이걸 < Manual >로 바꿔야 해요. 그 다음 Addresses에 192.168.1.100/24 형태로 IP를 넣고, Gateway에 192.168.1.1을 넣고, DNS servers에 8.8.8.8을 넣으면 끝입니다. 맨 아래 OK를 누르고 빠져나오세요.

여기서 중요한 게 하나 있는데, nmtui로 설정을 바꾼 뒤에는 반드시 인터페이스를 재시작해야 합니다. nmcli con down ens33 && nmcli con up ens33을 치거나, nmtui 메인 화면에서 "Activate a connection"을 통해 Deactivate 후 다시 Activate 해도 돼요.

IPv4 Manual 설정 화면
IPv4 Manual 설정 화면

설정 파일 직접 수정하는 법

nmcli나 nmtui를 쓰면 자동으로 설정 파일이 생성되긴 하는데, 가끔은 파일을 직접 열어서 수정해야 할 때가 있어요. 자동화 스크립트를 짤 때 특히 그렇습니다.

Rocky Linux 9에서는 /etc/NetworkManager/system-connections/ 경로에 .nmconnection 확장자로 저장됩니다. 이전 버전의 ifcfg 파일과 포맷이 완전히 다른 INI 스타일이에요. 파일을 열어보면 [connection], [ipv4], [ipv6] 같은 섹션으로 나뉘어 있습니다.

📊 실제 데이터

Rocky Linux 공식 문서 기준, Rocky 10에서는 ifcfg 파일 지원이 완전히 제거되었습니다. Rocky 9에서도 ifcfg는 deprecated 상태로, NetworkManager가 keyfile을 우선 읽습니다. 설정 파일 경로는 /etc/NetworkManager/system-connections/인터페이스명.nmconnection입니다.

keyfile의 핵심 내용만 보면 이렇습니다. [ipv4] 섹션 아래에 method=manual, address1=192.168.1.100/24,192.168.1.1 (IP/서브넷,게이트웨이 형태), dns=8.8.8.8;8.8.4.4; 이렇게 들어갑니다. 파일 수정 후에는 nmcli con reload를 치고 인터페이스를 재시작하면 반영돼요.

제가 처음 keyfile을 직접 수정했을 때 address1 형식을 잘못 넣어서 한참 헤맸어요. IP 뒤에 /24 빼먹으면 안 되고, 게이트웨이를 쉼표로 이어 붙이는 것도 ifcfg 방식과 완전히 달라서 주의가 필요합니다. 차라리 nmcli로 한 번 설정한 다음에 생성된 파일을 참고하는 게 빠릅니다.

방법 장점 단점
nmcli 빠르고 스크립트 연동 가능 옵션이 많아 초보에겐 복잡
nmtui 직관적 GUI, 진입장벽 낮음 화면 전환이 느림
keyfile 직접 수정 Ansible 등 자동화에 적합 문법 오류 시 네트워크 먹통

DNS 설정과 방화벽까지 한 번에

IP만 잡아놓고 DNS를 안 넣으면 ping 8.8.8.8은 되는데 ping google.com은 안 되는 황당한 상황이 벌어져요. 제가 실제로 그랬습니다. 고정 IP 설정할 때 DNS를 빼먹은 거였어요.

DNS 설정은 nmcli con mod ens33 ipv4.dns "8.8.8.8,8.8.4.4" 이렇게 추가하면 됩니다. 구글 DNS(8.8.8.8)나 Cloudflare DNS(1.1.1.1)를 주로 쓰는데, 사내 DNS 서버가 있으면 그걸 먼저 넣고 공용 DNS를 백업으로 넣는 게 좋아요.

방화벽도 빼놓을 수 없죠. Rocky Linux는 firewalld가 기본 방화벽입니다. 네트워크 설정 다 했는데 외부에서 SSH 접속이 안 된다? 십중팔구 방화벽 문제예요. systemctl status firewalld로 상태를 확인하고, firewall-cmd --list-all로 현재 열린 포트를 볼 수 있습니다.

특정 포트를 열려면 firewall-cmd --permanent --add-port=8080/tcp 이런 식으로 추가하고, firewall-cmd --reload를 쳐서 적용합니다. --permanent 없이 치면 재부팅 시 날아가니까 반드시 --permanent를 붙이세요. 서비스 단위로도 열 수 있어요. firewall-cmd --permanent --add-service=http 이렇게 하면 80번 포트가 열립니다.

방화벽 설정 확인
방화벽 설정 확인

네트워크 안 될 때 확인할 것들

솔직히 리눅스 네트워크 설정에서 가장 시간을 많이 잡아먹는 건 설정 자체가 아니라 "분명히 맞게 했는데 왜 안 되지?" 하는 트러블슈팅이거든요. 제가 수십 번 겪으면서 정리한 체크리스트를 공유합니다.

첫 번째로 NetworkManager 서비스가 돌고 있는지 확인하세요. systemctl status NetworkManager를 쳤을 때 active (running)이 아니면 아무것도 안 됩니다. 가끔 minimal 설치 후에 NetworkManager가 아예 설치 안 된 경우도 있어요. 이때는 dnf -y install NetworkManager NetworkManager-tui로 설치하면 됩니다.

⚠️ 주의

Rocky Linux 9에서 ifcfg 파일과 keyfile이 동시에 존재하면 NetworkManager가 혼란을 일으킬 수 있습니다. 특히 CentOS에서 마이그레이션한 서버라면 /etc/sysconfig/network-scripts/ 안에 남아 있는 옛날 ifcfg 파일을 백업 후 삭제하는 것이 안전합니다.

두 번째로 connection.autoconnect가 yes인지 확인해야 합니다. 이게 no로 되어 있으면 재부팅 후 인터페이스가 자동으로 올라오지 않아요. nmcli con show ens33 | grep autoconnect로 확인하고, no면 nmcli con mod ens33 connection.autoconnect yes로 바꿔주세요.

세 번째, 게이트웨이 주소가 맞는지 꼭 확인하세요. IP 대역은 맞게 넣었는데 게이트웨이를 엉뚱한 걸 넣으면 내부 통신은 되는데 외부로는 패킷이 못 나갑니다. ip route로 현재 라우팅 테이블을 보면 default via 뒤에 게이트웨이 주소가 보여요. 네 번째는 서브넷 마스크인데, /24를 빠뜨리고 IP만 넣으면 /32로 잡혀서 같은 대역 장비와도 통신이 안 됩니다.

마지막으로 단계별 ping 테스트를 추천합니다. 게이트웨이 ping → 외부 IP(8.8.8.8) ping → 도메인(google.com) ping 순서로 확인하면 어느 단계에서 막히는지 바로 알 수 있어요. 게이트웨이도 안 되면 IP/서브넷 문제, 외부 IP만 안 되면 게이트웨이 문제, 도메인만 안 되면 DNS 문제입니다.

ping 테스트로 네트워크 연결 점검
ping 테스트로 네트워크 연결 점검

자주 묻는 질문

Q. Rocky Linux에서 ifconfig 명령어가 안 됩니다.

minimal 설치 시 net-tools 패키지가 빠져 있기 때문이에요. dnf install net-tools로 설치할 수 있지만, 요즘은 ip addr 명령어를 쓰는 게 표준입니다. ifconfig보다 정보도 더 자세하게 나와요.

Q. DHCP에서 고정 IP로 바꾸면 기존 연결이 끊기나요?

네, 인터페이스를 down/up 하는 순간 기존 SSH 세션이 끊길 수 있습니다. 원격 작업이라면 콘솔 접근이 가능한 상태에서 변경하거나, nmcli con down ens33 && nmcli con up ens33을 한 줄로 묶어서 실행하세요.

Q. Rocky 9에서 /etc/resolv.conf를 직접 수정해도 되나요?

수정은 되지만 NetworkManager가 재시작되면 덮어씌울 수 있어요. DNS는 nmcli con mod 명령어로 ipv4.dns를 설정하는 게 영구 반영됩니다. resolv.conf는 확인용으로만 쓰세요.

Q. 인터페이스 이름이 ens33이 아닌데 어떻게 확인하나요?

nmcli device status 또는 ip link show를 실행하면 현재 시스템의 모든 인터페이스 이름이 나옵니다. 가상머신이면 enp0s3, 물리 서버면 eno1이나 ens192 등 환경마다 다릅니다.

Q. Rocky Linux 10에서 network-scripts를 쓸 수 있나요?

Rocky Linux 10에서는 network-scripts 패키지가 완전히 제거되었습니다. keyfile 방식의 NetworkManager만 사용 가능해요. Rocky 9에서도 deprecated 상태이므로 지금부터 keyfile에 익숙해지는 걸 권장합니다.

본 포스팅은 개인 경험과 공개 자료를 바탕으로 작성되었으며, 전문적인 의료·법률·재무 조언을 대체하지 않습니다. 정확한 정보는 해당 분야 전문가 또는 공식 기관에 확인하시기 바랍니다.

👉 함께 읽으면 좋은 글: Rocky Linux 초기 서버 세팅 가이드 — 보안부터 패키지 관리까지

👉 함께 읽으면 좋은 글: 리눅스 SSH 보안 설정 실전 가이드

👉 함께 읽으면 좋은 글: Rocky Linux vs Ubuntu Server 비교 — 어떤 걸 써야 할까

Rocky Linux 네트워크 설정은 결국 nmcli, nmtui, keyfile 직접 수정 이 세 가지로 귀결됩니다. 서버 운영 중이라면 nmcli 명령어에 익숙해지는 게 가장 실전적이에요.

CentOS에서 넘어온 분이라면 ifcfg 파일 습관부터 버리는 게 첫 번째고, 처음 리눅스를 접하는 분이라면 nmtui부터 시작하면 부담이 적습니다. 어떤 방법이든 설정 후 단계별 ping 테스트는 반드시 하세요.


도움이 됐다면 공유 한 번 부탁드려요. 네트워크 설정하다 막히는 부분이 있으면 댓글로 남겨주세요. 비슷한 상황을 겪어봤을 확률이 높아서 답변드릴 수 있을 거예요.