네트워크 기본 작업: 명령어 ping, ip addr, ifconfig
1. 네트워크 개념 소개: 약간의 이론
오늘 강의에서는 Linux의 네트워크 도구 작업 기본을 살펴볼 거야. 네트워크 노드의 가용성을 확인하고, 네트워크 인터페이스 상태와 설정을 분석하며, 네트워크 설정을 다루는 방법을 알게 될 거야.
네트워크는 IT 세계의 신경 시스템이야. 만약 네 브라우저가 웹사이트 페이지를 여는 방법에 대해 의문을 가진 적 있다면, 간단한 답을 주자면: 네트워크 덕분이야. 네가 어떤 역할을 하든 (개발자, 관리자, 엔지니어), 네트워크 기본을 이해하는 건 엄청 중요한 스킬이야.
그럼 네트워크가 뭐야? 네트워크는 데이터를 교환하기 위해 연결된 컴퓨터들의 집합이야. Linux에서 네트워크 관리는 기본 개념을 이해하는 것부터 시작돼:
- IP 주소: 네트워크에서 장치를 고유하게 식별하는 주소야. 이걸 네 컴퓨터의 우편 주소라고 상상해봐.
- 서브넷: 네트워크에서 장치들을 논리적으로 그룹화한 거야. 이건 주소가 있는 집들이 있는 지역과 비슷해.
- 게이트웨이: 네 로컬 네트워크 장치들이 인터넷이나 다른 서브넷에 연결할 수 있는 "세상으로 나가는 출구"야.
IP 주소에는 두 가지 유형이 있어: IPv4 (예: 192.168.1.1) 와 IPv6 (예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334). IPv4가 더 간단해서 이번 강의에서는 이걸 다룰 거야. IPv6는 멋지고 장기적인 표준이긴 한데, 나중에 배우자.
2. ping 명령어: 노드의 접근 가능성 확인하기
ping은 어떤 작업을 하나요?
ping은 네트워크에서 다른 노드가 접근 가능한지 확인하는 유틸리티야. 서버로 "안녕 메시지" 작은 패킷(ICMP 요청)을 보내고 응답을 기다려. 응답이 오면 괜찮은 거고, 응답이 안 오면 뭔가 문제가 있거나 (혹은 서버가 일부러 무시하는 걸 수도 있어... 무례하긴!).
ping을 어떻게 사용하나요?
이제 ping 명령어를 사용해 보자. 터미널을 열고 아래 명령어를 입력해봐:
ping 8.8.8.8
이 명령어는 Google의 공개 DNS 서버로 요청을 보낼 거야. 대략 이런 결과를 볼 수 있을 거야:
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=10.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=10.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=10.3 ms
이 출력은 대략 이런 의미야:
- icmp_seq: 보내진 요청의 번호.
- ttl: 패킷의 "수명" (네트워크 "점프"를 몇 번 할 수 있는지).
- time: 요청을 보내고 응답을 받는 데 걸린 시간(밀리초 단위).
보내는 요청의 수를 제한하려면 -c 플래그를 사용할 수 있어:
ping -c 4 8.8.8.8
이 명령어는 무한 루프 대신, 딱 4번만 요청을 보낼 거야.
실습: 로컬 호스트 및 인터넷 연결 확인하기
라우터의 IP 주소(보통 192.168.1.1 같은 거)와 8.8.8.8로 ping을 해봐. 이걸 통해 로컬 네트워크가 작동하는지, 인터넷에 접근할 수 있는지 확인할 수 있을 거야.
3. ip addr 명령어: 네트워크 인터페이스 확인하기
네트워크 인터페이스란?
네트워크 인터페이스는 컴퓨터가 네트워크와 "소통"하는 장치야. Ethernet (유선 연결), WLAN (무선 연결), 또는 특정 작업을 위해 만들어진 가상 인터페이스일 수도 있어.
ip addr 명령어는 현재 네트워크 인터페이스 설정을 보여줘. 실행해보자:
ip addr
결과는 아마 이렇게 나올 거야:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic enp0s3
inet6 fe80::1a2b:3c4d:5e6f:f7g8/64 scope link
여기서 보이는 것들은:
lo— 로컬 인터페이스 (localhost)야. 이 인터페이스의 주소는 항상127.0.0.1이야.enp0s3— 너의 Ethernet 어댑터 네트워크 인터페이스 이름이야.inet— 인터페이스의 IPv4 주소야.inet6— 인터페이스의 IPv6 주소야.
IP 주소를 임시로 설정하려면?
슈퍼유저 권한 (sudo)이 있다면, IP 주소를 임시로 설정할 수 있어:
sudo ip addr add 192.168.1.101/24 dev enp0s3
이 IP 주소는 재부팅 전까지 유효해.
4. ifconfig 명령어: 오래됐지만 아직도 인기 있는 도구
과거에는 네트워크 인터페이스를 관리하기 위해 ifconfig가 사용되었어. 요즘은 점점 사용이 줄어들고 (ip addr로 대체됨) 있지만 때로는 오래된 배포판에서 여전히 만나볼 수 있어.
인터페이스 상태 확인
ifconfig를 통해 인터페이스 상태를 보려면 다음을 실행하면 돼:
ifconfig
결과는 ip addr 명령어의 출력과 비슷할 거야.
인터페이스 활성화/비활성화
인터페이스를 활성화하거나 비활성화하려면 다음을 사용할 수 있어:
sudo ifconfig enp0s3 down
sudo ifconfig enp0s3 up
다시 말하지만, ifconfig는 모든 최신 배포판에서 지원되지 않아. 명령어를 찾을 수 없으면, net-tools 패키지를 설치해보거나 바로 ip addr로 전환하는 게 좋아.
5. 예제: 접근성과 네트워크 확인
이제 배운 내용을 작은 실습 예제로 통합해 볼게.
로컬 인터페이스의 접근성을 확인해봐:
ping 127.0.0.1네트워크의 IP 주소를 확인해봐:
ip addr새 IP 주소를 임시로 설정해봐:
sudo ip addr add 192.168.1.102/24 dev enp0s3 ip addr show enp0s3공용 노드의 접근성을 확인해봐:
ping -c 3 8.8.8.8오래된 배포판을 사용 중이라면 인터페이스를 전환해봐:
sudo ifconfig enp0s3 down sudo ifconfig enp0s3 up
이제 Linux에서 네트워크를 진단하기 위한 기본 도구들을 익혔어. ping, ip addr, 그리고 ifconfig 명령어들은 네트워크 관리 세계로 나아가기 위한 첫걸음이야. 앞으로 더 재미있는 것들이 기다리고 있어!
GO TO FULL VERSION