네트워크 관리 및 문제 해결을 위해 사용되는 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
)의 트래픽을 실시간으로 모니터링.
이 명령어들은 네트워크 설정, 진단, 모니터링, 문제 해결 등을 수행하는 데 매우 유용하며, 각 명령어에는 다양한 옵션이 있어 상황에 맞게 사용 가능합니다.