안녕하세요! 지난 시간에 외부 저장장치를 커맨드 라인으로 마운트하는 방법을 살펴본 데 이어, 오늘은 라즈베리파이 프로젝트의 안정성을 한층 더 끌어올려 줄 ‘네트워킹(Predictable Networking): 고정 IP 설정 및 네트워크 진단’에 대해 알아보겠습니다.

라즈베리파이에 랜 케이블을 꽂거나 와이파이를 연결하면 기본적으로 공유기가 알아서 빈 IP 주소를 할당해 줍니다. 매우 편리하지만, 라즈베리파이를 재부팅할 때마다 이 주소가 임의로 바뀔 수 있다는 단점이 있습니다.

만약 라즈베리파이로 원격 서버(SSH, VNC)를 운영하거나, 로봇 공학 및 센서 제어용 독립 네트워크 프로젝트를 빌드 중이라면 언제나 같은 주소로 접속할 수 있는 ‘고정 IP(Static IP)’ 설정이 필수입니다. 최신 라즈베리파이 OS의 표준 도구인 nmcli를 활용해 네트워크를 완벽하게 제어하는 방법을 공유합니다!


🌐 1. DHCP와 사설 IP 대역 이해하기

우리가 네트워크 설정을 다루기 전에 꼭 알아야 할 기초 개념이 있습니다.

  • DHCP (Dynamic Host Configuration Protocol): 공유기(라우터)가 네트워크에 참여한 모든 장치(스마트폰, PC, 라즈베리파이 등)에 중복되지 않는 IP 주소를 자동으로 나누어주고 관리해 주는 동적 호스트 구성 프로토콜입니다.
  • 사설 IP 대역 (Private IP): 보통 가정이나 교실 안에서 쓰는 주소로, 외부 인터넷망과 구별되는 우리들만의 내부 주소입니다. 대개 192.168.x.x 형태로 시작하는 네 개의 숫자 쌍(IPv4)을 사용합니다. (192.168.0.0 ~ 192.168.255.255)

현재 내 라즈베리파이가 할당받은 IP 주소를 가장 빠르게 확인하고 싶다면 터미널에 아래 명령어를 입력하면 됩니다.

hostname -I

(전통적인 ifconfig 명령어를 사용할 경우, 유선 랜은 eth0 섹션 아래에서, 와이파이는 wlan0 섹션 아래에서 inet 항목을 찾으면 확인 전용 IP를 볼 수 있습니다.)


⚙️ 2. NetworkManager(nmcli) 기반 고정 IP 설정 실전

과거 라즈베리파이 OS는 /etc/dhcpcd.conf 파일을 수정해 고정 IP를 잡았으나, 최신 버전부터는 네트워크 관리 시스템이 NetworkManager로 통합되었습니다. 따라서 이제는 커맨드 라인 도구인 nmcli를 사용하는 것이 표준 표준입니다.

① 현재 연결 상태(커넥션 이름) 확인

먼저 장치의 연결 상태와 수정할 타겟 ‘연결 이름(CONNECTION)’을 조회합니다.

sudo nmcli dev status

출력 결과에서 유선 랜(ethernet)의 상태가 connected이고, 연결 이름이 Wired connection 1인 것을 확인했다면 준비가 끝났습니다.

② 유선 이더넷 고정 IP 설정 실행

명령어가 길기 때문에 역슬래시(\) 기호를 사용해 두 줄로 나누어 입력할 수 있습니다.

sudo nmcli con mod "Wired connection 1" \
ipv4.addresses 192.168.1.253/24 ipv4.gateway 192.168.1.1 ipv4.method manual
  • ipv4.addresses 192.168.1.253/24: 라즈베리파이에 부여할 원하는 고정 IP 주소와 서브넷 마스크 수치(/24는 255.255.255.0을 의미)입니다.
  • ipv4.gateway 192.168.1.1: 우리 집 공유기(라우터)의 IP 주소입니다.
  • ipv4.method manual: 자동 할당(DHCP) 대신 수동 설정을 적용하겠다는 뜻입니다.

💡 [추가 꿀팁] 내 공유기 게이트웨이 주소를 모른다면? 터미널에 ip route show 또는 route -n을 입력해 보세요. default via 옆에 나오는 IP 주소가 바로 현재 설정해야 할 게이트웨이(공유기) 주소입니다.

💡 [추가 꿀팁] 와이파이(WiFi) 커넥션을 고정 IP로 바꾸고 싶다면? 연결 이름 부분에 와이파이 프로필명(SSID 이름, 예: MyHome_WiFi)을 넣고 장치명을 변경해 주면 됩니다. sudo nmcli con mod "MyHome_WiFi" ipv4.addresses 192.168.1.254/24 ipv4.gateway 192.168.1.1 ipv4.method manual

③ 변경 사항 즉시 반영 및 검증

설정을 바꾼 후 매번 시스템을 재부팅할 필요는 없습니다. 아래 명령어로 해당 디바이스에 설정을 즉시 재적용할 수 있습니다.

sudo nmcli dev reapply eth0

(완전한 동기화를 원하신다면 sudo shutdown -r now로 재부팅하셔도 좋습니다.) 다시 hostname -I를 입력했을 때 내가 지정한 주소가 명확하게 출력된다면 성공입니다.

④ 원래대로 자동 IP(DHCP) 복구하기

만약 고정 IP 설정을 해제하고 다시 공유기가 주는 대로 자동 할당받고 싶다면, 설정을 공백("")과 auto로 돌려놓으면 됩니다.

sudo nmcli con mod "Wired connection 1" \
ipv4.addresses "" ipv4.gateway "" ipv4.method auto
sudo nmcli dev reapply eth0

📡 3. 핑(Ping) 명령어로 네트워크 무결성 진단하기

고정 IP 설정이 끝났다면 외부 및 내부와 통신이 매끄럽게 연결되었는지 진단할 차례입니다. 네트워크 점검 무기고의 가장 기본이자 강력한 무기는 바로 ping입니다.

ping은 상대 장치로 ICMP(인터넷 제어 메시지 프로토콜) 패킷을 보내어 반응을 체크합니다.

① 루프백(Localhost) 테스트

ping localhost

이 명령어는 네트워크 카드 칩셋 자체와 도메인 해석 기능이 내 PC 내부에서 정상 작동하는지 테스트합니다. 성공 시 가상 루프백 주소인 127.0.0.1로부터 응답을 받습니다.

② 다른 PC에서 라즈베리파이로 핑 날리기

동일한 와이파이/랜에 연결된 작업용 윈도우 PC나 맥북 터미널을 열고, 방금 지정한 라즈베리파이 고정 IP로 패킷을 날려봅니다.

ping 192.168.1.253

윈도우는 기본 4번만 시도하지만, 리눅스나 맥 환경에서는 사용자가 Ctrl + C를 눌러 강제 중단할 때까지 멈추지 않고 계속 핑을 보냅니다.

③ 횟수 지정하여 외부 웹서버 테스트

라즈베리파이가 외부 인터넷 세상과도 잘 통하는지 확인하기 위해 지정된 횟수(-c 옵션)만큼 외부 도메인에 핑을 테스트합니다.

# 라즈베리파이 공식 사이트로 5번만 핑 전송 테스트
ping -c 5 raspberrypi.com

출력 하단의 packet loss 0% 문구를 확인할 수 있다면 유실 없이 네트워크가 100% 쾌적하게 뚫린 것입니다!


🌐 4. 다가오는 미래: IPv6의 도래

우리가 흔히 사용하는 192.168.x.x 방식은 약 43억 개의 주소만 만들 수 있는 기존의 IPv4 표준입니다. 전 세계 사물인터넷(IoT) 장비가 폭발적으로 늘어남에 따라 주소 고갈을 해결하기 위해 16진수로 이루어진 거대한 128비트 체계인 IPv6 표준(예: fd51:42f8:caae:d92e::1)의 도입 속도가 빨라지고 있습니다. 최신 라즈베리파이 OS 역시 이 IPv6 체계를 완벽하게 네이티브 지원하고 있습니다.


📝 요약 및 결론

명령어 핵심 기능
hostname -I 현재 할당된 내 라즈베리파이 IP 주소 확인
sudo nmcli dev status 네트워크 디바이스 및 커넥션 이름 조회
sudo nmcli con mod... 고정 IP 주소, 게이트웨이 수동 입력 및 고정화
ping -c [횟수] [목적지] 장치 간 연결 신뢰성 및 패킷 손실률 자가 진단

이제 라즈베리파이에 움직이지 않는 고유의 영구적인 네트워크 주소를 부여했으니, 주소가 바뀔까 걱정할 필요 없이 든든한 사설 서버 인프라가 완성되었습니다.

네트워크 명령어가 먹히지 않거나 게이트웨이 매핑 중 에러가 발생하신다면 언제든 댓글 남겨주세요! 😊

댓글 남기기