php教程 PHP开发 Netstat 명령에 대한 자세한 설명

Netstat 명령에 대한 자세한 설명

Dec 15, 2016 am 09:59 AM

Netstat命令详解

주요 사용법과 자세한 설명!
(netstat -na 명령), 이 기사에서는 주로 Linux의 netstat 도구에 대해 설명하고 다양한 네트워크 연결 상태에 대해 자세히 설명합니다.
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -nr
1. netstat 명령에 대한 자세한 설명
사실 제가 자주 사용하는 것은 netstat -tnl | 443(포트 443이 사용 중인지 확인), 현재 루트 사용자라면 netstat -pnl | grep 443을 사용하는 것이 좋습니다(로컬 포트 ​​443을 차지하는 프로세스 PID도 표시할 수 있습니다).
netstat
기능 설명: 네트워크 상태를 표시합니다.
구문: netstat [-acCeFghilMnNoprstuvVwx] [-A][--ip]
보조 참고: netstat 명령을 사용하면 전체 Linux 시스템의 네트워크 상태를 알 수 있습니다.
매개변수:
-a 또는 –all 연결된 모든 소켓을 표시합니다.
-a & lt; 네트워크 유형 & gt; 또는-& lt; 네트워크 유형 & gt;
-c 또는 –continuous 네트워크 상태를 연속적으로 나열합니다.
-C 또는 –cache 라우터 구성의 캐시 정보를 표시합니다.
-e 또는 –extend 네트워크에 대한 기타 관련 정보를 표시합니다.
-F 또는 –fib                             FIB를 표시합니다.
-g 또는 –groups 멀티캐스트 기능이 있는 그룹 구성원 목록을 표시합니다.
-h 또는 –help 온라인 도움말입니다.
-i 또는 –interfaces 네트워크 인터페이스 정보 양식을 표시합니다.
-l 또는 –listening 모니터링되는 서버의 소켓을 표시합니다.
-M 또는 –masquerade는 가장된 네트워크 연결을 표시합니다.
-n 또는 –numeric 도메인 네임서버를 거치지 않고 IP 주소를 직접 사용합니다.
-N 또는 –netlink 또는 –symbolic 네트워크 하드웨어 주변 장치의 심볼릭 링크 이름을 표시합니다.
-o 또는 –timers 타이머를 표시합니다.
-p 또는 –programs 소켓을 사용하고 있는 프로그램 식별 코드와 프로그램 이름을 표시합니다.
-r 또는 –route는 라우팅 테이블을 표시합니다.
-s 또는 –statistice는 네트워크 작업 정보 통계 테이블을 표시합니다.
-t 또는 –tcp는 TCP 전송 프로토콜의 연결 상태를 표시합니다.
-u 또는 –udp는 UDP 전송 프로토콜의 연결 상태를 표시합니다.
-v 또는 –verbose는 명령 실행 프로세스를 표시합니다.
-V 또는 –version은 버전 정보를 표시합니다.
-w 또는 –raw는 RAW 전송 프로토콜의 연결 상태를 표시합니다.
-x 또는 –unix 이 매개변수의 효과는 "-A unix" 매개변수를 지정하는 것과 동일합니다.
–ip 또는 –inet 이 매개변수는 “-A inet” 매개변수를 지정하는 것과 동일한 효과를 갖습니다.

2. 네트워크 연결 상태에 대한 자세한 설명
TCP 연결 수립의 3방향 핸드셰이크와 TCP 연결 끊김의 4방향 웨이브 프로세스에 따라 처음 11가지의 가능한 상태가 설명됩니다. .
1), LISTEN: 먼저 서버가 청취를 위해 소켓을 열어야 하며 상태는 LISTEN입니다./* 소켓은 원격 TCP 포트에서 연결 요청을 청취하고 있습니다.*/

2 ), SYN_SENT: 클라이언트는 응용 프로그램을 통해 연결을 호출하여 활성 열기를 수행합니다. 그런 다음 클라이언트 tcp는 연결 설정을 요청하기 위해 SYN을 보냅니다. 그 후 상태는 SYN_SENT로 설정됩니다./*소켓이 활성 상태입니다. 연결 요청을 보낸 후 일치하는 연결 요청을 기다립니다 */

