Ubuntu에서 IP 주소 확인하는 방법: ip, hostname, curl, nmcli 완벽 가이드

1. IP 주소란 무엇인가?

IP 주소는 네트워크에서 장치를 식별하기 위한 고유한 번호입니다. 인터넷이나 로컬 네트워크에서 통신할 때 데이터 송수신을 위해 반드시 필요합니다. IP 주소에는 주로 IPv4와 IPv6 두 가지 종류가 있습니다. IPv4는 “192.168.0.1”과 같은 32비트 주소 형식이고, IPv6는 “2001:0db8:85a3:0000:0000:8a2e:0370:7334″과 같은 128비트 주소 형식입니다. IPv6는 주소 공간을 확장하여 더 많은 장치를 지원하기 위해 사용됩니다.

2. Ubuntu에서 IP 주소를 확인하는 기본 명령어

Ubuntu에서는 IP 주소를 확인하기 위한 다양한 명령어가 제공됩니다. 아래 명령어를 사용하면 시스템에 할당된 IP 주소를 쉽게 확인할 수 있습니다.

2.1 ip addr show 명령어

ip addr show는 최신 Linux 배포판에서 권장되는 강력한 명령어로, 네트워크 인터페이스에 할당된 IPv4 및 IPv6 주소를 표시합니다. 사용 예시:
$ sudo ip addr show
출력 예시:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic ens33
       valid_lft 86381sec preferred_lft 86381sec
    inet6 fe80::250:56ff:fe9a:de91/64 scope link 
       valid_lft forever preferred_lft forever
  • inet 뒤에 오는 “192.168.1.10/24″가 IPv4 주소입니다. “/24″는 CIDR 표기로, 서브넷 마스크의 길이를 나타내며 (255.255.255.0과 동일) 처음 24비트가 네트워크 부분, 나머지 8비트가 호스트 부분을 의미합니다.
  • inet6 뒤에 오는 값이 IPv6 주소로, “fe80::250:56ff:fe9a:de91″과 같이 표시됩니다.
추가 설명:
  • brd는 브로드캐스트 주소를 의미합니다.
  • scope는 주소의 범위를 나타내며, global은 전 세계적으로 유효한 글로벌 범위(인터넷 전체), link는 링크 로컬 범위(동일 네트워크 세그먼트 내)를 의미합니다.

2.2 hostname -I 명령어

hostname -I 명령어는 시스템에 할당된 모든 IP 주소를 공백으로 구분하여 표시합니다. 단순히 IP 주소만 빠르게 확인하고 싶을 때 유용합니다. 사용 예시:
$ hostname -I
출력 예시:
192.168.1.10 fe80::250:56ff:fe9a:de91
  • 첫 번째 값이 IPv4 주소이고, 다음 값이 IPv6 주소입니다. 이 명령어는 상세 정보를 제공하지 않고, 인터페이스에 할당된 IP 주소만 단순히 나열합니다.
기본 인터페이스의 IP 주소:
  • 기본 네트워크 인터페이스의 IP 주소를 확인하려면 다음 명령어를 사용합니다:
$ ip route get 1.1.1.1
이 명령어는 지정된 주소로 가는 경로 정보를 표시하며, 기본 인터페이스를 보여줍니다.

2.3 curl ifconfig.me 명령어

curl ifconfig.me 명령어는 외부 서비스를 호출하여 퍼블릭 IP 주소를 확인합니다. 이 명령어는 인터넷 연결이 필요하며, 외부에서 보이는 자신의 IP 주소를 확인할 때 유용합니다. 다만, 외부 서버와 통신하기 때문에 프라이버시에 주의해야 합니다. 사용 예시:
$ curl ifconfig.me
출력 예시:
203.0.113.50
이 출력은 인터넷에서 보이는 글로벌 IP 주소입니다. 프라이버시 주의사항:
  • curl ifconfig.me는 외부 서버에 IP 주소 정보를 전송합니다. 프라이버시가 걱정된다면 라우터의 설정 화면에서 직접 확인하는 등 다른 방법을 고려하세요.
공인 IP 주소와 사설 IP 주소:
  • ip addr show에서 확인되는 것은 로컬 네트워크에서 사용되는 사설 IP 주소이고, curl ifconfig.me가 반환하는 것은 인터넷 접속에 사용되는 글로벌 IP 주소입니다. NAT(네트워크 주소 변환)를 사용하는 경우 내부와 외부의 IP 주소가 다를 수 있습니다. NAT를 통해 여러 장치가 하나의 퍼블릭 IP 주소를 공유해 인터넷에 접속할 수 있습니다.

3. 구식 명령어 ifconfig와 그 대체

