netstat 명령은 네트워크 상태 및 프로토콜 통계를 표시하는 화면을 생성합니다. TCP, SCTP 및 UDP 끝점을 표 형식으로 표시할 수 있습니다. 경로 설정표 정보 및 인터페이스 정보를 표시할 수도 있습니다.
netstat 명령은 선택한 명령줄 옵션에 따라 다양한 유형의 네트워크 데이터를 표시합니다. 이러한 표시는 시스템 관리에 가장 유용합니다. netstat의 기본 구문은 다음과 같습니다.
netstat [-m] [-n] [-s] [-i | -r] [-f address-family]
이 절에서는 가장 일반적으로 사용되는 netstat 명령의 옵션에 대해 설명합니다. 모든 netstat 옵션에 대한 자세한 설명은 netstat(1M) 매뉴얼 페이지를 참조하십시오.
netstat -s 옵션은 UDP, TCP, SCTP, ICMP 및 IP 프로토콜에 대한 프로토콜 통계를 표시합니다.
주 - Oracle Solaris 사용자 계정을 사용하여 netstat 명령의 출력을 표시할 수 있습니다.
예 5-1 네트워크 프로토콜 통계
다음 예제는 netstat -s 명령의 출력을 보여줍니다. 출력의 일부분은 잘렸습니다. 출력은 프로토콜에 문제가 있는 영역을 나타낼 수 있습니다. 예를 들어 ICMPv4 및 ICMPv6의 통계 정보는 ICMP 프로토콜에서 오류가 발견된 위치를 나타낼 수 있습니다.
RAWIP rawipInDatagrams = 4701 rawipInErrors = 0 rawipInCksumErrs = 0 rawipOutDatagrams = 4 rawipOutErrors = 0 UDP udpInDatagrams = 10091 udpInErrors = 0 udpOutDatagrams = 15772 udpOutErrors = 0 TCP tcpRtoAlgorithm = 4 tcpRtoMin = 400 tcpRtoMax = 60000 tcpMaxConn = -1 . . tcpListenDrop = 0 tcpListenDropQ0 = 0 tcpHalfOpenDrop = 0 tcpOutSackRetrans = 0 IPv4 ipForwarding = 2 ipDefaultTTL = 255 ipInReceives =300182 ipInHdrErrors = 0 ipInAddrErrors = 0 ipInCksumErrs = 0 . . ipsecInFailed = 0 ipInIPv6 = 0 ipOutIPv6 = 3 ipOutSwitchIPv6 = 0 IPv6 ipv6Forwarding = 2 ipv6DefaultHopLimit = 255 ipv6InReceives = 13986 ipv6InHdrErrors = 0 ipv6InTooBigErrors = 0 ipv6InNoRoutes = 0 . . rawipInOverflows = 0 ipv6InIPv4 = 0 ipv6OutIPv4 = 0 ipv6OutSwitchIPv4 = 0 ICMPv4 icmpInMsgs = 43593 icmpInErrors = 0 icmpInCksumErrs = 0 icmpInUnknowns = 0 . . icmpInOverflows = 0 ICMPv6 icmp6InMsgs = 13612 icmp6InErrors = 0 icmp6InDestUnreachs = 0 icmp6InAdminProhibs = 0 . . icmp6OutGroupQueries= 0 icmp6OutGroupResps = 2 icmp6OutGroupReds = 0 IGMP: 12287 messages received 0 messages received with too few bytes 0 messages received with bad checksum 12287 membership queries received SCTP sctpRtoAlgorithm = vanj sctpRtoMin = 1000 sctpRtoMax = 60000 sctpRtoInitial = 3000 sctpTimHearBeatProbe = 2 sctpTimHearBeatDrop = 0 sctpListenDrop = 0 sctpInClosed = 0
netstat 명령을 통해 전송 프로토콜의 상태를 표시할 수 있습니다. 자세한 내용은 netstat(1M) 매뉴얼 페이지를 참조하십시오.
$ netstat
$ netstat -P transport-protocol
transport-protocol 변수의 값은 tcp, sctp 또는 udp입니다.
예 5-2 TCP 및 SCTP 전송 프로토콜의 상태 표시
이 예는 기본 netstat 명령의 출력을 보여줍니다. IPv4 전용 정보가 표시됩니다.
$ netstat TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State ----------------- -------------------- ----- ------ ----- ------ ------- lhost-1.login abc.def.local.Sun.COM.980 49640 0 49640 0 ESTABLISHED lhost-1.login ghi.jkl.local.Sun.COM.1020 49640 1 49640 0 ESTABLISHED remhost-1.1014 mno.pqr.remote.Sun.COM.nfsd 49640 0 49640 0 TIME_WAIT SCTP: Local Address Remote Address Swind Send-Q Rwind Recv-Q StrsI/O State ---------------- -------------- ----- ------ ------ ------ ------ ------- *.echo 0.0.0.0 0 0 102400 0 128/1 LISTEN *.discard 0.0.0.0 0 0 102400 0 128/1 LISTEN *.9001 0.0.0.0 0 0 102400 0 128/1 LISTEN
예 5-3 특정 전송 프로토콜의 상태 표시
이 예는 netstat 명령의 -P 옵션을 지정한 경우에 표시되는 결과를 보여줍니다.
$ netstat -P tcp TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State ----------------- -------------------- ----- ------ ----- ------ ------- lhost-1.login abc.def.local.Sun.COM.980 49640 0 49640 0 ESTABLISHED lhost.login ghi.jkl.local.Sun.COM.1020 49640 1 49640 0 ESTABLISHED remhost.1014 mno.pqr.remote.Sun.COM.nfsd 49640 0 49640 0 TIME_WAIT TCP: IPv6 Local Address Remote Address Swind Send-Q Rwind Recv-Q State If ---------------- ---------------------- ------ ----- ------ ----------- ----- localhost.38983 localhost.32777 49152 0 49152 0 ESTABLISHED localhost.32777 localhost.38983 49152 0 49152 0 ESTABLISHED localhost.38986 localhost.38980 49152 0 49152 0 ESTABLISHED
netstat 명령의 i 옵션은 로컬 시스템에 구성된 네트워크 인터페이스의 상태를 보여줍니다. 이 옵션을 사용하면 시스템이 각 네트워크에서 전송하고 수신하는 패킷 수를 확인할 수 있습니다.
예 5-4 네트워크 인터페이스 상태 표시
다음 예제는 호스트 인터페이스를 통한 IPv4 및 IPv6 패킷 흐름의 상태를 보여줍니다.
예를 들어 서버에 대해 표시되는 입력 패킷 수(Ipkts)는 클라이언트를 부트하려고 할 때마다 늘어나지만, 출력 패킷 수(Opkts)는 그대로 유지됩니다. 이 출력에는 서버가 클라이언트에서 보내는 부트 요청 패킷을 파악하고 있는 것으로 표시됩니다. 그러나 서버가 이에 응답하는 방법을 알지 못합니다. 이러한 혼동은 hosts 또는 ethers 데이터베이스의 주소가 잘못되었기 때문일 수 있습니다.
그러나 시간이 경과해도 입력 패킷 수가 일정할 경우 시스템에서는 패킷을 전혀 알지 못합니다. 이 출력은 다른 유형의 오류(하드웨어 문제)를 보여줍니다.
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue lo0 8232 loopback localhost 142 0 142 0 0 0 net0 1500 host58 host58 1106302 0 52419 0 0 0 Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis lo0 8252 localhost localhost 142 0 142 0 0 net0 1500 fe80::a00:20ff:feb9:4c54/10 fe80::a00:20ff:feb9:4c54 1106305 0 52422 0 0
netstat 명령의 -a 옵션을 사용하여 로컬 호스트에 있는 소켓의 상태를 확인할 수 있습니다.
예 5-5 모든 소켓 및 경로 설정표 항목 표시
netstat -a 명령의 출력은 광범위한 통계를 표시합니다. 다음 예는 일반적인 netstat -a 출력의 일부분을 보여줍니다.
UDP: IPv4 Local Address Remote Address State -------------------- -------------------- ------- *.bootpc Idle host85.bootpc Idle *.* Unbound *.* Unbound *.sunrpc Idle *.* Unbound *.32771 Idle *.sunrpc Idle *.* Unbound *.32775 Idle *.time Idle . . *.daytime Idle *.echo Idle *.discard Idle UDP: IPv6 Local Address Remote Address State If --------------------------------- --------------------------------- ---------- ----- *.* Unbound *.* Unbound *.sunrpc Idle *.* Unbound *.32771 Idle *.32778 Idle *.syslog Idle . . TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ------- *.* *.* 0 0 49152 0 IDLE localhost.4999 *.* 0 0 49152 0 LISTEN *.sunrpc *.* 0 0 49152 0 LISTEN *.* *.* 0 0 49152 0 IDLE *.sunrpc *.* 0 0 49152 0 LISTEN . . *.printer *.* 0 0 49152 0 LISTEN *.time *.* 0 0 49152 0 LISTEN *.daytime *.* 0 0 49152 0 LISTEN *.echo *.* 0 0 49152 0 LISTEN *.discard *.* 0 0 49152 0 LISTEN *.chargen *.* 0 0 49152 0 LISTEN *.shell *.* 0 0 49152 0 LISTEN *.shell *.* 0 0 49152 0 LISTEN *.kshell *.* 0 0 49152 0 LISTEN *.login . . *.* 0 0 49152 0 LISTEN *TCP: IPv6 Local Address Remote Address Swind Send-Q Rwind Recv-Q State If ----------------------- ----------------------- ----- ------ ----- ------ ---- *.* *.* 0 0 49152 0 IDLE *.sunrpc *.* 0 0 49152 0 LISTEN *.* *.* 0 0 49152 0 IDLE *.32774 *.* 0 0 49152
netstat 명령의 -f 옵션을 사용하면 특정 주소 그룹의 패킷 전송과 관련된 통계를 표시할 수 있습니다.
$ netstat -f inet | inet6
IPv4 전송 정보를 표시하려면 inet을 netstat -f에 대한 인수로 입력합니다. IPv6 정보를 표시하려면 inet6를 netstat -f에 대한 인수로 사용합니다.
예 5-6 IPv4 패킷 전송 상태
다음 예는 netstat -f inet 명령의 출력을 보여줍니다.
TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ------- host58.734 host19.nfsd 49640 0 49640 0 ESTABLISHED host58.38063 host19.32782 49640 0 49640 0 CLOSE_WAIT host58.38146 host41.43601 49640 0 49640 0 ESTABLISHED host58.996 remote-host.login 49640 0 49206 0 ESTABLISHED
예 5-7 IPv6 패킷 전송 상태
다음 예는 netstat -f inet6 명령의 출력을 보여줍니다.
TCP: IPv6 Local Address Remote Address Swind Send-Q Rwind Recv-Q State If ------------------ ------------------------- ----- ------ ----- ------ --------- ----- localhost.38065 localhost.32792 49152 0 49152 0 ESTABLISHED localhost.32792 localhost.38065 49152 0 49152 0 ESTABLISHED localhost.38089 localhost.38057 49152 0 49152 0 ESTABLISHED
netstat 명령의 -r 옵션은 로컬 호스트의 경로 설정표를 표시합니다. 이 표는 호스트에 알려진 모든 경로의 상태를 보여줍니다. 사용자 계정에서 netstat의 이 옵션을 실행할 수 있습니다.
예 5-8 netstat 명령에 의한 경로 설정표 출력
다음 예는 netstat -r 명령의 출력을 보여줍니다.
Routing Table: IPv4 Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- host15 myhost U 1 31059 net0 10.0.0.14 myhost U 1 0 net0 default distantrouter UG 1 2 net0 localhost localhost UH 42019361 lo0 Routing Table: IPv6 Destination/Mask Gateway Flags Ref Use If --------------------- --------------------------- ----- --- ------ ----- 2002:0a00:3010:2::/64 2002:0a00:3010:2:1b2b:3c4c:5e6e:abcd U 1 0 net0:1 fe80::/10 fe80::1a2b:3c4d:5e6f:12a2 U 1 23 net0 ff00::/8 fe80::1a2b:3c4d:5e6f:12a2 U 1 0 net0 default fe80::1a2b:3c4d:5e6f:12a2 UG 1 0 net0 localhost localhost UH 9 21832 lo0
다음 표는 netstat -r 명령의 화면 출력에 표시되는 여러 매개변수의 의미에 대해 설명합니다.
|
SSISO Community