3), SYN_RECV: 서버는 클라이언트의 SYN을 확인하기 위해 ACK를 보내고 동시에 클라이언트에 대한 SYN 이후 상태는 SYN_RECV/* 네트워크에서 연결 요청을 수신하고 연결 요청을 수신하고 보낸 후 연결 요청 확인을 기다리는 중입니다.*/

4) , ESTABLISHED: 열려 있는 연결을 나타내며 양측이 이미 데이터를 교환할 수 있거나 교환하고 있습니다. /* 소켓에 연결이 설정되어 있고 사용자에게 데이터가 전송될 수 있음을 나타냅니다. */

5), FIN_WAIT1: 활성 닫기(active close) 최종 응용 프로그램이 close를 호출하므로 해당 TCP가 FIN 요청을 발행하여 연결을 적극적으로 닫은 다음 FIN_WAIT1 상태로 들어갑니다./* 소켓이 닫히고 연결이 종료됩니다. .원격 TCP 연결 중단 요청을 기다리는 중 또는 이전 연결 중단 요청 확인*/

6), CLOSE_WAIT: 수동 종료(passive close) TCP가 FIN을 수신한 후 이에 대한 응답으로 ACK를 보냅니다. FIN 요청(수신은 파일 끝 문자로 상위 응용 프로그램에도 전달됨)을 입력하고 CLOSE_WAIT를 입력합니다./* 원격 끝이 종료되어 소켓이 닫힐 때까지 기다리고 있습니다. user*/

7 ), FIN_WAIT2: 적극적으로 끝을 닫고 ACK를 받은 후 FIN-WAIT-2로 들어갑니다./* 연결이 닫히고 소켓은 원격 끝에서 종료를 기다리고 있습니다. 원격 TCP의 연결 중단 요청 대기 중*/

8), LAST_ACK: 일정 시간 동안 끝을 수동적으로 닫은 후 파일 끝 문자를 수신한 응용 프로그램은 CLOSE를 호출하여 연결을 닫습니다. . 이로 인해 TCP도 FIN을 보내고 상대방의 ACK를 기다립니다./* 원격 끝이 종료되고 소켓이 원래 전송된 연결을 기다리고 있습니다. 요청 확인 */

9), TIME_WAIT: 활성 종료 측이 FIN을 수신한 후 TCP는 ACK 패킷을 전송하고 TIME-WAIT 상태로 들어갑니다. /* 소켓은 네트워크에 여전히 있는 패킷을 처리하기 위해 대기 중입니다. 원격 TCP가 연결 중단 요청 확인을 받을 수 있도록 충분한 시간을 기다립니다.*/

10), CLOSING: 비교적 드뭅니다./* 두 소켓 모두 종료되었지만 여전히 모든 데이터가 전송되지 않았습니다. 원격 TCP가 연결 중단을 확인하기를 기다리는 중입니다*/

11), CLOSED: ACK 패킷을 수신한 후 수동 폐쇄 끝이 들어갑니다. 폐쇄된 상태. 연결이 종료됩니다./* 소켓이 사용되지 않습니다. 연결 상태가 없습니다. */

12) UNKNOWN: 알 수 없는 소켓 상태입니다. /* 소켓 상태를 알 수 없습니다. */

SYN: (시퀀스 번호 동기화) 이 플래그는 3방향 핸드셰이크가 TCP 연결을 설정할 때만 유효합니다. 새로운 TCP 연결 요청을 나타냅니다.
ACK: (승인 번호)는 TCP 요청에 대한 확인 표시이며, 피어 시스템이 모든 데이터를 성공적으로 수신했다는 메시지도 표시합니다.
FIN: (종료 플래그, FINish)는 TCP 대화를 종료하는 데 사용되지만 해당 포트는 여전히 열려 있으며 후속 데이터를 수신할 준비가 되어 있습니다.

PS: Windows 아래에 작은 도구가 있으면 좋습니다. TCPView는 로컬 및 원격 주소와 TCP 연결 상태를 포함하여 시스템에 있는 모든 TCP 및 UDP 엔드포인트의 세부 목록을 표시하는 Windows 프로그램입니다. 물론, 데이터 패킷을 자세히 분석하려면 스니퍼 및 Wireshark와 같은 보다 강력한 도구를 사용할 수 있습니다.

참고:

http://linux.sheup.com/linux/4/31225.html

http://hi.baidu.com/mqbest_come_on/ 블로그 /item/18526dcef73d791a00e928e5.html

http://www.daxigua.com/archives/1355


시스템 연결 상태:

1. TCP 연결 상태 보기
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

netstat -n | awk '/^tcp/ {++S[$NF] }; END {for(a in S) print a, S[a]}' 또는
netstat -n | awk '/^tcp/ {++state[$NF]} print key,"t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"t ", arr[k]}'

netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn

netstat -ant ' {print $NF}' | grep -v '[a-z]' | sort | uniq -c

2. 20개의 IP에 대한 요청 수를 찾습니다(일반적으로 공격 소스를 찾는 데 사용됨). >netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20

netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn |head -n20

3. tcpdump를 사용하여 포트 80 액세스를 스니핑하여 누가 가장 높은지 확인하세요
tcpdump -i eth0 -tnn dst port 80 -c 1000 | {print $1 ″.”$2″.”$3″.”$4}' | sort | uniq -c | sort -nr |head -20

4. grep TIME_WAIT |awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

5. 더 많은 SYN 연결 찾기
netstat -an | grep SYN | $5}' | '{print $1}' | sort | uniq -nr | more

netstat -ntlp | '{print $7}' | cut -d/ -f1

웹사이트 로그 분석 1(Apache):

1. 접속한 IP 주소 상위 10개를 가져옵니다.
cat 액세스 로그| awk '{print $1}'|sort|uniq -c|sort -nr|head -10
cat access.log|awk '{counts[$(11)]+=1} END {for( url in counts) print counts[url], url}'

2. 가장 많이 방문한 파일이나 페이지, 상위 20개
cat access.log|awk '{print $11}'|sort| c|sort -nr|head -20

3. 가장 큰 exe 파일 나열(다운로드 사이트 분석 시 일반적으로 사용됨)
cat access.log |awk '($7~/ .exe/){print $10 ” ” $1 ” ” $4 ” ” $7}'|sort -nr|head -20

4. 200000바이트(약 200kb)보다 큰 출력과 해당 파일 발생 횟수를 가진 exe 파일을 나열합니다.
cat access.log |awk '($10 > 200000 && $7~/.exe/){print $7}'|sort -n|uniq -c|sort -nr|head -100

5. 로그의 마지막 열에는 페이지 파일 전송 시간이 기록되며, 클라이언트에게 가장 많은 시간이 소요되는 페이지가 나열됩니다.
cat access.log |awk '($7~/.php/){print $NF ” ” $1 ” ” $4 ” ” $7}'|sort -nr|head -100

6. 가장 시간이 많이 걸리는 페이지(60초 이상)와 해당 페이지 발생 횟수
cat 액세스를 나열합니다. log | awk '($NF > 60 && $7~/.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

7. 30초를 초과하는 시간 파일
cat access.log |awk '($NF > 30){print $7}'|sort -n|uniq -c|sort -nr|head -20

8 . 통계 웹사이트 트래픽(G)
cat access.log |awk '{sum+=$10} END {print sum/1024/1024/1024}'

9. 통계 404 연결
awk ' ($9 ~/404/)' access.log | awk '{print $9,$7}' | sort

10. 통계 http 상태.
cat access.log |awk '{counts[$( 9)]+=1}; END {for(code in counts) 인쇄 코드, counts[code]}'
cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn

10. 스파이더 분석
어떤 스파이더가 콘텐츠를 크롤링하는지 확인하세요.
/usr/sbin/tcpdump -i eth0 -l -s 0 -w - dst port 80 | strings | grep -i user-agent | grep -i -E 'bot|crawler|slurp|spider'

웹사이트 일일 분석 2(Squid)

2. 도메인별 트래픽 통계
zcat squid_access.log.tar.gz| awk '{print $10,$7}' |awk 'BEGIN{FS = "[ /]"}{trfc[$4]+=$1}END{for(domain in trfc){printf "%st%dn",domain,trfc[domain]}}'

더 효율적인 경우 고급 Perl 버전은 여기에서 다운로드하세요: http://docs.linuxtone.org/soft/tools/tr.pl

데이터베이스 장
1. 데이터베이스에서 실행되는 SQL 보기
/usr/ sbin/tcpdump -i eth0 -s 0 -l -w - dst 포트 3306 | egrep -i 'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL'

시스템 디버그 분석

1. 디버깅 명령
strace -p pid

2. 특정 프로세스의 PID 추적
gdb -p pid



Netstat 명령어에 대한 더 자세한 설명은 PHP 중국어 홈페이지 관련 글을 참고해주세요!


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)