ifconfig는 과거 Linux에서 표준적으로 사용되던 네트워크 관리 명령어였지만, 현재는 비권장 상태이며 최신 배포판에는 기본적으로 포함되지 않습니다. 대신 더 강력한 ip 명령어 사용이 권장됩니다. ifconfig 설치:
$ sudo apt install net-tools
사용 예시:
$ sudo ifconfig
출력 예시:
inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
  • “inet” 뒤에 오는 “192.168.1.10”이 IPv4 주소입니다.
ifconfig의 한계:
  • ifconfig는 모든 네트워크 인터페이스를 표시하지 않을 수 있으며, 특히 가상 인터페이스나 IPv6 주소 정보를 제공하지 않는 경우가 있습니다. ip 명령어는 더 포괄적이고 최신 네트워크 정보를 제공합니다.

4. 네트워크 매니저 활용

4.1 nmcli 명령어

nmcli는 NetworkManager를 제어하기 위한 CLI 도구로, 네트워크 장치의 상세 정보를 확인할 수 있습니다. nmcli가 설치되어 있지 않다면 다음 명령어로 설치할 수 있습니다. 설치 방법:
$ sudo apt install network-manager
사용 예시:
$ nmcli device show
출력 예시:
IP4.ADDRESS[1]:                         192.168.1.10/24
  • “IP4.ADDRESS[1]” 뒤에 오는 “192.168.1.10”이 IPv4 주소입니다.
NetworkManager 상태 확인:
  • NetworkManager가 실행 중인지 확인하려면 다음 명령어를 사용합니다:
$ systemctl status NetworkManager

5. 다양한 상황에서의 IP 주소 확인

IP 주소 확인은 여러 상황에서 필요합니다. 네트워크 연결 문제 해결, 서버 설정, 원격 접속 준비 등 다양한 경우에 맞는 명령어를 알고 있으면 네트워크 환경과 상황에 따라 적절한 방법을 선택할 수 있습니다. 트러블슈팅 팁:
  • 네트워크 문제: IP 주소가 올바르게 설정되지 않으면 네트워크에 연결할 수 없습니다. ip addr show로 설정을 확인하고 올바른 인터페이스에 IP 주소가 할당되어 있는지 확인하세요. 또한 네트워크 설정 변경 시에는 sudo가 필요할 수 있습니다.
  • 원격 접속 설정: 서버에 원격 접속을 설정할 때는 올바른 퍼블릭 IP 주소를 알아야 합니다. curl ifconfig.me로 퍼블릭 IP 주소를 확인하고, 라우터의 포트 포워딩이 올바르게 설정되어 있는지 점검하세요.
  • 연결 확인: 네트워크 연결 상태를 확인할 때는 ping 명령어로 특정 호스트와 정상적으로 통신이 되는지 테스트할 수 있습니다. 예를 들어 ping google.com으로 인터넷 연결 여부를 확인합니다. 또한 traceroute 명령어로 패킷이 네트워크를 통과하는 경로를 확인하여 지연이나 문제가 발생하는 지점을 특정할 수 있습니다.
$ ping google.com
$ traceroute google.com
  • ping 결과에서 응답 시간과 패킷 손실 여부를 확인합니다. 응답이 없다면 연결에 문제가 있을 가능성이 있습니다.
  • traceroute에서는 각 홉(hop)마다 지연 시간을 확인하고, 어느 구간에서 지연이 발생하는지 파악할 수 있습니다.

6. 요약

Ubuntu에서 IP 주소를 확인하는 방법에는 여러 가지가 있습니다. 각 명령어는 고유한 장점을 가지고 있으며, 상황에 맞는 최적의 방법을 선택하는 것이 중요합니다. ip addr show는 상세한 네트워크 정보를 제공하고, hostname -I는 단순히 IP 주소를 빠르게 확인할 수 있습니다. curl ifconfig.me는 글로벌 IP 주소를 확인하는 데 유용하지만 프라이버시 주의가 필요합니다. ifconfig는 현재 비권장이지만 특정 상황에서 여전히 사용될 수 있습니다. 이 명령어들을 익히면 Ubuntu에서 네트워크 관리가 더욱 효율적으로 이루어집니다. 특히 네트워크 트러블슈팅에서는 문제를 신속하게 파악하고 해결책을 찾기 위해 적절한 명령어를 구분해 사용하는 것이 중요합니다. 또한 NAT(네트워크 주소 변환)와 IP 주소 개념을 이해하면 네트워크 구성 및 보안에 대한 이해를 더욱 심화시킬 수 있습니다. 공식 문서 및 기타 자료를 참고하여 네트워크 관리 기술을 향상시키세요. 참고 리소스: