๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ/Linux

[Linux] netstat ๋ช…๋ น์–ด๋กœ ๋„คํŠธ์›Œํฌ ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ(+ TCP ์ƒํƒœ ์ „์ด)

by ynzu๐Ÿค 2021. 12. 29.
๋ฐ˜์‘ํ˜•

์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๋‹ค๋ณด๋ฉด ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด์•ผํ•  ์ผ์ด ์ƒ๊ธด๋‹ค.. ์šด์˜์ด ์•„๋‹ˆ๋”๋ผ๋„ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ํ• ์ผ์ด ์ƒ๊ธฐ๋Š”..

 

netstat๋ž€?

์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ, ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”, ์ˆ˜๋งŽ์€ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค, ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ํ†ต๊ณ„๋ฅผ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ช…๋ น ์ค„ ๋„๊ตฌ์ด๋‹ค. (์œ„ํ‚ค๋ฐฑ๊ณผ : https://ko.wikipedia.org/wiki/Netstat)

 

  • ์‚ฌ์šฉ๋ฐฉ๋ฒ•

netstat [์˜ต์…˜] [ | grep ํฌํŠธ๋ฒˆํ˜ธ or ์„œ๋น„์Šค ๋ช…]

 

  • ์˜ต์…˜

-l (listen) : ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ
-n (number port) : ํฌํŠธ ๋„˜๋ฒ„
-t (tcp) : tcp
-u (udp) : udp
-p : ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„ / PID
-a : ๋ชจ๋‘
-i : ์ด๋”๋„ท ์นด๋“œ๋ณ„ ์ •์ƒ/์—๋Ÿฌ/๋“œ๋ž ์†ก์ˆ˜์‹  ํŒจํ‚ท ์ˆ˜ ํ™•์ธ
-r : ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”
-s : ๋„คํŠธ์›Œํฌ ํ†ต๊ณ„

netstat --help๋ฅผ ์น˜๋ฉด ์œ„์—์„œ ์„ค๋ช…ํ•œ ์˜ต์…˜์˜ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

  • ์˜ˆ์ œ

- netstat -an | grep ํฌํŠธ๋ฒˆํ˜ธ : ํŠน์ • ํฌํŠธ์˜ ์‚ฌ์šฉ ์ƒํƒœ ํ™•์ธ

 

-netstat -lnt : tcp LISTEN ํฌํŠธ๊ฐ€ ๋ชจ๋‘ ์ถœ๋ ฅ

 

- netstat -lntp : LISTEN ํฌํŠธ + PID/ํ”„๋กœ๊ทธ๋žจ๋ช… ๋ชจ๋‘ ์ถœ๋ ฅ

- netstat -nap :  ์—ฐ๊ฒฐ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ชฉ๋ก ์ถœ๋ ฅ

 

 

  • netstat ์ƒํƒœ๊ฐ’
์ƒํƒœ  ์„ค๋ช…
CLOSED ์—ฐ๊ฒฐ์ด ์™„์ „ํžˆ ์ข…๋ฃŒ๋œ ์ƒํƒœ
CLOSING ํ”ํ•˜์ง€ ์•Š์œผ๋‚˜ ์ฃผ๋กœ ํ™•์ธ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก ๋„์ค‘ ์œ ์‹ค๋œ ์ƒํƒœ
CLOSE_WAIT TCP ์—ฐ๊ฒฐ์ด ์ƒ์œ„ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๋ ˆ๋ฒจ๋กœ๋ถ€ํ„ฐ ์—ฐ๊ฒฐ ์ข…๋ฃŒ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
ESTABLISHED ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— ์„ธ์…˜ ์—ฐ๊ฒฐ์ด ์„ฑ๋ฆฝ๋˜์–ด ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋Š” ์ƒํƒœ
(ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ SYN์„ ๋ฐ›์•„ ์„ธ์…˜์ด ์—ฐ๊ฒฐ๋œ ์ƒํƒœ)
FIN_WAIT1 ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์—ฐ๊ฒฐ์„ ๋Š๊ณ ์ž ์š”์ฒญํ•˜๋Š” ์ƒํƒœ (FIN์„ ๋ณด๋‚ธ ์ƒํƒœ)
FIN_WAIT2 ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
(์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ตœ์ดˆ๋กœ FIN์„ ๋ฐ›์€ ํ›„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ACK๋ฅผ ์ฃผ์—ˆ์„ ๋•Œ)
LAST_ACK ํ˜ธ์ŠคํŠธ๊ฐ€ ์›๊ฒฉ์ง€ ํ˜ธ์ŠคํŠธ์˜ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์š”๊ตฌ ์Šน์ธ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
(์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ FIN์„ ๋ณด๋ƒˆ์„ ๋•Œ์˜ ์ƒํƒœ)
LISTEN ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ ‘์† ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ์ƒํƒœ
SYN_SENT ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•œ ์ƒํƒœ
SYN_RECEIVED ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ ‘์† ์š”๊ตฌ(SYN)์„ ๋ฐ›์•„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต(SYN/ACK)ํ•˜์˜€์ง€๋งŒ ์•„์ง ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ™•์ธ ๋ฉ”์‹œ์ง€(ACK)๋Š” ๋ฐ›์ง€ ๋ชปํ•œ ์ƒํƒœ
TIME_WAIT ์—ฐ๊ฒฐ์€ ์ข…๊ฒฐ๋˜์—ˆ์ง€๋งŒ ์†Œ์ผ“์„ ์—ด์–ด๋†“์€ ์ƒํƒœ. ์•ฝ 1๋ถ„์ •๋„์ด๋ฉฐ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์‚ฌ๋ผ์ง
UNKNOWN ์†Œ์ผ“์˜ ์ƒํƒœ๋ฅผ ์•Œ ์ˆ˜ ์—†์Œ

 


 

  • TCP ์ƒํƒœ์ „์ด ๋‹ค์ด์–ด๊ทธ๋žจ

 

TCP ์ƒํƒœ์ „์ด ๋‹ค์ด์–ด๊ทธ๋žจ (์ถœ์ฒ˜:kakao tech ๋ธ”๋กœ๊ทธ)

client๊ฐ€ close()๋ฅผ ์‹คํ–‰ํ•œ ์ดํ›„๋ถ€ํ„ฐ ์„ค๋ช…ํ•ด ๋ณด์ž๋ฉด (์„œ๋ฒ„๊ฐ€ ๋จผ์ € close๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ)

1. client๊ฐ€ FIN๋ฅผ ๋ณด๋‚ด๊ณ  FIN_WAIT1์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•œ๋‹ค.

2. ์„œ๋ฒ„๋Š” CLOSE_WAIT ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ๊ณ  ์‘๋‹ต ACK๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ํ•ด๋‹น ํฌํŠธ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ CLOSE()๋ฅผ ์š”์ฒญํ•œ๋‹ค

3. ACK๋ฅผ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๋Š” ์ƒํƒœ๋ฅผ FIN_WAIT2๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

4. CLOSE() ์š”์ฒญ์„ ๋ฐ›์€ ์„œ๋ฒ„๋Š” ์ข…๋ฃŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  FIN์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด LAST_ACK์ƒํƒœ๋กœ ๋ฐ”๊พผ๋‹ค

5.FIN์„ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๋Š” ACK๋ฅผ ์„œ๋ฒ„์— ๋‹ค์‹œ ์ „์†กํ•˜๊ณ  TIME_WAIT์œผ๋กœ ์ƒํƒœ๋ฅผ ๋ฐ”๊พผ๋‹ค. TIME_WAIT์—์„œ ์ผ์ •์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด CLOSED๋œ๋‹ค. ACK๋ฅผ ๋ฐ›์€ ์„œ๋ฒ„๋„ ํฌํŠธ๋ฅด CLOSED๋กœ ๋‹ซ๋Š”๋‹ค.

 

 

 

 

CLOSE_WAIT & TIME_WAIT ์ตœ์ข… ๋ถ„์„

ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์›น ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋‹ค๋ณด๋ฉด CPU๋Š” ์—ฌ์œ ๊ฐ€ ์žˆ์ง€๋งŒ ์›น์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋จนํ†ต์ด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ข…์ข… ๋ณด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ, ์ด ๊ธ€์—์„œ๋Š” ๊ฐ€์žฅ ๋Œ€

tech.kakao.com

 

 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€