반응형
03-02-03 네트워크 설정_네트워크 진단 명령어
ethtool
- 설명
- ethtool은 네트워크 인터페이스 카드를 위한 유틸리티로 설정 도구이다.
- 네트워크 속도, 포트, 자동 설정과 같은 네트워크 카드의 설정을 변경할 수 있다.
- 형식
- ethtool [options] interface
- 예제
- ethtool enp0s3
ip
- 설명
- 시스템의 네트워크 인터페이스에 주소를 할당하거나 파라미터 설정 기능을 수행하는 ifconfig를 대체하는 명령어이다.
- 형식
- ip [options] [command] [address] [dev interface]
- 주요 옵션
- route: 라우팅 테이블에 항목을 추가하거나 삭제한다.
- addr: 네트워크 인터페이스의 IP 정보를 출력한다.
- link: 네트워크 인터페이스에 상태를 설정한다.
- neighbor: ARP 캐시를 관리한다.
- 네트워크 인터페이스 정보 출력
- 모든 네트워크 인터페이스의 정보를 출력한다.
- # ip addr( ip addr show, ip addr list)
- IP 할당 및 제거
- 네트워크 인터페이스에 IP를 할당한다.
- # ip addr add 192.168.100.100 dev enp0s3
- 네트워크 인터페이스에 IP와 넷마스크를 할당한다.
- # ip addr add 192.168.100.100/255.255.255.0 dev eth0
- 또는 ip addr add 192.168.100.100/24 dev eth0
- 네트워크 인터페이스에 브로드캐스트 주소를 할당한다.
- # ip addr add broadcast 192.168.100.255 dev eth0
- 네트워크 인터페이스에서 IP 주소를 삭제한다.
- # ip addr del 192.168.100.100/24 dev eth0
- 네트워크 인터페이스 상태 파라미터 변경
- 네트워크 인터페이스를 비활성화
- # ip link set dev eth0 down
- 네트워크 인터페이스를 활성화
- # ip link set dev eth0 up
- 네트워크 인터페이스의 MTU(Maximum Transfer Unit)를 변경
- # ip link set mtu 9000 dev eth0
- 네트워크 인터페이스의 ARP 캐시 관리
- 네트워크 인터페이스의 ARP 캐시 정보를 출력
- # ip neighbor show
- 네트워크 인터페이스의 ARP 캐시 정보를 추가
- # ip neighbor add 192.168.101.10 lladdr 11:22:33:44:55:66 dev eth0 nud perm
- 네트워크 인터페이스의 ARP 캐시 정보를 삭제
- # ip neighbor del 192.168.101.10 dev eth0
- 라우팅 정보 관리
- 라우팅 정보를 출력한다.
- # ip route, ip route list
- 라우팅 정보를 추가한다.
- # ip route add 10.0.2.128/25 via 10.0.2.130 dev eth0
- 라우팅 정보를 삭제한다.
- # ip route del 10.0.2.128/25
ping
- 설명
- ping은 ICMP(Internet Control Message Protocol)을 이용한 네트워크 상태 진단 툴이다.
- 원격 호스트가 네트워크에 연결된 상태인지 확인하고 네트워크 지연시간도 측정할 수 있다.
- 형식
- # ping options hostname|address
- 주요 옵션
- -c count: ping을 보낼 횟수(기본값은 무제한)
- -i interval: ping을 보낼 시간 간격(기본값은 1초)
- -s size: ping을 보낼 데이터 크기(최대 65507)
- -f: ping을 최대한 많이 보낸다(flood ping), -i 옵션을 지정하지 않는다면 0 값으로 기본 설정되며 가능한 많은 ping 요청을 전송한다.
- -w seconds: ping 시작 후 몇 초 뒤에 실행을 멈출 것인지를 결정
- -l interface: 네트워크 인터페이스가 다수일 경우 ping을 보낼 인터페이스를 지정함
- ping 전송하기
- -c 옵션을 사용하여 ping을 10번 보낼 때마다 -s 옵션으로 설정한 데이터를 1000바이트씩 보낸다. 또한 -i 옵션을 통해 0.2초마다 8.8.8.8 주소로 ping을 전송할 때
- # ping -c 10 -s 1000 -i 0.2 8.8.8.8
- 정한 시간 동안 ping 하기
- -w 옵션으로 8.8.8.8 주소로 3초간 ping을 수행
- # ping -w 3 8.8.8.8
- icmp_seq를 통해 ping 순서를 알 수 있고 ttl(time to live)을 통해 라우터를 얼마나 거쳤는지 알 수 있다.
- time은 응답시간을 의미한다. 이 시간이 짧을수록 네트워크 상태가 좋거나 거리가 가깝다는 의미이다.
- TTL(time to live)값의 의미
- ping을 전송하면 ICMP 패킷이 여러 라우터를 거쳐 상대방에 도달할 것이다. 이때마다 TTL값이 하나씩 감소한다. 가령 TTL 기본값이 64인 시스템에서 ping을 전송했을 때 TTL이 53이라면 11개의 라우터를 거쳤다는 의미가 된다.
- TTL은 OS마다 기본값이 다르다. 윈도의 경우 128이고, 리눅스는 64이다.
- 기본값 변경 명령어
- # sysctl net.ipv4.ip_default_ttl=129 또는 echo 129 | tee /proc/sys/net/ipv4/ip_default_ttl
netstat
- 설명
- 네트워크 연결, 라우팅 테이블, 인터페이스 통계 정보, 마스커페이드 연결, 멀티캐스트 멤버십 등 다양한 네트워크 정보를 출력
- 형식
- netstat options
- 주요 옵션
- 첫 번째 옵션
- 옵션 없음: 열려 있는 소켓의 모든 정보를 출력
- --route, -r: 라우팅 테이블을 조회
- --groups, -g: IPv4와 IPv6를 위한 멀티캐스트 그룹 멥버십 정보를 조회
- --interfaces, -i: 모든 네트워크 인터페이스에 대한 정보를 출력
- --masquerade, -M: 마스크레이드 연결의 정보를 출력
- --statistics, -s: 각 프로토콜의 통계 정보를 출력
- 첫 번째 옵션 다음 옵션들
- -v, --verbose: 풍부한 정보 제공
- -n, --numeric: 심볼릭 호스트, 사용자, 포트 대신 숫자로 표기
- -A, protocol=family: 주소 패밀리(address family)를 지정한다. inet, inet6, ax25(ARM AX.25), netrom(AMPRNET/ROM), ipx(Novell IPX), ddp(appletalk DDP), x25(CCITT X.25)를 지정할 수 있다. inet은 raw와 udp 그리고 tcp 프로토콜의 소켓을 포함한다.
- -c, --continuous: 매초마다 계속적으로 정보를 출력한다.
- -p, --program: 소켓과 연관된 프로그램 이름과 프로세스 아이디(PID)를 출력한다.
- -l, --listening: Listen 소켓에 대한 정보를 출력
- -a, --all: Listen 소켓과 Listen 소켓이 아닌 경우 모든 정보 출력
- -t: TCP 소켓의 정보를 출력
- -u: UDP 소켓의 정보를 출력
- -g: 멀티캐스트 그룹 멤버십 정보 출력
- 첫 번째 옵션
- 연결되어 있는 모든 소켓 정보 출력하기
- -a 옵션으로 모든 소켓, -n 옵션으로 호스트명이나 포트명과 같은 심볼릭 이름을 사용하지 않고 숫자로 출력
- netstat -an
- 라우팅 정보 출력하기
- netstat -rn: -r 옵션을 사용하여 라우팅 정보 출력
- 특정 주소 패밀리(address family)에 대한 정보만 출력하기
- --inet 또는 -A inet 옵션을 통해 IPv4 관련 정보를 출력한다.
- netstat -A inet
- --inet6 또는 -A inet6 옵션을 통해 IPv6 관련 정보를 출력
- netstat -A inet6
- netstat의 소켓 상태
- LISTEN: 대기 상태
- ESTABLISHED: 연결 완료
- SYN_SENT: SYN을 보낸 상태
- SYN_RECEIVED: SYN을 받은 상태
traceroute
- 설명
- 네트워크 장애 분석을 위해 패킷이 어떤 경로로 전송되는지 추적하기 위한 명령어
- 형식
- traceroute hostname | address
- 특정 사이트에 어떤 경로로 패킷이 전달되는지 추적하기
- traceroute www.google.com
- 다양한 방식을 통해 경로 추적하기
- -I 옵션을 사용해 icmp 방식으로 경로 추적
- traceroute -I www.google.com
- -T 옵션을 통한 TCP 방식 경로 추적
- -U 옵션을 통한 UDP 방식 경로 추적
mii-tool
- 설명
- mii-tool(media independent interface tool)은 네트워크 인터페이스의 연결 상태를 확인하고 설정을 변경하는데 사용하는 툴.
- 형식
- mii-tool [option] interface
- 네트워크 인터페이스 정보 출력
- # mii-tool -v eth0: -v 옵션은 상세 정보
- 네트워크 인터페이스 정보 출력
- # mii-tool -r eth0: -r 옵션은 네트워크 인터페이스 새로 시작
- 네트워크 인터페이스 설정 변경
- # mii-tool -v -F 100baseTx-FD eth0: -F 옵션 또는 --force 옵션은 네트워크 인터페이스 정보를 강제로 변경
ss
- 설명
- 소켓에 대한 정보를 제공해 주는 틀
- 형식
- ss [option] [filter]
- 옵션
- -n: --numeric
- -r: --resolve
- -a: --all
- -l: --listening
- -o: --options
- -e: --extended
- -m: --memory
- -p: --processes
- -i: --info
- -s: --summary
- -4: --ipv4
- -6: --ipv6
- -0: --packet
- -t: --tcp
- -u: --udp
- -f: --family=FAMILY
- 주요 예제
- # ss: 현재 연결된 소켓 정보 출력
- # ss -a: all 모든 정보 출력
- # ss -l: listen 소켓 정보 출력
- # ss-t: TCP 소켓 정보 출력
- # ss -t state established: established 상태의 소켓만 출력
- # ss -ltn sport le 500: 필터링 기능을 제공한다. 아래는 송신지 포트 500과 같거나 작은 소켓만 출력
반응형
'Linux > 리눅스 실무의 이해' 카테고리의 다른 글
03-02-05 네트워크 설정_네트워크 응용 프로그램 (1) | 2022.02.04 |
---|---|
03-02-04 네트워크 설정_DNS 명령어 (0) | 2022.02.03 |
03-02-02 네트워크 설정_네트워크 설정 명령어 (0) | 2022.02.01 |
03-02-01 네트워크 설정_환경 설정 (0) | 2022.01.31 |
03-01-04 네트워크 기초_TCP/IP 및 네트워크 프로토콜의 이해 (0) | 2022.01.26 |