네트워크 관리 및 문제 해결을 위해 사용되는 Linux 네트워크 관련 명령어들을 상세히 설명해드리겠습니다.
1. ifconfig
ifconfig는 네트워크 인터페이스의 설정 및 상태를 표시하고, 설정을 변경하는 데 사용됩니다.
- 사용법:
ifconfig: 모든 네트워크 인터페이스의 상태를 출력.ifconfig eth0: 특정 인터페이스(예:eth0)의 상태를 출력.ifconfig eth0 up: 인터페이스를 활성화.ifconfig eth0 down: 인터페이스를 비활성화.ifconfig eth0 192.168.1.100 netmask 255.255.255.0: 특정 IP 주소 및 넷마스크를 설정.
2. ip
ip는 네트워크 인터페이스, 라우팅 테이블, DNS 설정 등을 관리하는 강력한 명령어입니다.
- 사용법:
ip addr show: 모든 인터페이스의 IP 주소 정보를 표시.ip link show: 네트워크 링크(인터페이스) 상태를 표시.ip route show: 라우팅 테이블을 표시.ip addr add 192.168.1.100/24 dev eth0: 특정 인터페이스에 IP 주소 추가.ip link set eth0 up: 인터페이스를 활성화.ip link set eth0 down: 인터페이스를 비활성화.
3. ping
네트워크 연결 상태를 확인하기 위해 지정한 호스트에 ICMP 패킷을 보내는 명령어입니다.
- 사용법:
ping google.com: 지정한 호스트(google.com)에 핑을 보내 응답을 확인.ping -c 4 google.com: 4번의 핑을 보내고 결과를 출력.
4. traceroute
패킷이 목적지에 도달하는 경로를 추적하여 네트워크 경로를 분석하는 명령어입니다.
- 사용법:
traceroute google.com:google.com까지의 경로를 추적.traceroute -n google.com: 도메인 이름 대신 IP 주소를 숫자로 표시.
5. netstat
네트워크 연결, 라우팅 테이블, 인터페이스 통계 등을 표시하는 명령어입니다.
- 사용법:
netstat -a: 모든 네트워크 연결을 표시.netstat -tuln: 리스닝 상태의 TCP 및 UDP 포트를 표시.netstat -r: 라우팅 테이블을 표시.netstat -i: 네트워크 인터페이스 통계를 표시.
6. ss
소켓 통계를 표시하는 명령어로, netstat의 대체 명령어입니다.
- 사용법:
ss -tuln: 리스닝 상태의 TCP 및 UDP 소켓을 표시.ss -s: 소켓 통계 요약을 표시.ss -p: 각 소켓에 연결된 프로세스를 표시.
7. route
커널의 IP 라우팅 테이블을 표시하거나 수정하는 명령어입니다.
- 사용법:
route -n: 숫자로 된 라우팅 테이블을 표시.route add default gw 192.168.1.1: 기본 게이트웨이를 추가.route del default gw 192.168.1.1: 기본 게이트웨이를 삭제.
8. dig
DNS 질의를 수행하여 도메인 이름에 대한 정보를 얻는 명령어입니다.
- 사용법:
dig google.com:google.com의 DNS 정보를 조회.dig +short google.com: 간략한 형식으로 결과를 출력.dig google.com MX: 특정 레코드 타입(MX 레코드)을 조회.
9. nslookup
DNS 질의를 수행하여 도메인 이름에 대한 정보를 얻는 명령어입니다.
- 사용법:
nslookup google.com:google.com의 DNS 정보를 조회.nslookup: 대화형 모드로 전환하여 여러 질의를 수행 가능.
10. arp
시스템의 ARP(주소 해석 프로토콜) 캐시를 표시하고 조작하는 명령어입니다.
- 사용법:
arp -a: 모든 ARP 캐시 항목을 표시.arp -d 192.168.1.1: 특정 IP 주소의 ARP 항목을 삭제.arp -s 192.168.1.1 00:11:22:33:44:55: 특정 IP와 MAC 주소의 ARP 항목을 수동으로 추가.
11. hostname
시스템의 호스트 이름을 표시하거나 설정하는 명령어입니다.
- 사용법:
hostname: 현재 호스트 이름을 표시.hostname new-hostname: 호스트 이름을new-hostname으로 설정.
12. curl
지정한 URL로부터 데이터를 전송하거나 받아오는 명령어입니다.
- 사용법:
curl http://example.com:example.com의 내용을 출력.curl -O http://example.com/file.zip: URL의 파일을 다운로드.curl -I http://example.com: URL의 헤더 정보를 출력.
13. wget
네트워크를 통해 파일을 다운로드하는 명령어입니다.
- 사용법:
wget http://example.com/file.zip: URL의 파일을 다운로드.wget -r http://example.com: URL의 사이트를 재귀적으로 다운로드.
14. tcpdump
네트워크 인터페이스에서 트래픽을 캡처하고 분석하는 명령어입니다.
- 사용법:
tcpdump -i eth0:eth0인터페이스의 패킷을 캡처.tcpdump -c 10: 10개의 패킷을 캡처 후 종료.tcpdump -w file.pcap: 패킷을 파일에 저장.
15. iftop
네트워크 인터페이스를 통해 송수신되는 트래픽을 실시간으로 모니터링하는 명령어입니다.
- 사용법:
iftop: 기본 인터페이스의 트래픽을 실시간으로 모니터링.iftop -i eth0: 특정 인터페이스(eth0)의 트래픽을 실시간으로 모니터링.
이 명령어들은 네트워크 설정, 진단, 모니터링, 문제 해결 등을 수행하는 데 매우 유용하며, 각 명령어에는 다양한 옵션이 있어 상황에 맞게 사용 가능합니다.
