"유용한 명령 줄"질문과 같은 맥락에서 ( Windows , Linux 및 Mac )와 같이 편리하다고 생각합니다 "유틸리티 x를 사용하는 유용한 방법"질문이 있습니다. 매뉴얼 페이지는 매개 변수의 기능을 설명하지만 반드시 매개 변수를 사용하는 이유, 결과의 의미, 광범위한 실험 없이는 결코 알지 못하는 유용한 기능 또는 실제로 원하는 답을 얻는 방법을 알려줍니다.
netstat 에 대해 알고 싶습니다. 대역폭을 사용하는 프로세스와 실제로 시스템이 대역폭을 사용하는 속도를 파악할 수 있어야합니다. 또한 원치 않는 연결 (virii와 같은)을 감지하는 데 유용하며 모든 종류의 라우팅 정보를 제공합니다 (Sharp Zaurus PDA TCP/IP 사용) 다시 말해, 금광처럼 들리는데 여러분 중 일부는 당신이 찾은 많은 정보를 공유하기를 바라고있었습니다.
답장에 netstat 버전과 OS를 포함 시키십시오. 샘플 출력을보고 그 의미를 아는 것이 좋을 것입니다. 나는이 질문을 커뮤니티 위키로 표시했으며 다른 OS를 알고있는 다른 사람들이 알고 있다면 동일한 대답으로 거의 동등한 명령을 내려 놓을 수 있도록 답변에서 똑같이 할 수 있기를 바랍니다. 어떤 답변이 가장 유용한 지 투표 할 수 있습니다.
로컬 청취 TCP/UDP 포트 및 포트가 속한 프로세스를 표시하십시오.
Sudo netstat -tulpn
Netstat 라우팅 테이블
[이것은 Mac OS X 10.5.7에서 테스트되었습니다. 솔라리스에서 작동하는 것으로 나타난 결과는 모든 플랫폼에서 거의 동일하다고 생각합니다.]
netstat -r
라우팅 테이블을 제공합니다.
netstat -nr
동일하지만 컴퓨터 이름을 찾는 대신 원시 IP를 제공합니다. 출력은 다음과 같습니다 (더 이상).
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.40.250 UGSc 19 1 en1
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 1 3140 lo0
169.254 link#5 UCS 0 0 en1
169.254.33.92 127.0.0.1 UHS 0 0 lo0
192.168.40 link#5 UCS 11 0 en1
192.168.40.1 0:17:f2:ca:a0:94 UHLW 0 0 en1 1150
...
Internet6:
Destination Gateway Flags Netif Expire
::1 link#1 UHL lo0
fe80::%lo0/64 fe80::1%lo0 Uc lo0
fe80::1%lo0 link#1 UHL lo0
fe80::%en0/64 link#4 UC en0
...
ff02::/32 link#7 UC en2
ff02::/32 link#8 UC en3
열 :
대상 및 게이트웨이 : 대상은 정보를 보내려는 주소 (또는 주소 범위)입니다. 해당 대상으로 전송 된 모든 데이터는 관련 게이트웨이로 이동합니다. 게이트웨이는 여행 중 다음 '홉'을 위해 데이터를 어디로 보낼지 알고 있습니다. 라우팅 테이블에 항목이없는 대상으로 데이터를 보내려면 기본 게이트웨이를 통과합니다.
Flags : man/info 페이지는 모든 플래그를 나열합니다. 기본 게이트웨이 설정은 다음과 같습니다.
UGSc
U - RTF_UP Route usable
G - RTF_GATEWAY Destination requires forwarding by intermediary
S - RTF_STATIC Manually added
c - RTF_PRCLONING Protocol-specified generate new routes on use
DHCP를 통해 수동으로 추가되었다고 주장합니다.
Refs : "refcnt 필드는 현재 경로의 현재 사용 횟수를 제공합니다. 연결 지향 프로토콜은 일반적으로 연결 기간 동안 단일 경로를 유지합니다. 연결이없는 프로토콜이 동일한 대상으로 전송하는 동안 경로를 얻는 동안 연결 " (맨 페이지)
사용 : "사용 필드는 해당 경로를 사용하여 전송 된 패킷 수를 제공합니다."
Netif : "인터페이스 항목은 경로에 사용 된 네트워크 인터페이스를 나타냅니다."
내 Mac에서는
Expire : 다른 버전의 netstat 맨 페이지에서 : "경로가 만료되기 전에 남은 시간 (분)을 표시합니다."
창에서 :
c:>netstat -a | find /c "TCP"
68
TCP/IP 연결 수를 나타냅니다. TCP 포트가 부족하고 MaxUserPorts 를 늘려야하는 높은 네트워크 시스템의 문제를 해결하는 경우에 유용합니다.
Bash에서 netstat를 사용하는 유용한 방법은 CommandLineFu의 Netstat 페이지 를 확인하십시오.
전송/수신 속도
Mac에서 [OS X 10.5.7] :
netstat -i -w 10
[Solaris 및 Linux에서의 사용에 대한 정보는 chuck 's answer 를 참조하십시오.]
결과는 다음과 같습니다.
input (Total) output
packets errs bytes packets errs bytes colls
794 0 1166796 763 0 50358 0
789 0 1167773 765 0 52542 0
792 0 1166548 765 0 51174 0
796 0 1167262 598 0 40152 0
929 0 1278561 846 0 65625 0
563 0 815570 530 0 36828 0
32 0 4360 1 0 774 0
9 0 705 0 0 684 0
9 0 631 0 0 0 0
주어진 시간 간격 동안 전송 된 패킷 및 바이트 수를 보여줍니다. (이 예에서는 10 초). 브라우저 탭을 닫고 속도가 바닥에 올 때까지 유튜브에 연결되어 간격마다 1MB 이상을 다운로드했습니다.
업로드 또는 다운로드가 완료되기를 기다리는 경우 유용 할 수 있습니다. 속도를 모니터링하고 급격히 떨어지면 완료되었음을 알 수 있습니다.
위의 명령은 모든 인터페이스의 모든 처리량을 보여줍니다. 특정 인터페이스 (이 예에서는 WiFi)로 범위를 지정하려면 -I
플래그 :
netstat -I en1 -w 10
윈도우 :
Netstat -n
(Show active TCP connections, don't slow down trying to do name resolution)
Proto Local Address Foreign Address State
TCP 192.168.1.38:4853 69.59.196.212:80 ESTABLISHED
활성 TCP connections이지만 UDP 활동이 없음을 표시합니다.
Netstat -an
(Show all connections, don't slow down trying to do name resolution)
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 192.168.1.38:4853 69.59.196.212:80 ESTABLISHED
모든 활성 TCP 연결 및 청취 TCP 및 UDP 연결)을 표시합니다. 여기서 아웃 바운드 UDP 활동을 표시하지 않습니다.
Windows 7 (아마도 이전부터) :
netstat -ano
연관된 PID가있는 활성 세션을 나열합니다.
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 776
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:554 0.0.0.0:0 LISTENING 1724
또는 단계를 저장하기 위해
netstat -anb
(높은 CMD 프롬프트에서) 프로세스 이름을 제공합니다
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
RpcSs
[svchost.exe]
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
Can not obtain ownership information
TCP 0.0.0.0:554 0.0.0.0:0 LISTENING
[wmpnetwk.exe]
TCP 0.0.0.0:2048 0.0.0.0:0 LISTENING
나는 바퀴를 재발 명 할 것이라고 확신하지만 여기서는 간단한 Perl 스크립트가 있습니다 netstat를 실행하고 현재 대부분 연결된 IP가 맨 위에 나오도록 출력을 정렬합니다. 이것은 2 초 간격으로 업데이트하기 위해 'watch'프로그램과 함께 사용하는 것이 가장 좋습니다.
업데이트 : 많은 문제를 제거하고 호스트 이름을 표시하기 위해 중요한 2013-02-11 다시 작성
샘플 출력 :
Distant inbound connections: 2
85.93.216.17:772 <-- 78.141.139.10 : 1 ip-78-141-139-10.dyn.luxdsl.pt.lu 1 x ESTABLISHED
80.90.47.155:443 <-- 78.141.139.10 : 1 ip-78-141-139-10.dyn.luxdsl.pt.lu 1 x ESTABLISHED
Distant outbound connections: 3
80.90.63.61 --> 80.90.63.48:25 : 2 smtp.m-plify.net 2 x TIME_WAIT
85.93.216.17 --> 85.93.216.18:772 : 1 maya.m-plify.net 1 x ESTABLISHED
Looping connections: 57 (10 duplicates)
127.0.0.1 --> 127.0.0.1:9355 : 20 1 x ESTABLISHED, 8 x TIME_WAIT, 11 x CLOSE_WAIT
127.0.0.1 --> 127.0.0.1:4713 : 10 10 x CLOSE_WAIT
127.0.0.1 --> 127.0.0.1:9353 : 9 4 x TIME_WAIT, 5 x CLOSE_WAIT
127.0.0.1 --> 127.0.0.1:3306 : 8 6 x ESTABLISHED, 1 x TIME_WAIT, 1 x CLOSE_WAIT
127.0.0.1 --> 127.0.0.1:5445 : 5 1 x ESTABLISHED, 4 x TIME_WAIT
127.0.0.1 --> 127.0.0.1:9354 : 2 2 x CLOSE_WAIT
127.0.0.1 --> 127.0.0.1:7998 : 1 1 x TIME_WAIT
127.0.0.1 --> 127.0.0.1:3351 : 1 1 x ESTABLISHED
127.0.0.1 --> 127.0.0.1:32000 : 1 1 x ESTABLISHED
윈도우
netstat -b
연결을 사용하여 프로세스 표시
솔라리스 :
netstat -nr
(displays routing table)
Wicked Cool Shell Scripts 책에서 :
스크립트 # 90.1 : 'n'분마다 netstats 값을 가져옵니다 (crontab을 통해)
스크립트 # 90.2 : netstat 실행 성능 로그를 분석하여 중요한 결과 및 추세를 식별합니다.
(이 책을 좋아하십시오-구매 가치가 있습니다!)
아무도 아직 언급하지 않았기 때문에 :
netstat -s
리눅스에서 프로토콜별로 유용한 통계를 제공합니다.
Solaris에서는 많은 사람들이 "netstat -i 1"을 수행하여 실행중인 패킷 수를 얻습니다. Linux netstat에는 델타가 아닌 원시 수를 표시하므로이 기능의 쓸모없는 버전이 있습니다. 비슷한 결과를 얻으려면 "sar -n DEV 1 0"을 수행하십시오. 실제로 "LANG = C sar -n DEV 1 0 | grep interfacename"을 고려하십시오 (sar는 특정 로케일에서 행의 시작 부분에 AM 및 PM으로 시간을 둠). "LANG = C sar"을 항상 실행하는 습관을들이는 경우가 있습니다.
Solaris에서는
netstat -k
다양한 통계 요약을 표시합니다. 오류 등을 확인하는 데 유용합니다.